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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
tsuyoshi nakamura
January 16, 2019
Technology
380
0
Share
PHPを少し深堀るよ.pdf
tsuyoshi nakamura
January 16, 2019
More Decks by tsuyoshi nakamura
See All by tsuyoshi nakamura
社内の勉強会で発表した_output_一部抜粋版_.pdf
tsuyoshi
0
500
PHPを少しでも早く_条件はあるよ_.pdf
tsuyoshi
0
87
スタートアップ6年目のレビュー文化.pdf
tsuyoshi
1
1.9k
Reactive_Manifesto.pdf
tsuyoshi
0
81
About_Resilience.pdf
tsuyoshi
1
93
エンジニアの循環って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
弁護士ドットコム株式会社 エンジニア職向け 会社紹介資料
bengo4com
1
160
明日からドヤれる!超マニアックなAWSセキュリティTips10連発 / 10 Ultra-Niche AWS Security Tips
yuj1osm
0
590
扱える不確実性を増やしていく - スタートアップEMが考える「任せ方」
kadoppe
0
300
最初の一歩を踏み出せなかった私が、誰かの背中を押したいと思うようになるまで / give someone a push
mii3king
0
160
Good Enough Types: Heuristic Type Inference for Ruby
riseshia
1
230
マルチプロダクトの信頼性を効率良く保っていくために
kworkdev
PRO
0
160
LLM時代の検索アーキテクチャと技術的意思決定
shibuiwilliam
3
1.2k
The Journey of Box Building
tagomoris
4
2.9k
コードや知識を組み込む / Incorporate Code and Knowledge
ks91
PRO
0
150
「SaaSの次の時代」に重要性を増すステークホルダーマネジメントの要諦 ~解像度を圧倒的に高めPdMの価値を最大化させる方法~
kakehashi
PRO
3
1.1k
Standards et agents IA : un tour d’horizon de MCP, A2A, ADK et plus encore
glaforge
0
170
Hacobu Tech Deck
hacobu
PRO
0
110
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.7k
WENDY [Excerpt]
tessaabrams
10
37k
We Have a Design System, Now What?
morganepeng
55
8.1k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
420
Designing for humans not robots
tammielis
254
26k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
4 Signs Your Business is Dying
shpigford
187
22k
Building an army of robots
kneath
306
46k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
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
分時間ないよね。やめときま す
ご静聴ありがとうございました