Nginx + php-fpm の CentOS 7.2.1511 をリブートしたら 502 Bad Gateway になった

更新が溜まっていたので yum -y update した。
カーネル系の更新があったのでリブートしたら 502 Bad Gateway となった。

2016-04-03_20h32_15

あまりにも初歩的なんだけど、ログを確認したら

2016/04/03 20:31:21 [crit] 1410#0: *1 connect() to unix:/var/run/php-fpm/php-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 203.0.113.12, server: pg1x.io, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "pg1x.io", referrer: "https://blog.pg1x.com/"

FastCGI 処理系の php-fpm と通信できていないっぽい。
つまり php-fpm のプロセスが立ち上がっていない。
なんつー初歩的。。。
自動起動設定して起動して解決。

systemctl start php-fpm
systemctl enable php-fpm

Nginx 経由で動く WordPress でパーマリンクをデフォルトから変更したら 404 になった

Nginx + php-fpm で構築した新規 WordPress ブログのパーマリンクをもっとわかりやすい URL にしたいなと思って年月日と英語タイトルにしてみたら見事に 404 になった。

Homebrew で GitHub API rate limit exceeded って言われた時


2016-04-03_19h58_29

2016-04-03_19h58_35

検索して出てきたのは以下。

nginxでwordpressのパーマリンクをデフォルト以外に対応する – Qiita

サンプルを元に設定を変えてみる。

server {
    listen       80;
    server_name  yourhost.com;
    root         /usr/share/nginx/wordpress;
    index        index.php

    charset utf-8;

    location / {
        try_files $uri $uri/ @wordpress;
    }

    location ~ \.php$ {
        try_files $uri @wordpress;
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME  /usr/share/nginx/wordpress$fastcgi_script_name;
        include       fastcgi_params;
    }

    location @wordpress {
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME  /usr/share/nginx/wordpress/index.php;
        include       fastcgi_params;
    }

    error_page 404 /404.html;
    location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
}

これを参考に設定してみた。

真っ白なんだなー。。
エラーログ確認してみるとなんだか

2016/04/03 19:58:32 [error] 21562#0: *5481 "/var/www/wordpress/2016/03/27/homebrew-says-github-api-rate-limit-exceeded/index.php" is not found (2: No such file or directory), client: 203.0.113.12, server: pg1x.io, request: "GET /2016/03/27/homebrew-says-github-api-rate-limit-exceeded/ HTTP/1.1", host: "pg1x.io", referrer: "https://blog.pg1x.com/"

よくよく見直すと以下が足りていないので付け足した。
私の例はこんな感じ。

        include        fastcgi_params;
server {
    listen 443 default ssl;
    server_name pg1x.io;
    root /var/www/wordpress;
    index  index.php index.html index.htm;

    charset utf-8;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/blog.pg1x.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/blog.pg1x.com/privkey.pem;

    location / {
        try_files $uri $uri/ @wordpress;
    }

    location ~ /wp-login\.php.* {
        include conf.d/access_list.conf;

        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/wordpress$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ \.php$ {
        try_files $uri @wordpress;

        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/wordpress$fastcgi_script_name;
        include        fastcgi_params;
    }

    location @wordpress {
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_param  SCRIPT_FILENAME  /var/www/wordpress/index.php;
        include        fastcgi_params;
    }

}

見れた!

2016-04-03_20h12_50