概要
みなさんこんにちはcandleです。今回はAMIMOTO AMIのnginx上でバーチャルホストを使う場合の設定をやってみたいと思います。
AMIMOTO AMIは高速でwordpressを作成できる素晴らしいAMIなのです。
まずはwordpressから始めてまた他のサービスを出したいなと思う人は多いと思います。
そこで、別のphpサービスをvirtualhostを使ってデプロイメントできるように設定してみましょう。
前提
EC2上でAMIMTO AMIのwordpressが動いている
テスト用のドメインを持っていて割と自由に使える
私はお名前.comさんのドメインを使います。
nginxのvirtual hostの設定
それではやっていきましょう。
nginxの設定は割りと簡単です。
EC2にssh接続しましょう。
接続したら、/etc/nginx/conf.d/に移動します。
cd /etc/nginx/conf.d
virtual.confを開きます。
その中のどこでも良いので下の記述を書きます。
server { listen 80; server_name 新しく付けたいドメイン名; root /var/www/vhosts/プロジェクト名; index index.php index.html index.htm; charset utf-8; location ~ \.php$ { fastcgi_pass phpfpm; include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
例えば、ccimagesearch.comというドメイン名を/var/www/vhosts/ccimagesearchで公開したい場合は下のようになります。
保存しましょう。
nginxの設定は終わりです。
バーチャルホストで動かすプロジェクトを作る
動作確認も含めて、プロジェクトを作ってみます。先ほどバーチャルホストの設定のrootという項目で書いたパスに移動します。
cd /var/www/vhosts/
もしも、wordpressを作っているならここにi-90ujr0auみたいなフォルダがあると思います。
それは置いておいて、試しに先ほどvirtual.confで設定したnginxで公開するフォルダを作ります。私は上の例の通り、ccimagesearchというフォルダを作ります。
sudo mkdir ccimagesearch
フォルダの管理者を変更します。下のようにしましょう。
sudo chown -R nginx:ec2-user ./ccimagesearch/ sudo chmod 775 ./ccimagesearch/ cd ccimagesearch
今、作成したフォルダの中でテスト用のphpファイルを作ります。
touch index.php
index.phpをエディタで開いて下の内容を書き込みます。
<?php phpinfo(); ?>
保存しましょう。念のためindex.phpの管理者を見ておいてください。nginx ec2-userになっているでしょうかもしなっていなかったら、下のコマンドで変更しておいてください。
sudo chown nginx:ec2-user index.php
これで、公開ディレクトリの準備が出来ました。
nginxとphp-fpmの再起動
まずはphp-fpmを再起動します。
sudo service php-fpm restart
nginxの再起動の前にnginxの構文をチェックします
sudo nginx -t
okとかsuccessfulとでれば設定ファイルに間違いがありません。
下のコマンドでnginxを再起動します。
sudo service nginx restart
お名前.comのDNSをec2と紐付ける
これは、細かく説明すると大変なので、適当に説明します。
もしもお名前じゃないサービスを使っている場合はそちらから設定してください。
ec2のAMIMOTO AMIが動いているpublic IPを調べます。
インスタンスを選んでpublic IPの項目をみれば分かります。
お名前.comに移動して、ログインをします。
タブの「ドメイン設定」を押し、「DNS関連機能の設定」を選び、「DNSレコード設定を利用する」を押します。
使いたいドメインを選択して、「入力画面に進む」を押します。
「入力」の項目を埋めます。
ホスト名 空のまま
TYPE A
TTL 3600
VALUE EC2のpublic IP
優先 空のまま
状態 有効
public IPを入力したら右の「追加」ボタンを押します。
画面の一番下の青い「確認画面へ進む」を押します。
IPアドレスをもう一度確認して、問題がなければ、青い「設定する」ボタンを押しましょう。
これでドメインがEC2にひも付きました。
ドメインがEC2にひも付くには多少時間がかかります。早ければ10分とか遅ければ30~40分かかります。
バーチャルホストを確認する
ドメインがEC2のPublic IPと紐付いたら、サイトにアクセスしましょう。
私は今回、「ccimagesearch.com」というのをバーチャルホストに設定しました。そこにアクセスしてみます。
もしも、作成したindex.phpのphpinfo関数が実行されれば成功です。
まとめ
ざっくりと説明して参りましたが、できたでしょうか。
無事にphpinfo関数が実行されればあとはこっちのもので、phpプロジェクトなりを作成した公開ディレクトリに置けばもう動きます。
1つ気になるのは確かphp-fpmのセッションの問題でもしかするとsessionを扱うphpサービスの場合は上手くいかないかもしれません。
もちろん対処法があるので、調べてみてください。