PHP 5 -Configurer PHP-FPM pour Nginx
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) :
Après ce petit rappel je vais installer la version pour PHP 7.0
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
Pour connaître l'emplacement du socket allez dans la conf de FPM
On redémarre FPM
blog comments powered by Disqus
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
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 celalisten = /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