H2OでPHP(がちょっとだけ動くまで)
昨日夜中にごちゃごちゃやりまして、メモでございます。
github.com
最速httpdとなるであろうH2Oについて、最近fastCGIサポートが載った(まだstableリリースではなく、betaか、masterブランチ)のですが、まだ公式サイトに設定がのっていないので、うごかしてみたメモですね。
追記:今朝、リリースされてたそうです、めでたい!
設定ファイルを
こうするんじゃ(抜粋なので、サンプルから必要そうな所だけ修正してください)
file.custom-handler: extension: .php fastcgi.connect: host: 127.0.0.1 port: 9000 type: tcp hosts: "127.0.0.1.xip.io:8080": paths: /: file.dir: /var/www/htdocs
やったぜ
H2OでPHP7うごいたゾー pic.twitter.com/fD5UI1cUjV
— uzulla (@uzulla) 2015年6月17日
H2OとPHP7とか、もうみただけで速そう(プラセボ)
ただ…
http://hoge/index.php?q=1
みたいなのはいいとして、
http://hoge/entry/1
みたいなのをphpにマップする方法はまだよくわかってません。その内しらべます
追記:アンサーいただきました!ありがとうございます
Kazuho's Weblog: H2OとPHPを組み合わせるの、超簡単です(もしくはmod_rewriteが不要な理由)
fastCGIの設定に関して、どこでしらべるか
テストコードに書いてあったんで、それを読みましょう。
H2Oの方向性は?
を読む限り
FastCGI (or PHP) applications should be as easily configurable as it is for the Apache HTTP server
ということで、やったぜ!ってなるんですけど、nginxはもとより、Apacheにおいても現状ルーターをつかっているようなアプリだとrewriteルールをhtaccessとかにいちいちかかないといけないので、Apacheみたいなスタイルが楽なのか?というとちょっと疑問があります。
(たとえば以下みたいなの)
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [QSA,L]
ここらへんがスッっとかけないと、まあApache、nginx同様にH2Oの設定のタレが必要になるかなあ、という感じはあります。
nginxがそうなんですが、URLをぶったぎってPATH_INFOにおさめて…みたいなのがどういう風にすっきり解決できるかなあ、という感じですね。
PHPはこのあたりが割と雑というか、自由奔放というか、これしかないんじゃ!というのがないので、大変な所だとはおもいますが。
追記:こちら参照ください
Kazuho's Weblog: H2OとPHPを組み合わせるの、超簡単です(もしくはmod_rewriteが不要な理由)
(
たとえば、nginxでは個人的には色々試行錯誤しており、ちょっと前のアイディアとしてはこんなのがあります、いまはもうちょっと変わってきているんですが…。
uzulla.hateblo.jp
)
H2Oには期待しています!
個人的にはですが、HTTP/2の必要性とかではなく、「httpdはできるだけ早くしたい、でも設定ファイルに秘伝のタレがいる」というのがやっぱりしんどいので、デフォルトでイケてる感じにしていきたい、ということらしいH2Oにはとても期待しております。
今後もウォッチしていきます。