nginxでphpを動かす

sudo apt-get install php php-cgi php-cli php-fpm
sudo vi /etc/php/7.0/fpm/pool.d/www.conf

user = www-data
group = www-data
listen.mode = 0660
listen = /var/run/php/php7.0-fpm.sock

nginx.conf を編集し、serverディレクティブ内に設定する
server {
listen 80;

sudo vi /etc/nginx/nginx.conf

location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
apt-get install php5-common php5-cgi php5-cli php5-fpm
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

おお、こんな感じで、phpinfoにアクセスできない

*1 connect() to unix:/var/run/php-fpm/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "xxx.xxx.xxx.xxx"

多分、nginx起動時のユーザが誰になるのか指定してなかったせいじゃないかと思う。

しょうがないので、もう一度makeからしなおす。debianだと、webユーザはwww-dataがデフォルトなのでこれに合わせてコンパイルする。

id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)
sudo ./configure --user=www-data --group=www-data --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx
/nginx.conf --add-module=../nginx-rtmp-module --prefix=/usr/local/nginx
make install

さて気を取り直して、もう一度スタートして、www-dataユーザで動いているか確認

sudo /usr/sbin/nginx
ps aux |egrep 'www-data'

www-data 12224 0.0 0.2 92684 8100 ? S 14:16 0:00 php-fpm: pool www
www-data 12225 0.0 0.1 92684 7752 ? S 14:16 0:00 php-fpm: pool www
www-data 12304 0.0 0.0 14244 2680 ? S 14:20 0:00 nginx: worker process
vi /usr/local/nginx/html/phpinfo.php

<?php
phpinfo();
?>

で表示させたら、無事phpinfoが表示された