甘党男子

日々おもしろいと思ったことを軽く考察。

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してますって教えてくれて、エラーの場所をいじったら直りました。