non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

hhvmをh2oと連携して動かす〜OSX編〜

おはようございます。家を歩くたびにセロハンテープが足の裏にくっつきます。主に次男がベタベタおもちゃに貼り付けているのが原因のようです。kjunichiです。

背景

Docker for Macを試すのに、空き容量を作った方が良いのかと思い、Homebrewを整理する際に

brew uses llvm --installed

と等と調べたら、hhvmsshdの肥やし感が高まったので、 ちょっとhhvmをh2oから動かせるようにしてみた。

試した環境

OSX

h2o.conf

hosts:
  "127.0.0.1.xip.io:8080":
    paths:
      "/hhvm":
        file.dir: mytest/doc_root/hhvm
        file.custom-handler:
          extension: .php
          fastcgi.connect:
            port: 9000
            type: tcp

ディレクトリ毎に、拡張子に対するハンドラを設定できる。

hhvm

設定ファイル

cat /usr/local/etc/hhvm/server.ini 
; php options

pid = /usr/local/var/run/hhvm/pid

; hhvm specific

hhvm.server.port = 9000
hhvm.server.type = fastcgi
hhvm.server.default_document = index.php
hhvm.log.use_log_file = true
hhvm.log.file = /usr/local/var/log/hhvm/error.log
hhvm.repo.central.path = /usr/local/var/run/hhvm/hhvm.hhbc

とりあえず、Homebrewのデフォルとの状態で試した。

起動方法

hhvm -m daemon -c /usr/local/etc/hhvm/php.ini -c /usr/local/etc/hhvm/server.ini \
-d hhvm.server.fix_path_info=true -d hhvm.server.source_root=$HOME/local/src/h2o/mytest/doc_root

hhvm.server.fix_path_info

これが、trueでないと、hhvmを/ディレクトリで起動するかh2oのパスの設定を相対パスで記述する必要があった。

hhvm.server.source_root

hhvm.server.fix_path_infoをtrueにし、このオプションにパスを指定することで、hhvmで動かすphpファイルのディレクトリの 指定が出来た。

参考資料

関連記事