Amazon Linuxにuser data一発でnginx+HHVMをインストール
Amazon Linux上に、nginx+HHVM環境をつくりたい。
ググると、以下のサイトがヒットし、一目くじけそうになる。
Building and installing HHVM on Amazon Linux 2014.03
シンドい・・。
しかし、もう少しググると、思ったより簡単にできそう。
これなら、EC2のインスタンス起動時にUser dataにシェルを渡せば、一発でインストールできそう。
Management Consoleにて、「Amazon Linux AMI 2014.09.2 (HVM) – ami-18869819」を利用し、t2.microのインスタンスを起動する。
途中、「Step 3: Configure Instance Details」画面のAdvanced Detailsで、以下のUser dataをAs textとしてコピペする
#!/bin/bash -ex
cd /etc/yum.repos.d
wget http://www.hop5.in/yum/el6/hop5.repo
echo 'priority=9' >> hop5.repo
echo 'includepkgs=glog,tbb' >> hop5.repo
wget http://yum.sexydev.com/sexydev-amazon.repo
yum -y install nginx php php-mbstring hhvm
cd /var/www/html
touch index.php
echo '<?php phpinfo(); ?>' >> index.php
インスタンス起動後、hhvmがインストールできていることを確認。
[ec2-user@ip-192-168-XXX-XXX ~]$ hhvm --version
HipHop VM 3.3.6-dev (rel)
Compiler: 1426768334_998390448
Repo schema: 999173952_1426768334
Extension API: 20140829
若干コンフィグを修正。
cd /etc/nginx
sudo vi nginx.conf
修正点は3箇所。
index定義にindex.phpを追記。
index index.php index.html index.htm;
serverセクション内のrootパスを変更。
root /var/www/html;
FastCGIのlocation設定をアンコメントした上で、rootとfastcgi_paramの記述を変更。
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
nginxとhhvmを起動。
sudo service nginx start
sudo hhvm --mode daemon -vServer.Type=fastcgi -vServer.Port=9000
ブラウザからサーバにアクセスし、”HipHop”と表示されることを確認。