Votre navigateur n'est pas à jour !

Merci de mettre à jour votre navigateur pour utiliser mon blog. Mettre à jour mon navigateur maintenant

×

PHP 5 - Configurer PHP-FPM pour Nginx

Date de publication 7 nov. 2016
Après une mise à jour de mon OS sur la version Ubuntu 16.04 j'ai perdu toute ma configuration sur mes sites PHP pour Nginx.
Après avoir refait la configuration de mes sites, j'ai une erreur sur PHP-FPM dans les logs Nginx. Donc c'est lui le fautif !

FastCGI Process Manager (FPM) alternative à FactCGI, est un protocole de communication entre un serveur web et du PHP (comme WSGI pour python). FPM est lancé dans un processus indépendant donc il est possible d'en lancer plusieurs avec chacun une version différente de PHP par exemple.

Il existe trois modes de configuration du Process Management (PM) :
  • Static : toujours le même nombre connexions ouvertes avec pm.max_children
  • Dynamic : alloue le nombre de connexions au démarrage : pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers
  • Ondemand : (ré) ouvre les connections en fonctions de la demande jusqu'au max pm.max_children
Pour cela changez le paramètre suivant dans /etc/php/7.0/fpm/pool.d/www.conf
pm = dynamic # ou ondemand ou static

Après ce petit rappel je vais installer la version pour PHP 7.0
sudo apt-get install php-fpm

En allant regarder un peu sur le net il y avait plein de tutos qui recommandait de ne pas communiquer sur un socket mais plutôt sur un port TCP. Moi je dis qu'il est quand même possible de passer par socket.

En considérant que default est votre nom du fichier de configuration déjà existant, éditez votre fichier de configuration dans /etc/nginx/sites-enabled/default
 server {
        listen 80;
        root /var/www/rigaudie;
        server_name rigaudie.tld; #127.0.0.1 rigaudie.tld in /etc/hosts
        index index.php index.html;
        error_log /var/log/nginx/php-error;

        location / {
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }
        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;

        location ~ \.php$ {
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;                
                fastcgi_index index.php;
                include fastcgi.conf;
        }
}

Pour connaître l'emplacement du socket allez dans la conf de FPM
vi /etc/php/7.0/fpm/pool.d/www.conf
Vous trouverez cela
listen = /var/run/php/php7.0-fpm.sock

On redémarre FPM
sudo /etc/init.d/php7.0-fpm restart
et accédez à votre site sur rigaudie.tld
blog comments powered by Disqus