EC2+Nginx+PHP-FPMの最小限の環境設定


AWS EC2で、Nginxを動かすまでを解説します。

確認事項

1.SSH接続
できないと、なにもできません。
ログインしておいてください

2.セキュリティグループの確認
HTTPなり、HTTPSなりで自分がアクセスできるようにしておいてください。
ELB(ロードバランサ)を利用する場合も同様です。

Nginxをインストール

ユーザをrootに変更します。

$ sudo su - 

Nginxをyumからインストールします。

# yum install nginx -y

Nginx設定

成功したら、自動起動設定を有効にします

# chkconfig nginx on

ひとまず、Nginxを起動してみましょう。

# service nginx start

ブラウザでアクセスしてみましょう
ウェブサーバのIPアドレスを、ウェブブラウザのアドレスに入力してみます

上のような表示になるはずです。

確認次第、Nginxはストップさせておきます。

# service nginx stop

プロジェクトをいれて置くためのディレクトリを作成します。
場所はどこでも良いですが、あまりユーザに依存する場所は好ましくないでしょう。
ここでは、/var/wwwとします。
ついでに、PHPの動作を確認するために、テスト用のドキュメントルートを作成します

# mkdir /var/www/test

ついでに、専用ユーザとグループ、ユーザのパスワードを設定します

# adduser www
# passwd www
# gpasswd -a www www

先ほど作成したドキュメントルートを専用ユーザと専用グループの所有とします。
パーミッションの設定は、本来、最低限であることが好ましいです。

# chown -R www:www /var/www/test
# chmod -R 2775 /var/www/test

PHPとPHP-FPMをインストール

PHPとPHP-FPMをインストールします

# yum install php php-fpm -y

php-fpmを、自動起動設定し、起動します

# chkconfig php-fpm on 
# service php-fpm start

PHPが動くか確認する

nginxの設定ファイルを変更します。

# vi /etc/nginx/nginx.conf

5行目のuserをnginxからwwwに変更します

user www 

46行目の"server {"から始まるセクションをコメントアウトします。

#server{
    listen    80;
//以下略
#}

コメントアウトした箇所の後ろに、下記を追記してみてください

    server {
        listen      80;
        server_name localhost;
        root        /var/www/test; #テスト用のドキュメントルート
        index       index.php index.html;
        location ~ \.php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_script_name;
            include fastcgi_params;
        }
    }

保存します。

確認用のPHPファイルを作成します

# vim /var/www/test/index.php

とりあえず、このように記述します

<?php
echo 'test';

設定を確認します

# service nginx configtest

エラーが出ていなければ、nginxを起動します

# servece nginx start

再び、ブラウザでサーバにアクセスしてみます。
testと出ていればOKです。