Amazon Linuxにuser data一発でnginx+HHVMをインストール

Pocket

 
Amazon Linux上に、nginx+HHVM環境をつくりたい。

ググると、以下のサイトがヒットし、一目くじけそうになる。

Building and installing HHVM on Amazon Linux 2014.03

シンドい・・。

 
しかし、もう少しググると、思ったより簡単にできそう。

Amazon Linux

これなら、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”と表示されることを確認。

Pocket

関連記事