« nginx » est un serveur web open-source créé par un développeur Russe (Igor Sysoev). nginx était à la base un petit serveur web conçu pour supporter une charge très important sur le site d’Igor. Depuis, le projet n’a cessé de prendre du volume, et est maintenant considéré comme stable, en plus d’être réputé très peu gourmand en mémoire vive.

L’installation d’nginx sur Debian Stretch (9.4 Stable dans notre exemple) est très simple !

[divider style= »solid » top= »10″ bottom= »10″]

I. Téléchargements et installation de nginx

Il n’est pas obligatoire d’avoir un serveur SQL pour installer votre serveur nginx ; Le serveur SQL est nécessaire seulement si vous en avez le besoin pour vos applications web. Vous avez le choix entre MySQL (serveur SQL dit « de base »), ou alors l’installation de MariaDB – Article à cette adresse.

[su_note note_color= »#ffec9b »]Attention : Lors de l’installation du serveur MySQL, vous avez le choix pour configurer automatiquement MySQL avec un serveur web spécifique ; Ne cochez aucun des serveurs prédéfinis (Apache2 ou Lighttpd). nginx se chargera lui-même de se configurer pour votre serveur SQL présent.[/su_note]

Pour lancer l’installation d’nginx, il faut saisir la commande ci-dessous :

sudo apt install nginx php7.0-fpm php7.0-mysql

Récapitulatif des paquets installés :

  • nginx : Serveur web ;
  • php7.0-fpm : Extension PHP permettant d’ajouter les plugins « FastCGI » pour avoir un PHP rapide et fiable, en plus d’être ;
  • php7.0-mysql : Extension PHP permettant de « jongler » entre votre serveur SQL et les scripts PHP.

L’installation est très rapide et pour cause : il ne s’agit que de petits plugins / serveur !

Dès lors, votre serveur est (déjà) prêt à l’emploi ! Accédez à l’IP de votre serveur dans un navigateur, et la page d’accueil par défaut d’nginx va s’afficher.
Cependant, tout n’est pas terminé : les scripts PHP ne sont pour le moment pas interprétés ni exécutés de façon optimale à cet instant…

[divider style= »solid » top= »10″ bottom= »10″]

II. Configuration post-installation pour PHP7.0-fpm

PHP ne demande qu’une petite configuration ! Au sein du dossier /etc/nginx, deux autres dossiers sont présents :

  • sites-available ;
  • sites-enabled.

Si vous remarquez bien la chose, ces deux dossiers sont aussi présents lorsque vous installez un serveur Apache. D’un côté, c’est tant mieux niveau organisation – Si ces dossiers n’existent pas, je vous conseille fortement de les créer ;-).

Dans le dossier « /etc/nginx/sites-available« , un premier fichier est présent (« default »). C’est le fichier à modifier pour accéder à votre dossier de base (dans cette configuration par défaut de nginx).

A l’intérieur de ce fichier, vous devez ajouter ces lignes de codes dans la section « server { … } » :

location ~ .php$ {
   fastcgi_split_path_info ^(.+.php)(/.+)$;
   fastcgi_pass unix:/var/run/php7.0-fpm.sock;
   fastcgi_index index.php;
   include fastcgi_params;
}

Par ce paragraphe, on signifie l’existence du plugin php5-fpm et de son socket (« /var/run/php5-fpm.sock« ) ; [alert type= »success »] N’oubliez pas que ce paragraphe doit se retrouver dans toute les sections « server { … } » de chaque fichiers dans le dossier « /etc/nginx/sites-available ». [/alert] Le fichier de configuration étant modifier, il convient de redémarrer le serveur nginx ET le socket php7.0-fpm pour que les modifications puissent être prises en compte :

sudo systemctl restart php7.0-fpm.service && sudo systemctl restart nginx

[divider style= »solid » top= »10″ bottom= »10″]

III. Test de la configuration PHP avec un « phpinfo(); »

Votre serveur web étant redémarré et prêt à l’emploi, nous allons pouvoir tester un premier script PHP tout simple : « phpinfo();« . Cette variable PHP permet d’en savoir un peu plus sur votre serveur (d’une part), mais aussi et surtout sur le moteur PHP en route, avec ses extensions.

echo "<?php phpinfo(); ?>" > /usr/share/nginx/www/info.php

« /usr/share/nginx/www/ » est le dossier « root » du serveur web ; c’est dans ce dossier que vos sites web doivent se trouver. Vous pouvez naturellement changer ce dossier en le spécifiant dans votre fichier de configuration de site (dans le dossier « /etc/nginx/sites-available/« ). Ouvrez de nouveau votre navigateur, et saisissez l’adresse « http://ip_server/info.php« . (« ip_server » à remplacer) Si votre serveur nginx et votre moteur PHP fonctionnent correctement, vous verrez ainsi votre page d’information quant à votre serveur web (et le moteur PHP) !