Serveur LEMP (Debian 8.7) 2/3 : Installation et configuration de PHP-FPM

Installation de PHP-FPM

Actuellement, notre serveur peut uniquement nous afficher des pages statiques au format HTML. Afin que nous puissions afficher des pages dynamiques, nous devons installer php-fpm. Pour cela nous allons taper la commande suivante :

1
# apt-get install php5-fpm

Configuration de PHP-FPM

Avant de modifier la configuration et comme à chaque fois nous allons la sauvegarder. Pour cela nous allons taper la commande suivante :

1
# cp /etc/php5/fpm/pool.d/www.conf{,.ori}

Nous devons avoir autant de « pool » php-fpm que de vhost Apache (sites web). Afin de nous simplifier la configuration, nous allons nous appuyer sur le fichier « www.conf ». Pour cela nous allons renommer ce fichier via la commande suivante :

1
# mv /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/www.monsiteweb.fr.conf

On édite le fichier via la commande suivante :

1
# vi /etc/php5/fpm/pool.d/www.monsiteweb.fr.conf

On remplace le nom du « pool » comme ci-dessous (ligne 4) :

1
[www.monsiteweb.fr]

Comme nous allons configurer php-fpm pour travail en mode socket, on modifie la directive « listen » comme ci-dessous (ligne 38) :

1
listen = /var/run/php-fpm_www.monsiteweb.fr.sock

On va activer la variable « slowlog » en la décommentant (ligne 315). On va décommenter la variable « php_admin_value[error_log] » et modifier le nom du fichier de log des erreurs pour le site web « www.monsiteweb.fr » comme ci-dessous (ligne 409) :

1
php_admin_value[error_log] = /var/log/php-fpm.www.monsiteweb.fr.log

On va décommenter la variable « slowlog » pour activer l’enregristrement des erreurs dans les logs (ligne 410). Nous avons fini de configurer php-fpm, nous devons maintenant l’activer dans la configuration du vhost Nginx « monsiteweb.fr.conf ». Pour cela, on édite son fichier de configuration via la commande suivante :

1
# vi /etc/nginx/conf.d/monsiteweb.fr.conf

On modifie le fichier comme ci-dessous :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
server {
     listen 80;
     server_name www.monsiteweb.fr;
     root /var/www/html/monsiteweb.fr;
     charset UTF-8;
     index index.php;
     location ~ \.php$ {
          try_files $uri =404;
          fastcgi_pass unix:/var/run/php-fpm_www.monsiteweb.fr.sock;
          fastcgi_index index.php;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
     }
     error_log /var/log/nginx/monsiteweb.fr/error.log;
     access_log /var/log/nginx/monsiteweb.fr/access.log;
}

On vérifie qu’il n’y a pas de coquille dans la configuration via la commande suivante :

1
# nginx -t

Maintenant que tout est bon. On redémarre php-fpm et nginx via les commandes suivantes :

1
2
# systemctl restart php5-fpm.service
# systemctl restart nginx.service