Hackとかもでたので、
バージョン2.2.0がリリースされたHipHop Virtual Machine for PHP(以下HHVM)をCentOS6.4にインストールして動かしてみた際の備忘録
HHVMをざっくりと説明すると、これはFacebookが開発したPHPのJIT(Just In Time)コンパイラとのこと。
詳細についてはHipHop for PHP – Wikipediaとかで確認してもらえばと。
2010年あたりにHipHopPHPが出た時にちょっと弄って以来、全く情報に入っていなかったのだけど、どうやらそれ以降も開発は順調に進んでいたらしく、
今回の2.2.0ではLinuxディストリビューションとしてUbuntu 12.04/ 13.04/13.10、Mint 15、Debian 7、Fedora 19のそれぞれに対応したパッケージが用意されたり、PHP.iniに対応したり、Pharファイル対応したり、FWにも対応したりと、なんか手軽にアプリを作れそうな感じがしてきたのでまた弄ってみることにした。
インストール
インストールはパッケージからのインストールとソースからのインストールの2つが用意されているらしい。
今回はCentOS6.4にインストールしようと思っていたので、オフィシャルではないけどHHVM Pre built packages for Centos 6.4を利用してみる
# Install epel repository sudo yum install http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm # download the hop5 repository configuration file cd /etc/yum.repos.d sudo wget http://www.hop5.in/yum/el6/hop5.repo # Install hhvm sudo yum install hiphop-php
インストールつまづいた
yumからインストールしようとするとlibeventがインストールできなくてエラーになる。これは、CentOS6系で提供しているlibeventは1.4.13までらしく、それ以上のバージョンはソースからインストールするあるらしい
※古いやつは削除する!!
※依存モジュールmemcachedとかを削除してしまうので注意
コマンドラインから動作確認
hhvm hoge.php
エラーが出た
上記のコマンドを叩くと、「hhvm: error while loading shared libraries: libjemalloc.so.1: cannot open shared object file: No such file or directory」なエラーが出た。メッセージのままlibjemalloc.so.1へのパスが通っていないようなので、サーバーに既に存在するのならばそこにパスを通す。
export LD_LIBRARY_PATH=/usr/lib64/fluent/jemalloc/lib
HHVMをサーバーとして立ち上げて動作確認
# 一番簡単な立ち上げ方 hhvm -m server # deamonで立ち上げる hhvm -m server --config ~/path/to/hhvm.hdf # curlで動作確認 curl localhost:8080/sort.php
簡単なテスト
ここの辺りで確認できる
ちなみに2013年末にはapacheに対応する予定らしいので、その辺りでもう一度試してみようかな。