Saba note

醜悪コード Ugly hacks ITものづくり

nginxのphp-fpmでハマる

Apacheの権威みたいになってきて気持ち悪いことになってきたので、nginx派になろうとして、nginxでphpを設定するときにphp-fpmでハマる。

socketがない

2017/03/14 19:49:50 [crit] 1224#1224: *8 connect() to unix:/var/run/php-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 123.456.789.000, server: www.example.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "www.example.com"

設定ファイルでそもそもsoketを設定していなので、当然ない。

#/etc/nginx/conf.d/default.conf
fastcgi_pass 127.0.0.1:9000;
↓
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

同時に/etc/php-fpm.d/www.confも確認

#/etc/php-fpm.d/www.conf
;listen = 127.0.0.1:9000 ←これコメントアウト
listen = /var/run/php-fpm/php-fpm.sock ←これ有効化

再起動のタイミングでphp-fpm.sockが作成される。

拒否

2017/03/14 20:12:17 [error] 1437#1437: *18 connect() to unix:/var/run/php-fpm.sock failed (111: Connection refused) while connecting to upstream, client: 123.456.789.000, server: www.example.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "www.example.com"

パーミッションの問題でしょ。明らかに。rootになっているやつをnginxにして、666にしてやる。/etc/php-fpm.d/www.confも修正。

#/etc/php-fpm.d/www.conf
listen.owner = nginx
listen.group = nginx
listen.mode = 0666

なんだこれ

2017/03/14 21:10:11 [error] 1941#1941: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 123.456.789.000, server: www.example.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "www.example.com"
#/etc/nginx/conf.d/default.conf
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
↓
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

結局こうなる

location ~ \.php$ {
        root   /usr/share/nginx/html; ←これ追加
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; ←これ
        include fastcgi_params;
    }

さらに再起動をかけたあとにアクセス

なんだこれ。

2017/03/14 22:32:05 [warn] 5379#5379: *1 an upstream response is buffered to a temporary file /var/cache/nginx/fastcgi_temp/1/00/0000000001 while reading upstream, client: 61.126.188.59, server: ssfs.omnioo.com, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "ssfs.omnioo.com"

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です