Recherche de site Web

Comment installer LEMP (Linux, Nginx, MariaDB, PHP-FPM) sur Debian 9 Stretch


Puisque Debian alimente un grand pourcentage de serveurs Web partout dans le monde, dans cet article nous expliquerons comment installer le LEMP (Linux + Nginx + MariaDB + PHP-FPM) sur Debian 9 Stretch comme alternative à LAMP (utilisez ce guide pour installer LAMP sur Debian 9).

De plus, nous montrerons comment effectuer une configuration minimale Nginx/PHP-FPM afin que même les nouveaux administrateurs système puissent configurer de tout nouveaux serveurs Web pour configurer des pages dynamiques.

Pour ce faire, nous exploiterons les récentes mises à jour des référentiels officiels de la distribution. Il est supposé que vous avez installé Debian 9 sur une machine nue, une machine virtuelle ou un VPS, ou que vous avez effectué une mise à niveau depuis Jessie.

Installer LEMP dans Debian 9 Stretch

Vous vous demandez peut-être pourquoi nous avons mentionné PHP-FPM au lieu de PHP dans le cadre de la pile LEMP. Contrairement à d'autres serveurs Web, Nginx ne fournit pas de support natif pour PHP.

Pour cette raison, PHP-FPM (Fast Process Manager) est utilisé pour gérer les requêtes de pages PHP. Vous pouvez en savoir plus sur PHP-FPM sur le site officiel de PHP.

La version par défaut fournie dans les dépôts Debian php7.0-fpm. Comme vous pouvez probablement le deviner en vous basant sur le nom du package, cette version peut même gérer les requêtes vers des pages incluant du code PHP 7.

REMARQUE : Si Apache a déjà été installé dans la même boîte, assurez-vous qu'il est arrêté et désactivé avant de continuer.

Cela dit, installons les composants de la pile LEMP comme suit :

aptitude update 
aptitude install nginx mariadb-server mariadb-client php-mysqli php7.0-fpm

Une fois l'installation terminée, vérifions d'abord que Nginx et PHP-FPM sont en cours d'exécution et activés pour démarrer au démarrage :

systemctl status nginx php7.0-fpm

Si cela indique qu'un ou les deux services ne sont pas en cours d'exécution, faites-le.

systemctl start nginx php7.0-fpm
systemctl enable nginx php7.0-fpm

Comme c'est le cas pour chaque installation MariaDB ou MySQL, il est important d'exécuter mysql_secure_installation pour effectuer une configuration de sécurité minimale et définir le mot de passe pour le compte racine de la base de données.

mysql_secure_installation

Si vous ne savez pas comment procéder, vous pouvez vous référer à l'étape 4 dans Comment installer MariaDB 10 sur Debian et Ubuntu.

Configurer Nginx pour utiliser PHP-FPM sur Debian 9

Le fichier de configuration principal de Nginx est /etc/nginx/sites-available/default, où nous devrons apporter les modifications suivantes à l'intérieur du bloc serveur :

  • Assurez-vous que le bloc location qui gère les requêtes PHP est activé, à l'exception de celui où la directive fastcgi_pass pointe vers la carte réseau de bouclage.
  • Ajoutez index.php après la directive index pour indiquer que si elle est trouvée, elle doit être servie par défaut avant index.html ou d'autres fichiers.
  • Ajoutez la directive server_name pointant vers l'adresse IP ou le nom d'hôte de votre serveur. Ce sera 192.168.0.35 dans notre cas.
  • De plus, assurez-vous que la directive root pointe vers l'emplacement où vos fichiers .php seront stockés (/var/www/html par défaut). .

Lorsque vous avez terminé, vous pouvez utiliser la commande suivante pour tester les erreurs dans le fichier de configuration.

nginx -t 

À ce stade, votre /etc/nginx/sites-available/default devrait ressembler à ceci, où les numéros faisant référence à la configuration représentent la liste ci-dessus :

grep -Ev '#' /etc/nginx/sites-available/default

Tester Nginx et PHP-FPM sur Debian 9

Pour nous assurer que nous utilisons désormais Nginx comme serveur Web, créons un fichier nommé info.php dans /var/www/html avec le contenu suivant :

<?php
	phpinfo();
?>

Ensuite, allez sur http://192.168.0.35/info.php et vérifiez en haut de la page où vous devriez voir ceci :

Enfin, pointons notre navigateur vers le fichier booksandauthors.php que nous avons créé dans Install LAMP (Linux, Apache, MariaDB ou MySQL et PHP) Stack sur Debian 9.

Comme vous pouvez le voir dans l'image suivante, ce fichier est désormais servi par Nginx :

REMARQUE : Si vous remarquez que Nginx propose les fichiers .php en téléchargement au lieu de les exécuter, videz le cache de votre navigateur ou essayez un autre navigateur. . En particulier, si vous utilisez Chrome, vous souhaiterez peut-être tester avec le mode navigation privée.

Résumé

Dans cet article, nous avons expliqué comment installer et configurer Nginx pour servir des pages dynamiques .php. Il est important de noter qu'après cette configuration initiale, certains paramètres doivent être pris en compte pour sécuriser le serveur Web.

Vous pouvez trouver un résumé de base dans Le guide ultime pour sécuriser, renforcer et améliorer les performances du serveur Web Nginx.

Si vous recherchez un hébergement virtuel sur Nginx, lisez Comment configurer des hôtes virtuels basés sur le nom et basés sur IP sur NGINX.

Comme toujours, n’hésitez pas à nous faire savoir si vous avez des questions ou des commentaires sur cet article.