joppot

コピペで絶対動く。説明を妥協しない

サーバ

AMIMOTO AMIのnginx上でvirtual hostを設定してphpサービスをリリースする

投稿日:

Pocket

iidoa

概要

みなさんこんにちはcandleです。今回はAMIMOTO AMIのnginx上でバーチャルホストを使う場合の設定をやってみたいと思います。

AMIMOTO AMIは高速でwordpressを作成できる素晴らしいAMIなのです。
まずはwordpressから始めてまた他のサービスを出したいなと思う人は多いと思います。

そこで、別のphpサービスをvirtualhostを使ってデプロイメントできるように設定してみましょう。


前提

EC2上でAMIMTO AMIのwordpressが動いている

テスト用のドメインを持っていて割と自由に使える
私はお名前.comさんのドメインを使います。

SPONSORED LINK


nginxのvirtual hostの設定

それではやっていきましょう。
nginxの設定は割りと簡単です。

EC2にssh接続しましょう。

接続したら、/etc/nginx/conf.d/に移動します。

cd /etc/nginx/conf.d

cdnginxconfd

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で公開したい場合は下のようになります。

setvirtualhost

保存しましょう。
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

createpublicfolder-1

今、作成したフォルダの中でテスト用のphpファイルを作ります。

touch index.php

index.phpをエディタで開いて下の内容を書き込みます。

<?php

phpinfo();

?>

保存しましょう。念のためindex.phpの管理者を見ておいてください。nginx ec2-userになっているでしょうかもしなっていなかったら、下のコマンドで変更しておいてください。

whoisowner

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の項目をみれば分かります。
checkpublicip

お名前.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


まとめ

ざっくりと説明して参りましたが、できたでしょうか。
無事にphpinfo関数が実行されればあとはこっちのもので、phpプロジェクトなりを作成した公開ディレクトリに置けばもう動きます。
1つ気になるのは確かphp-fpmのセッションの問題でもしかするとsessionを扱うphpサービスの場合は上手くいかないかもしれません。
もちろん対処法があるので、調べてみてください。

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-サーバ
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

gemを使ってcentosにfluentdサーバを構築する

概要 みなさんこんにちはcandleです。今回はfluentdサーバをcentos上に構築したいと思います。 fluentdサーバといえば、railsやphpと連帯して、ユーザーのサービスサイト内での …

EC2にRDSの為のmysqlコマンドのみをインストールする

概要 みなさんこんにちはcandleです。今回はちょっとしたことですが、忘れない様にまとめておきます。 EC2でRDSを使う場合 EC2の中にMysqlサーバーは必要ありません。 ただmysqlコマン …

awsのec2にtd-agentの環境を構築する

English 日本語 概要 みなさんこんにちはcandleです。 今回はec2にtd-agentの環境を構築したいと思います。 基本的には前回のCentOS6.5に構築するのと同じになります。 前提 …

出力fluentdから収集fluentdへforwardを使ってログデータを送信する方法

概要 みなさんこんにちはcandleです。今回はfluentdサーバを2台使って、ログの収集を行ってみたいと思います。サーバ2台はどのような環境でも良いのですが、私が今回説明する環境は1つはMac P …

ubuntuでnginxの起動と最低限のコマンド

概要 今回は、nginxの起動と最低限のコマンドをまとめました。 前提 nginxがインストールされている nginxの起動と停止と再起動 nginxはインストールした当初の設定ではubuntuを起動 …

  • English
  • 日本語

プロフィール


ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー

スポンサードリンク

アーカイブ