Recherche de site Web

Comment installer LEMP sur le serveur Debian 10


Une pile « LEMP » est un mélange de logiciels open source généralement installés sur un serveur Linux pour déployer des applications dynamiques. Ce terme est un acronyme qui représente le système d'exploitation Linux, le serveur Web Nginx, une base de données MariaDB et la programmation PHP.

Lire aussi : Comment installer LAMP sur le serveur Debian 10

Bien que cette pile « LEMP » contienne normalement MySQL comme système de gestion de base de données, certaines distributions Linux telles que Debian — utilisent MariaDB. en remplacement immédiat de MySQL.

Exigences

  1. Comment installer un serveur minimal Debian 10 (Buster)

Dans cet article, nous allons vous expliquer comment installer et configurer un environnement LEMP sur un serveur Debian 10, en utilisant MariaDB comme base de données de gestion. plate-forme.

Installation du serveur Web Nginx sur Debian 10

Nginx est un serveur open source et multiplateforme, léger mais puissant et facile à configurer HTTP et proxy inverse, un serveur proxy de messagerie et un proxy TCP/UDP générique. serveur, avec une architecture modulaire.

Certaines de ses fonctionnalités de base incluent la gestion de fichiers statiques et d'index ; prise en charge accélérée avec mise en cache des serveurs FastCGI, uwsgi, SCGI et Memcached, équilibrage de charge et tolérance aux pannes, SSL et prise en charge de TLS SNI, prise en charge de HTTP/2 avec priorisation pondérée et basée sur les dépendances.

Pour installer le package Nginx, utilisez le gestionnaire de packages apt de Debian comme indiqué.

apt update 
apt install nginx 

Une fois l'installation de Nginx terminée, le programme d'installation activera systemd pour démarrer le service Nginx pour le moment et lui permettra de démarrer automatiquement au démarrage du système. Vous pouvez vérifier l'état de Nginx à l'aide de la commande systemctl suivante.

systemctl status nginx

Vous pouvez également utiliser les commandes importantes suivantes pour démarrer, redémarrer, arrêter et recharger la configuration du service Nginx sous systemd.

systemctl start nginx
systemctl restart nginx 
systemctl stop nginx
systemctl reload nginx 
systemctl status nginx 

Ensuite, si le pare-feu UFW est en cours d'exécution (il est généralement désactivé par défaut), vous devez ouvrir les ports 80 (HTTP) et 443 (HTTPS) pour autoriser le trafic entrant. sur Nginx.

ufw allow 80
ufw allow 443
ufw status

À ce stade, vous devez tester si Nginx est correctement installé, s'il est en cours d'exécution et peut servir des pages Web. Pour ce faire, ouvrez un navigateur Web et pointez-le vers l'URL suivante pour accéder à la page Web Nginx Debian Default.

http://SERVER_IP/
OR
http://localhost/

Installer MariaDB sur Debian 10

Ensuite, vous devez installer un système de base de données pour pouvoir stocker et gérer les données de votre site Web ou de votre application Web. Debian 10 prend en charge MariaDB par défaut, en remplacement de MySQL.

Pour installer MariaDB, exécutez la commande suivante.

apt install mariadb-server

Ensuite, vérifiez l'état du service MariaDB puisqu'il est démarré automatiquement par systemd et activé pour démarrer au démarrage du système, pour vous assurer qu'il est opérationnel, utilisez la commande suivante.

systemctl status mariadb

Pour gérer (démarrer, redémarrer, arrêter et recharger) le service MariaDB sous systemd, vous pouvez utiliser la commande suivante.

systemctl start mariadb
systemctl restart mariadb
systemctl stop mariadb
systemctl reload mariadb

Ensuite, le déploiement MariaDB ne sera pas sécurisé par défaut. Vous devez exécuter un script shell fourni avec le package pour vous permettre d'améliorer la sécurité de la base de données.

mysql_secure_installation

Après avoir exécuté le script, vous devrez répondre à une série de questions suivantes pour modifier les paramètres par défaut de l'installation de MariaDB, comme indiqué dans la capture d'écran suivante.

Installation de PHP-FPM (Fast Process Manager) sur Debian 10

Contrairement à Apache et à d'autres serveurs Web, Nginx ne fournit pas de support natif pour PHP, car il utilise PHP-FPM. pour gérer les requêtes de pages PHP. PHP-FPM est un démon FastCGI alternatif pour PHP qui permet à un site Web de gérer des charges élevées, en utilisant des processus de travail pour gérer les requêtes.

Pour installer PHP-FPM version 7.3 et un module PHP pour communiquer avec un système de base de données MariaDB/MySQL, exécutez la commande suivante.

apt install php-fpm php-mysqli

Une fois PHP-FPM installé, le programme d'installation activera systemd pour démarrer le service PHP-FPM pour le moment et lui permettra de démarrer automatiquement au démarrage du système. Pour vérifier s'il est opérationnel, exécutez la commande suivante.

systemctl status php-fpm

Vous pouvez également démarrer, redémarrer, arrêter et recharger la configuration du service PHP-FPM sous systemd, comme suit.

systemctl start php-fpm
systemctl restart php-fpm
systemctl stop php-fpm
systemctl reload php-fpm
systemctl status php-fpm

Ensuite, vous devez sécuriser PHP-FPM en apportant quelques modifications au fichier de configuration /etc/php/7.3/fpm/php.ini comme suit.

vi /etc/php/7.3/fpm/php.ini

Recherchez le ;cgi.fix_pathinfo=1, décommentez-le en supprimant le caractère ; au début, définissez sa valeur sur 0. Cela empêche Nginx d'autoriser l'exécution de fichiers non PHP en tant que PHP.

cgi.fix_pathinfo=0

Par défaut, PHP-FPM est configuré pour écouter sur un soxket UNIX, /run/php/php7.3-fpm.sock comme défini dans le /etc /php/7.3/fpm/pool.d/www.conf fichier de configuration. Vous devez configurer tous vos blocs serveurs (ou hôtes virtuels) pour utiliser ce socket s'ils doivent traiter et servir des pages PHP.

Vous pouvez utiliser le fichier de configuration de bloc du serveur par défaut de Nginx /etc/nginx/sites-available/default pour le tester.

vi /etc/nginx/sites-available/default 

Recherchez la section suivante et décommentez-la pour transmettre les scripts PHP au serveur FastCGI comme indiqué dans la capture d'écran.

location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}

Ensuite, testez si la structure de configuration de Nginx est OK à l'aide de la commande suivante.

nginx -t

Si la configuration de Nginx est OK, pour appliquer les modifications récemment apportées, redémarrez les services php7.3-fpm et nginx comme suit.

systemctl restart php7.2-fpm
systemctl restart nginx

Test du traitement PHP-FPM sur Nginx

Après avoir configuré PHP-FPM et Nginx pour qu'ils fonctionnent ensemble, vous devez tester si deux services peuvent traiter et servir des pages PHP aux clients. Pour ce faire, créez un simple script PHP dans votre DocumentRoot Web comme suit.

echo “<?php phpinfo(); ?>”  | tee /var/www/html/info.php

Enfin, ouvrez un navigateur et saisissez l'adresse suivante pour voir les configurations PHP sur le système telles que générées par la fonction phpinfo().

http://SERVER_IP/info.php
OR
http://localhost/info.php

Conclusion

Dans cet article, nous avons montré comment installer et configurer la pile LEMP dans Debian 10. Si vous avez des questions ou des commentaires, veuillez nous contacter et nous le faire savoir via le formulaire de commentaires ci-dessous.