blogですかい

株式会社Loco Partnersに勤めるエンジニアうちの一人のブログ。仕事、プライベートで学んだことなどを発信し、その内容がたとえ少数でも誰かの役に立ったらなら、それはとっても嬉しいなって

Ubuntu14.04LTS + Nginx + HHVMでWebアプリを動かす準備

少々出遅れた感アリですが、HHVM(というかHack)の勉強を始めようと思い、環境を作りました。
備忘録として、やったことをここに書き残します。

Ubuntu 14.04 LTSの環境は用意されている前提で

Nginxのインストール

$ sudo apt-get update
$ sudo apt-get install nginx

HHVMのインストール

標準のリポジトリには無いので、公式Wikiに従い追加します。

$ wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add -
$ echo deb http://dl.hhvm.com/ubuntu trusty main | sudo tee /etc/apt/sources.list.d/hhvm.list
$ sudo apt-get update
$ sudo apt-get install hhvm

NginxとHHVMを連携するための設定

/etc/nginx/hhvm.conf

デフォルトのままで良いです

location ~ \.(hh|php)$ {
    fastcgi_keep_conn on;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

/etc/nginx/sites-available/hello-hhvm.conf

新規に作成します(ファイル名、ドキュメントルートは任意で)

server {
        listen 80 default_server;

        root /var/www;
        index index.php;

        server_name localhost;

        include hhvm.conf;

}

設定を有効にするためにソフトリンクを作る(Debian系特有の儀式)

/etc/nginx/sites-enable/に、先ほど作成した設定ファイルへのリンクを作成します。 また、デフォルトの設定ファイルへのリンクを削除します。

$ sudo ln -s /etc/nginx/sites-available/hello-hhvm.conf /etc/nginx/sites-enabled/
$ sudo rm /etc/nginx/sites-enabled/default

NginxとHHVMデーモンの起動

$ sudo service nginx start
$ sudo service hhvm start

HHVMデーモンの自動起動設定

Debian系はupdate-rc.dコマンドを使用します。RedHat系だったらchkconfigですね。

$ sudo update-rc.d hhvm defaults

/var/www/index.php

HelloWorldアプリを作成します。

<?hh
echo 'Hello HHVM!';

これで、Webブラウザでhttp://サーバ名orIPアドレス/index.phpにアクセスしてみて「Hello HHVM!」と表示されれば成功です。