Je ne parviens pas à faire fonctionner mon site après avoir essayé d'implémenter la mise en cache Nginx.
J'utilise Ubuntu 16.04 (xenial), Nginx (1.10.3), PHP-FPM (7.0) et WordPress.
Le port 9000 (pour php-fpm) n'est pas filtré par UFW.
/ etc/php/7.0/fpm/pool.d/www.conf (commentaires omis)
mkdir -p /var/cache/nginx/fastcgi_temp/cache/
chmod 755 /var/cache/nginx/fastcgi_temp/cache/
chown www-data:www-data /var/cache/nginx/fastcgi_temp/cache/
systemctl restart nginx.service
/etc/init.d/php*-fpm restart
*1 connect() failed (111: Connection refused) while connecting to upstream,
client: MY_IP_ADDRESS, server: example.com, request: "GET /
HTTP/2.0", upstream: "fastcgi://127.0.0.1:9000".
Le navigateur donne:
502 Bad Gateway nginx/1.10.3 (Ubuntu)
Debug:
/etc/init.d/php*-fpm status
apporte:
● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-04-27 07:09:28 UTC; 3s ago
Process: 16336 ExecStartPre=/usr/lib/php/php7.0-fpm-checkconf (code=exited, status=0/SUCCESS)
Main PID: 16346 (php-fpm7.0)
Status: "Ready to handle connections"
Pourquoi la connexion est refusée et mon site est en panne?
+ curl -I example.com
HTTP/1.1 301 Moved Permanently
Content-Type: text/html
Content-Length: 194
Connection: keep-alive
Et
grep "listen" /etc/php/7.0/fpm/pool.d/www.conf | grep -v ";"
+ grep --color=auto -v ';'
+ grep --color=auto listen /etc/php/7.0/fpm/pool.d/www.conf
listen = /run/php/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
La question en jeu est une mauvaise configuration de la directive nginx fastcgi_pass
vers une passerelle dorsale/amont inexistante.
Depuis 14.10 (ou était-ce 15.10, je ne me souviens plus maintenant exactement) php-fpm
écoute sur un socket UNIX local et non pas TCP port 9000 par défaut. Je le sais parce que j’ai dirigé l’effort de modification par défaut d’Ubuntu et de Debian pour FPM, et cela a été accepté dans l’emballage. Et je sais que c’est votre configuration à cause de la ligne listen =
de votre FPM www.conf
qui indique son écoute sur une prise.
Mettez unix:/run/php/php7.0-fpm.sock
dans votre directive fastcgi_pass
dans le bloc serveur nginx
et non dans le 127.0.0.1:9000
que vous possédez. Cela devrait alors lui permettre de fonctionner correctement car la passerelle _ PHP en amont correcte est ensuite utilisée.