記事

HHVMで爆速Owncloud構築しようとした話

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.phpphpinfo();とか置くと出力してくれるはず。(まだ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>