Serveur LEMP (CentOS 7.3) 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 :

# yum install php-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 :

# cp /etc/php-fpm.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 :

# mv /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.monsiteweb.fr.conf

On édite le fichier via la commande suivante :

# vi /etc/php-fpm.d/www.monsiteweb.fr.conf

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

[www.monsiteweb.fr]

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

listen = /run/php-fpm/php-php_www.monsiteweb.fr.sock

On va activer et modifier les directives « listen.owner », « listen.group » et « listen.mode » comme ci-dessous (lignes 31 à 33) :

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

On va modifier le nom du fichier de log pour le site web « www.monsiteweb.fr » comme ci-dessous (ligne 156) :

slowlog = /var/log/php-fpm/www.monsiteweb.fr-slow.log

On va modifier le nom du fichier de log des erreurs pour le site web « www.monsiteweb.fr » comme ci-dessous (ligne 219) :

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

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 :

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

On modifie le fichier comme ci-dessous :

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:/run/php-fpm/php-php_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 :

# nginx -t

Maintenant que tout est bon. On active php-fpm au démarrage et on démarre/redémarre les services :

# systemctl enable php-fpm.service
# systemctl start php-fpm.service
# systemctl restart nginx.service