uzullaがブログ

uzullaがブログです。

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とか、もうみただけで速そう(プラセボ

ただ…

http://hoge/index.php?q=1
みたいなのはいいとして、

http://hoge/entry/1
みたいなのをphpにマップする方法はまだよくわかってません。その内しらべます

追記:アンサーいただきました!ありがとうございます

Kazuho's Weblog: H2OとPHPを組み合わせるの、超簡単です(もしくはmod_rewriteが不要な理由)

fastCGIの設定に関して、どこでしらべるか

テストコードに書いてあったんで、それを読みましょう。

H2Oの方向性は?

github.com

を読む限り

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にはとても期待しております。

今後もウォッチしていきます。

追記:続編書きました

uzulla.hateblo.jp