[Sy] Amazon Linux (2017.09 release) でのPHP7(+php-fpm)とnginxの設定方法(インストール、設定、自動起動)
Amazon Linux(2017.09 release) で PHP7 を nginx で使えるようにする手順です。インストールからnginxとphp-fpmの設定、自動起動まで説明します。 502エラーになってしまう方などは設定を照らし合わせてみてください。
1. PHP7をインストール
では環境を作っていきます。
Amazon Linux(2017.09 release)では、php7系が標準でyum
でインストール可能です。(今回は7.0にします)
php本体と、php-fpmなどをまとめて入れます。
$ sudo yum install -y php70 php70-mbstring php70-mysqlnd php70-zip php70-fpm
2. nginxをインストール
これもシンプルにyum
で入れます。
$ sudo yum install -y nginx
3. ドキュメントルート用のディレクトリとファイルを作成
今回は、/var/www/test
というディレクトリを用意し、index.php
を作成してphpinfo()
の結果を表示するということをやります。
次のコマンドを実行していきます。
$ sudo usermod -a -G nginx ec2-user <- nginxグループにec2-userを追加
$ exit <- 一度ログアウト
(ec2-userで再ログイン)
$ groups
ec2-user wheel nginx <- 所属グループにnginxが追加された
$ sudo chown -R ec2-user:nginx /var/www <- /var/www配下の所有者を変更
$ sudo chmod 2775 /var/www <- /var/www配下にnginxグループの書き込み許可
$ find /var/www -type d -exec sudo chmod 2775 {} \; <- /var/www配下のすべてのディレクトリにnginxグループの書き込み許可
$ find /var/www -type f -exec sudo chmod 0664 {} \; <- /var/www配下のすべてのファイルにnginxグループの書き込み許可
$ mkdir /var/www/test <- ドキュメントルート用のディレクトリを作成
$ vim /var/www/test/index.php <- PHPファイル作成
index.php
には以下の内容を保存しておきます。
<?php phpinfo();
上の手順を行うと、/var/www/test
、/var/www/index.php
の権限は以下のようになっているはずです。
$ ls -al /var/www/test
total 12
drwxrwsr-x 2 ec2-user nginx 4096 Oct 2 23:20 .
drwxrwsr-x 9 ec2-user nginx 4096 Oct 2 23:15 ..
-rw-rw-r-- 1 ec2-user nginx 17 Oct 2 23:20 index.php
4. nginxの設定
仮に、http://test.utano.jp
というURLで先程のindex.phpにアクセスできるように、バーチャルホストの設定ファイルを作成します。ファイル名は任意で構いません。
$ sudo vim /etc/nginx/conf.d/01_test.utano.jp.conf
01_test.utano.jp.conf
の内容はこのようにします。
server {
listen 80;
server_name test.utano.jp;
root /var/www/test;
location / {
index index.html index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
5. php-fpmの設定
php-fpmの設定ファイルは、以下の場所にあるので開いていくつか設定値を書き換えます。
$ sudo vim /etc/php-fpm-7.0.d/www.conf
listen = 127.0.0.1:9000
↓
listen = /var/run/php-fpm/php-fpm.sock
;listen.owner = nobody
;listen.group = nobody
↓
listen.owner = nginx <- コメントアウトを解除してnginxに変更
listen.group = nginx <- コメントアウトを解除してnginxに変更
6. 起動
$ sudo service nginx start
Starting nginx: [ OK ]
$ sudo service php-fpm start
Starting php-fpm-7.0: [ OK ]
ブラウザからhttp://test.utano.jp
にアクセスすると、phpinfo()の実行結果が表示されるはずです。
※もし表示されない場合は、nginxのエラーログをチェックしてみてください。
$ sudo su
# less /var/log/nginx/error.log
7. 自動起動の設定
nginxの自動起動はこれでOKです。
$ sudo chkconfig nginx on
php-fpmは、一度chkconfigの管理対象に追加する必要があります。
$ sudo chkconfig --add php-fpm
$ sudo chkconfig php-fpm on
これで自動起動の設定まで完了です。