Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHPを少し深堀るよ.pdf
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
tsuyoshi nakamura
January 16, 2019
Technology
0
380
PHPを少し深堀るよ.pdf
tsuyoshi nakamura
January 16, 2019
Tweet
Share
More Decks by tsuyoshi nakamura
See All by tsuyoshi nakamura
社内の勉強会で発表した_output_一部抜粋版_.pdf
tsuyoshi
0
490
PHPを少しでも早く_条件はあるよ_.pdf
tsuyoshi
0
86
スタートアップ6年目のレビュー文化.pdf
tsuyoshi
1
1.9k
Reactive_Manifesto.pdf
tsuyoshi
0
79
About_Resilience.pdf
tsuyoshi
1
88
エンジニアの循環ってgood_or_bad_.pdf
tsuyoshi
0
1.3k
スタートアップしてからの失敗の数々
tsuyoshi
0
2.4k
スタートアップエンジニアの役割
tsuyoshi
0
540
古株のvalueの出し方
tsuyoshi
0
4.2k
Other Decks in Technology
See All in Technology
Phase06_ClaudeCode実践
overflowinc
0
630
2026年もソフトウェアサプライチェーンのリスクに立ち向かうために / Product Security Square #3
flatt_security
1
730
The Rise of Browser Automation: AI-Powered Web Interaction in 2026
marcthompson_seo
0
230
WebアクセシビリティをCI/CDで担保する ― axe DevTools × Playwright C#実践ガイド
tomokusaba
2
200
形式手法特論:SMT ソルバで解く認可ポリシの静的解析 #kernelvm / Kernel VM Study Tsukuba No3
ytaka23
1
710
「お金で解決」が全てではない!大規模WebアプリのCI高速化 #phperkaigi
stefafafan
4
2.1k
中央集権型を脱却した話 分散型をやめて、連邦型にたどり着くまで
sansantech
PRO
1
170
スピンアウト講座03_CLAUDE-MDとSKILL-MD
overflowinc
0
400
頼れる Agentic AI を支える Datadog のオブザーバビリティ / Powering Reliable Agentic AI with Datadog Observability
aoto
PRO
0
240
LINEヤフーにおけるAIOpsの現在地
lycorptech_jp
PRO
4
1.7k
Agent Skill 是什麼?對軟體產業帶來的變化
appleboy
0
160
バクラク最古参プロダクトで重ねた技術投資を振り返る
ypresto
0
200
Featured
See All Featured
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.5k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Producing Creativity
orderedlist
PRO
348
40k
We Have a Design System, Now What?
morganepeng
55
8k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
150
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How to Ace a Technical Interview
jacobian
281
24k
Automating Front-end Workflow
addyosmani
1370
200k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
480
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
300
A designer walks into a library…
pauljervisheath
210
24k
Transcript
PHPを少し深堀るよ 社内勉強会2019.1.16 @nakamura244
agendaなんてもんは無いの で、ざっくばらんにいく
makuakeのシステムを多くを 支えているPHPですが、 どのように動いているか概要 だけでも知っていますか?
いきなり簡単にいうと
先人達の資料を拝借させても らいます
https://www.slideshare.net/do_aki/php-sapi-zendengine3
https://www.slideshare.net/do_aki/php-sapi-zendengine3
https://www.slideshare.net/do_aki/php-sapi-zendengine3
https://www.slideshare.net/do_aki/php-sapi-zendengine3
CGI もう使う人いないと思うのでスルーする。 自分が初めてプログラムを書いた時はCGIをよく作ってお金も らってました。。。perlで書いてましたけど 1
mod_php Nginxがまだ普及する前はよくあったパターン。 Apacheで動かすやつです 2
php-fpm たぶん最近の主流。たぶん負荷によるベンチ マークするとたぶん大して変わらないけどこっ ちを選択した方が無難 3 mod_phpだと 1. PHPではない、static fileのresponseにphpをloadしてし まう
2. Httpdプロセスのメモリ消費量が多分変わる 3. webサーバと分離できる事によるセキュリティ性の担保
いずれにしてもSAPI module やSAPIの部分が色々と橋渡 しをしてるという感じ
どのSAPIで動いているの?と 確認したい場合は
None
None
たいがいはどれかです ▸ Apache ▸ FPM ▸ FastCGI ▸ CLI
少しネタ
最近、Japan teamが結 成された`Nginx`に関し てです
None
None
Nginx unitというアプリケー ションサーバを提供してて、 PHPも動かせます。 Nginx Onlyで
ん?。。。
どうやってPHPを動かしてるんだ?
None
初めて目にした しかもSAPI moduleの記載とかないし
は? マニュアルにない...
色々調べる
php_sapi_nameは `cli-server`何て返ってき た
もうよくわからない どういう事だ.... ソースを追ってみる
https://github.com/nginx/unit/blob/master/src/nxt_php_sapi.c#L85-L86
結構古い本ですが、こ の本を少し読むと追い やすい 日本語版を見た事はな い
https://github.com/nginx/unit/blob/master/src/nxt_php_sapi.c#L85-L86 phpinfo()のAPI名はここ からきていた 内部的にはSAPIは cli-serverを使ってい るっぽい
None
でも実はそれだけではな い
https://github.com/nginx/unit/blob/master/auto/modules/php
https://github.com/nginx/unit/blob/master/auto/modules/php embed SAPIもつかう の?!
None
None
公式のinstallationでも embedパッケージを installしろってなってる
たぶん、色々組み合わせた独 自SAPIで動かしてるだとおも う
ベンチはとるとphp-fpmのが まだ高パフォーマンスらしい
俺が早くしてやるという方、改 善が好きな方はチャンスです
Webからリクエストを受けて phpが動くまでがざっくり説明 した 時間があれば次
自分達が書いたPHPがサー バの中でどう処理されてるか について
<?php echo “hello”; Lexing Compilation Execution(on zend) hello Parsing 字句解析
構文解析 コンパイル 実行 opcode|opcache
各所深いので色々しゃべりた い気もするが、多分時間ない よね。
時間があれば part2
None
None
分時間ないよね。やめときま す
ご静聴ありがとうございました