AWSのEC2インスタンスにHHVMをインストールする
最近業務の開発環境・サーバ環境が安定定着してきて
あまり新しいミドルウェアに触れたり新しい環境を構築することが少し減ったので
それなら、と思いずっとなかなか触れていなかったAWSのEC2をいじってみることにしました。
ついでにPHPも完璧でないJavaer?な俺ですがHHVMをインストールしてみることに。そしてついでにブログを書いてみる。
AWSのEC2でインスタンスを作成する
2015/03/10現在、AWSクラウド無料利用枠ってことで
特定の製品が今なら無料らしい!これは嬉しいので早速登録。
アカウント情報などは日本語で記入するとあとで別の画面で文字化けしてて面倒だったので
英語で記入しておいたほうが良さそうです。
登録が終わったらインスタンスを作成します。
こちらのサイトを参考にさせていただきました。
AWS EC2を使って無料枠でWebサーバを立ててみた(2014年11月版) - sometimes I laugh
AWSの管理コンソールって昔は使いにくかったみたいな話を聞いたことがあるのですが
今はそういう印象は受けませんでした。たぶん自社のクラウドサーバも同じように操作しているので
概念自体が理解しやすい脳になっているからというのもありますが。
ただ機能はめちゃめちゃあると思うので色々使っていかないとなあ自分のAWSの知識遅れてるし。
インスタンス作成した後に、そういえばVagrantでEC2のインスタンスを操作するプラグインあったなと思って
ドキュメント調べつつ色々試してはみましたが
mitchellh/vagrant-aws · GitHub
すでに作成したEC2のインスタンスにvagrant sshするのは無理そうでした。。
.vagrant/machines/default/aws/id
に作成済みのインスタンスIDを書いたら
無理矢理うまくできるかなーと思いきやエラーにさいなまれたので
yak shavingで小一時間ハマると予想されたのでやめておきました。
HHVMをインストールしてみる
さて無事インスタンスが用意できたので、あとはEC2だろうがVMだろうが変わらないですな、
とか言いつつCentOS以外のOSの知識が無い甘ちゃんです。
Amazon LinuxはCentOSとさほど変わらないというので安心。
HHVMのインストールですがいくつか方法があるようで
一番簡単そうな方法でやってみました。
下記のGitリポジトリのWikiにも載っていますね。
Amazon Linux · facebook/hhvm Wiki · GitHub
$ cd /etc/yum.repos.d $ sudo wget http://www.hop5.in/yum/el6/hop5.repo $ sudo echo 'priority=9' >> hop5.repo $ sudo echo 'includepkgs=glog,tbb' >> hop5.repo $ sudo wget http://yum.sexydev.com/sexydev-amazon.repo $ sudo yum install hhvm $ sudo /etc/init.d/hhvm start
はい、これでHHVMインストールできました。
あとはPHP5.6あたりをインストールしても良いのですが
$ sudo update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60
ってやるとphpコマンドでhhvmが使えます。(表現あってるか怪しい)
$ php --version HipHop VM 3.3.5-dev (rel) Compiler: 1425439999_954070912 Repo schema: 954835134_1425439999 Extension API: 20140829
composerをインストールしたくなったら、
基本的に公式にインストール手順が載っているのですが
Amazon Linuxの問題か俺の問題かわかりませんが下記のようにする必要がありました。
# 適当に移動 $ cd /usr/local/src $ sudo wget https://getcomposer.org/installer $ hhvm -v ResourceLimit.SocketDefaultTimeout=30 -v Http.SlowQueryThreshold=30000 installer $ sudo mv composer.phar /usr/local/bin/composer $ sudo rm installer $ composer --version Composer version 1.0-dev (b296e654eb3e136ca6fa08fa3bcb1d4782c13f8b) 2015-03-09 11:13:01
さて、おもむろにNginxをインストールしてみます。
$ sudo yum install nginx $ vi /etc/nginx/nginx.conf # 下記のあたりを修正 # index index.php index.html index.htm; # location ~ \.php$ { # fastcgi_pass 127.0.0.1:9001; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # include fastcgi_params; # } $ /etc/init.d/nginx restart
適当にphpファイルを置いて
$ echo '<?php phpinfo(); ?>' > /usr/share/nginx/html/index.php
ブラウザからアクセスすると
HipHop!
HHVMの動作を確認することができました。
非常に投げやりなメモになってしまったので次回はLaravelについてちゃんと書こうかなと考えていたりいなかったり。