nginx で PHP を動かす

OS
Amazon Linux

1.必要なもの
・nginx(サーバーソフト)
・php(スクリプト言語環境ソフト)
・php-fpm

2.上記のソフトのインストール
yum install nginx php php-fpm

3.設定
nginx の設定
vim /etc/nginx/nginx.conf で 下記の所があるので


#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 /usr/share/nginx/html; #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/var/run/php-fpm.socket; (ドメインソケットで通信します) fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /$document_root$fastcgi_script_name; include fastcgi_params; }

www.conf の設定
vim /etc/php-fpm.d/www.conf で下記の所があるので


listen = 127.0.0.1:9000 ・ ・ ・ ;listen.owner = nobody ;listen.group = nobody ;listen.mode = 0666 ・ ・ ・ user = apache group = apache

を以下のように書き換える



listen = /var/run/php-fpm.socket ・ ・ ・ listen.owner = nobody (ここを設定しないと パーミッションエラー で弾かれる) listen.group = nobody listen.mode = 0666 ・ ・ ・ user = nginx group = nginx

4.session の権限変更
chown nginx /var/lib/php/session (デフォルトの設定)

service php-fpm start (上記の www.conf で指定した listen のところに php-fpm.socket 作られる)
service nginx start (php-fpm start で作られた php-fpm.socket と通信して php を実行できる環境作成)

ページからの拒否される場合などはSElinux や iptables を切ると良いかもしれないです。