AWS Ubuntu+NginX+PHP(PHP5-fpm)でハマった話
さっきまでアホみたいにはまってたのでメモしておきます。
パッケージのインストール
sudo apt-get install nginx
sudo apt-get install php5
sudo apt-get install php5-fpm
php5-fpmの設定ファイル
/etc/php5/fpm/pool.d/www.conf
listen = /var/run/php5-fpm/php5-fpm.sock
多分ココ変えるだけでいい。
調べるとuserとかgroupいろいろ変えろって言われるけどubuntuには関係なし。
nginxの設定ファイル
/etc/nginx/nginx.conf
/etc/nginx/sites-enabled/default
(本当はsites-available/defaultからシンボリックリンク貼るらしいが今回は直接編集しちゃいました)
/etc/nginx/nginx.conf
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
server_names_hash_bucket_size 256;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
/etc/nginx/sites-enabled/default
server {
listen 80;
root /usr/share/wordpress;
index index.php index.html;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
ほんとは色々コメントがあって超見づらい。
大事なところは赤字にしました。
default全部大事だねニッコリ
rootはindex.phpがあるところにしてください。
動かない時のログファイル
以下。catしてください。
/var/log/nginx/access.log
/var/log/nginx/error.log
/var/log/php5-fpm.log
再起動コマンド
sudo service nginx restart
sudo service php5-fpm restart
設定ファイルのチェックコマンド(ココ大事!)
sudo nginx -t
sudo php5-fpm
ハマった理由は、php5-fpmが再起動時にFailしてるにもかかわらずログを吐いてくれなかったこと。
php5-fpm.sockが勝手に作ってくれるっていうのに作られなくてうんうん唸ってました。
sudo php5-fpm
するとFailしてますって教えてくれて、エラーの場所をいじったら直りました。