Nous allons installer dans cet article la toute dernière version du serveur web NGINX qui sera couplé au tout nouveau PHP7 FPM.
J'ai longtemps été un fan de Apache httpd que j'utilisais systématiquement en tant que serveur web.
Mais depuis que j'ai essayé Nginx, je l'ai adopté : il est super performant et consomme beaucoup moins de ressources.
Pour ce qui est de PHP 7.0, c'est le digne successeur de PHP5 (oui je sais, PHP 6 est passé à la trappe au milieu).
Cette installation de base sera utilisée par la suite pour ajouter le support de HTTPS et du protocole HTTP/2.
Ajout des dépôts dotdeb et nginx à votre config
Nous allons installer les dernières versions de Nginx et de PHP 7. Les dépôts Debian n'étant pas vraiment à jour, nous utiliserons ;
- le déport officiel de Nginx
- le déport DotDeb pour PHP 7.0
Commençons donc par ouvrir le fichier sources.list utilisé par apt-get.
sudo nano /etc/apt/sources.listPuis nous ajoutons les 2 lignes suivantes à la fin du fichier.
deb http://packages.dotdeb.org jessie all
deb http://nginx.org/packages/mainline/debian/ jessie nginxLes paquets de ces 2 dépôts sont signés, il faut donc télécharger puis d'installer les clés de chiffrage.
cd /tmp
wget http://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg
wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.keyEnfin, on actualise la liste des paquets.
sudo apt-get update
Installation de nginx et PHP 7.0 FPM
On installe en une fois, Nginx et PHP 7.0 FPM plus quelques modules PHP très utiles, voir indispensables ![]()
sudo apt-get install nginx php7.0 php7.0-fpm php7.0-gd php7.0-mysql php7.0-cli php7.0-common php7.0-curl php7.0-opcache php7.0-json php7.0-imapA la fin de l'installation, vous pouvez vérifier les versions installées avec les commandes suivantes :
sudo php -v
PHP 7.0.3-1~dotdeb+8.1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
sudo nginx -v
nginx version: nginx/1.9.11Si vous ouvrez votre navigateur Internet à l'adresse IP de votre serveur, vous recevrez une réponse de Nginx

Configuration de PHP 7.0 FPM
Nous allons maintenant configurer PHP 7.0 FPM et Nginx pour qu'ils puissent dialoguer.
Commençons par ouvrir le fichier de configuration de PHP 7.0 FPM
sudo nano /etc/php/7.0/fpm/pool.d/www.confPuis on s'assure que ce fichier contient la configuration suivante.
En résumé, le mode de communication est un socket UNIX (/run/php/php7.0-fpm.sock) et c'est l'utilisateur www-data, du groupe www-data qui l'exécute.
user = www-data
group = www-data
listen = /run/php/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-dataOn ouvre ensuite le fichier de configuration de Nginx
sudo nano /etc/nginx/nginx.confPuis on s'assure que ce fichier contient la configuration suivante.
Il y a de grande chance que l'utilisateur soit nginx par défaut, remplacez le par www-data
user www-data;On doit maintenant indiquer à Nginx comment traiter les fichiers PHP.
Pour cela, on ouvre la configuration du vHost par défaut.
sudo nano /etc/nginx/conf.d/default.confEt on ajoute la configuration suivante
# pass the PHP scripts to FastCGI server listening on /run/php/php7.0-fpm.sock
#
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Reste à redémarrer les services PHP 7.0 FPM et Nginx pour activer les modifications.
sudo systemctl restart php7.0-fpm
sudo systemctl restart nginx
Vérification du bon fonctionnement de PHP
L'emplacement des fichiers web publiés par le vHost Nginx par défaut est /usr/share/nginx/html.
On y va et on ajoute le petit fichier phpinfo.php
cd /usr/share/nginx/html
sudo nano phpinfo.php
Puis on ajoute le code suivant dans le fichier phpinfo.php que l'on vient de créer
<?php phpinfo(); ?>Reste enfin à ouvrir cette page dans votre navigateur pour obtenir 
Si vous souhaitez aller plus loin dans la configuration de Nginx et de PHP 7 FPM, rendez-vous sur l'article suivant.

Add new comment