NGINX, qui s’écrit tout en majuscules et se prononce EngineX, est un serveur Web moderne et efficace.
Installer Nginx
Rien de plus simple :
# apt-get update |
Puis aller ensuite sur http://your_server_ip et vous devriez voir un “Welcome to nginx“ sur votre page d’accueil.
Commandes de bases
Les commandes de bases sont :
# systemctl stop nginx |
Serveur racine par défaut
Le répertoire par défaut est /var/www/html
(pour les versions installées depuis les dépôts debian/ubuntu) sinon dans dans /usr/share/nginx/html
pour l’installation depuis le depot NGINX.
Si vous avez installé NGINX depuis son propre dépôt
Si vous avez installé NGINX depuis son dépôt il faudra refaire faire certaines configurations pour retrouver le même principe que sous Apache.
Création des répertoires enable-availabe
S’il n’existe pas (installation depuis le depot NGINX) il faudra les créer pour gérer le multisite.
# mkdir /etc/nginx/sites-enabled |
Ouvir le ficher /etc/nginx/nginx.conf
et rajouter à la fin :
include /etc/nginx/sites-enabled/*; |
Configuration de chaque bloc serveur
Tous les sites supplémentaires (hôtes virtuels dans Apache) devront être ajoutés en créant de nouveaux fichiers de configuration dans /etc/nginx/sites-available
et par la suite créer un lien symbolique dans /etc/nginx/sites-enabled
pour activer le site.
Exemple : un nouveau site nouveauSite.fr devra être configuré dans /etc/nginx/sites-available/nouveauSite.fr.conf
.
Et être ensuite activé de la façon suivante, en créant un lien symbolique :
ln -s /etc/nginx/sites-available/www.exemple.org.conf `/etc/nginx/sites-enabled/ |
Il suffira de supprimer le lien symbolique /etc/nginx/sites-enabled/nouveauSite.fr.conf
et relancer nginx pour désactiver le site
NOTE : Équivalent de a2ensite
d’Apache.
Installer PHP
Nginx ne contient pas de PHP natif, il faudra donc installer php-fpm (fastCGI process manager).
# apt-get install php-fpm php-mysql |
Configuration de PHP
Ouvrir le php.ini
de PHP :
# vim /etc/php/7.0/fpm/php.ini |
Pour ajouter un niveau de sécurité nous allons interdire à PHP d’exécuter le premier fichier qu’il trouvera si le fichier index.php demeure introuvable. Nous allons changer la valeur à 0 et décommenter la ligne.
cgi.fix_pathinfo=0 |
Redémarrer PHP.
# systemctl restart php7.0-fpm |
ou, s’il n’a jamais été encore lancé :
# service php7.0-fpm (re)start |
Configurer Nginx pour interpréter PHP
Ouvrir le fichier contenant la configuration générale des sites :
# vim /etc/nginx/sites-available/default |
Le fichier ressemble par défaut à ceci :
server { |
Nous allons y configurer le bloc PHP, ainsi tous les sites pourront en bénéficier
server { |
vrai exemple :
Exemple réel :
server { |
Tester la configuration NGINX :
# nginx -t |
Puis recharger la configuration :
# service nginx reload |
Créer une page php
Dans un fichier à la racine de votre site web :
# vim /home/client1/site1.fr/info.php |
Avec à l’intérieur :
<?php |
En se rendant à cette adresse la page devrait afficher les informations du serveur.
Les erreurs :
Erreur 502 : Bad Gateway -> php n’est pas lancé !