Edited at

EC2にnginx+php(php-fpm socket)環境を最速で構築

More than 3 years have passed since last update.

EC2上インスタンスにnginxとPHP5.6を入れて、PHPの実行環境を最速で作成する方法です。


ゴール


  • Amazon Linux AMIの標準リポジトリのnginxとphp5.6, php-fpm環境を構築します

  • ブラウザからPHPスクリプトにアクセスできる状態になります

  • nginxとphp-fpm間のやりとりをUnixドメインソケットに変更します

  • ドキュメントルートは、/var/www/defaultにします


EC2 インスタンスを起動

Amazon Linux AMI 2015.03 (HVM), SSD Volume Type でインスタンスを建てる。普通に立てればOK。

最後に外から見えるかみたい人は、Elastic-IPかパブリックIPを振り、セキュリティグループの設定でTCP80番を開けておきます。


インストール

nginx, php56 , php56-fpmをインストール

sudo yum install nginx -y

sudo yum install php56 php56-fpm -y


設定ファイルの変更

まずはnginxの設定ファイルの変更から。


/etc/nginx/nginx.conf


+ server_tokens off;

http {
- index index.html index.htm;
+ index index.php
server {
- root /usr/share/nginx/html;
+ root /var/www/default;

- #location ~ \.php$ {
- # root html;
- # fastcgi_pass 127.0.0.1:9000;
- # fastcgi_index index.php;
- # fastcgi_param SCRIPT_FILENAME/scripts$fastcgi_script_name;
- # include fastcgi_params;
- #}
+ location ~ \.php$ {
+ root /var/www/default;
+ fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
+ fastcgi_index index.php;
+ fastcgi_param SCRIPT_FILENAME /var/www/default$fastcgi_script_name;
+ include fastcgi_params;
+ }


次にphp-fpmの設定。


/etc/php-fpm-5.6.d/www.conf

- user = apache

+ user = nginx

- group = apache
+ group = nginx

- listen = 127.0.0.1:9000
+ listen = /var/run/php-fpm/php-fpm.sock

- ;listen.owner = nobody
- ;listen.group = nobody
+ listen.owner = nginx
+ listen.group = nginx


起動と自動起動設定

nginx, phpをそれぞれ起動します。

sudo service nginx start

sudo chkconfig nginx on
sudo chkconfig --list nginx

sudo service php-fpm start
sudo chkconfig php-fpm on
sudo chkconfig --list php-fpm


表示確認

# 適当なファイル名に変更

echo "<?php phpinfo();" >> /var/www/default/hogehogehoge.php

ブラウザから以下にアクセスして、phpinfoが表示されればOKです。

このファイルは確認したらすぐに消しましょう。

http://[サーバーのIPアドレス]/hogehogehoge.php


参考

AmazonLinuxにnginx+PHP5.6+PHP-fpm+PHP-redis環境を作る - Qiita