昨日夜中にごちゃごちゃやりまして、メモでございます。
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) 2015, 6月 17H2OとPHP7とか、もうみただけで速そう(プラセボ)
ただ…
http://hoge/index.php?q=1
みたいなのはいいとして、
http://hoge/entry/1
みたいなのをphpにマップする方法はまだよくわかってません。その内しらべます
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はこのあたりが割と雑というか、自由奔放というか、これしかないんじゃ!というのがないので、大変な所だとはおもいますが。
(
たとえば、nginxでは個人的には色々試行錯誤しており、ちょっと前のアイディアとしてはこんなのがあります、いまはもうちょっと変わってきているんですが…。uzulla.hateblo.jp
)
H2Oには期待しています!
個人的にはですが、HTTP/2の必要性とかではなく、「httpdはできるだけ早くしたい、でも設定ファイルに秘伝のタレがいる」というのがやっぱりしんどいので、デフォルトでイケてる感じにしていきたい、ということらしいH2Oにはとても期待しております。
今後もウォッチしていきます。