HHVMのインストール
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449 sudo add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main" sudo apt-get update sudo apt-get install hhvm -y
インストールしただけではサービスとして登録されていない(自動起動してくれない)ので以下のコマンドで登録
sudo update-rc.d hhvm defaults
Apache2.4のインストール
普通にapt-get install -y apache2
でもいいんだけどインストールされるバージョンが2.4.7
でちょっと古い
apachectl -v Server version: Apache/2.4.7 (Ubuntu) Server built: Jul 24 2015 17:25:11
ApacheとHHVMのつなぐ方法として二つある。
- ProxyPassMatch
- 古典的なプロキシ法。どのバージョンでも動くがこのブログで指摘されている通りいろいろ不具合が出てくる
- FilesMatchとSetHandler
- 上記問題を解決したプロキシ方法。ただし 2.4.10以降のみでしか対応していない
ってことでPPA追加しておいてインストール
sudo add-apt-repository ppa:ondrej/apache2
VirtualHostの設定を適当にしておく
<VirtualHost *:80> DocumentRoot /var/www <Directory /var/www> Options FollowSymLinks AllowOverride All </Directory> LogLevel warn ErrorLog ${APACHE_LOG_DIR}/error.log </VirtualHost>
ここでHHVMの初期設定を実行
/usr/share/hhvm/install_fastcgi.sh
これでservice apache2 restart
して/var/www/info.phpにphpinfo();
とか置くと出力してくれるはず。(まだProxyPassMatch
)
ProxyPassMatchの設定削除
rm /etc/apache2/mods-enabled/hhvm_proxy_fcgi.conf
以下のように追記する
<VirtualHost *:80> DocumentRoot /var/www <Directory /var/www> Options FollowSymLinks AllowOverride All </Directory> <FilesMatch \.php$> SetHandler "unix:/var/run/hhvm/hhvm.sock" </FilesMatch> LogLevel warn ErrorLog ${APACHE_LOG_DIR}/error.log </VirtualHost>