Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PHPを少し深堀るよ.pdf
Search
tsuyoshi nakamura
January 16, 2019
Technology
420
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHPを少し深堀るよ.pdf
tsuyoshi nakamura
January 16, 2019
More Decks by tsuyoshi nakamura
See All by tsuyoshi nakamura
社内の勉強会で発表した_output_一部抜粋版_.pdf
tsuyoshi
0
520
PHPを少しでも早く_条件はあるよ_.pdf
tsuyoshi
0
97
スタートアップ6年目のレビュー文化.pdf
tsuyoshi
1
2k
Reactive_Manifesto.pdf
tsuyoshi
0
100
About_Resilience.pdf
tsuyoshi
1
110
エンジニアの循環ってgood_or_bad_.pdf
tsuyoshi
0
1.4k
スタートアップしてからの失敗の数々
tsuyoshi
0
2.5k
スタートアップエンジニアの役割
tsuyoshi
0
570
古株のvalueの出し方
tsuyoshi
0
4.3k
Other Decks in Technology
See All in Technology
Shared Signals Framework 仕様解説
oidfj
0
370
The future of architectural work
ufried
0
200
思考過程から秘密が漏れる:Amazon Bedrock上のKimi K3を5つの方法で攻めたら、25回中22回漏洩した話
yama3133
1
110
Cloudflareの向き先
chimame
1
270
AI Agent 時代のデータ基盤: ClickHouse で実現する 超高速分析とコスト削減の両立
jozono
0
230
AIがGISを代替する日:〜すべてをAIが創る時代に、私たちがFOSS4Gに関わる意味〜
lehupa
1
220
並列度を下げたら速くなった — go build の重複コンパイルを実測で見る
tomoaki25
2
1.1k
re:Invent2026 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
190
大江戸Ruby会議でデータベース クライアントの話をするのは 間違っているだろうか
yahonda
1
120
AI時代に求められる優秀なTechLeadの振る舞い
pospome
11
16k
SSFの現在地 ― CAEP/RISCからAI Identityへ
oidfj
0
390
プロダクションコードにおける encoding/json から encoding/json/v2 へのスムーズな移行
sansantech
PRO
1
300
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
410
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Test your architecture with Archunit
thirion
2
2.5k
Heart Work Chapter 1 - Part 1
lfama
PRO
11
37k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Thoughts on Productivity
jonyablonski
76
5.5k
Music & Morning Musume
bryan
48
7.5k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Making Projects Easy
brettharned
120
6.9k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.5k
WCS-LA-2024
lcolladotor
0
990
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
分時間ないよね。やめときま す
ご静聴ありがとうございました