Installer la pile LEMP (Nginx, PHP et MariaDB) sur Debian 11

La pile LEMP est un ensemble de logiciels open-source et de cadres ou de bibliothèques qui sont utilisés pour héberger des applications Web sur Internet. Une pile se compose du système d’exploitation Linux, du serveur Web Nginx, du serveur de base de données MariaDB/MySQL et du langage PHP. Un LEMP bénéficie d’un bon soutien de la part de la communauté et est utilisé dans de nombreuses applications Web hautement dimensionnées dans le monde entier.

Dans ce billet, nous allons te montrer comment installer la pile LEMP sur Debian 11.

Conditions préalables

  • Un serveur fonctionnant sous Debian 11.
  • Un nom de domaine valide pointé avec l’IP de ton serveur.
  • Un mot de passe root est configuré sur le serveur.

Démarrage

Avant de commencer, c’est une bonne idée de mettre à jour tes paquets système à la dernière version. Tu peux mettre à jour tous les paquets à l’aide de la commande suivante :

apt-get update -y

Une fois que ton système est mis à jour, tu peux passer à l’étape suivante.

Installe le serveur Web Nginx

Nginx est un serveur Web gratuit et open-source qui suit une architecture pilotée par les événements et est capable de traiter plusieurs requêtes dans un même thread. Il est compatible avec les applications les plus courantes et utilisé pour servir des fichiers statiques.

Par défaut, le paquet Nginx est inclus dans le référentiel par défaut de Debian 11. Tu peux l’installer à l’aide de la commande suivante :

apt-get install nginx -y

Une fois que Nginx est installé, démarre le service Nginx et active son démarrage au redémarrage du système :

systemctl start nginx
systemctl enable nginx

Tu peux aussi vérifier la version installée de Nginx à l’aide de la commande suivante :

nginx -v

Tu devrais voir la sortie suivante :

nginx version: nginx/1.18.0

Par défaut, Nginx fonctionne sur le port 80. Tu peux le vérifier à l’aide de la commande suivante :

ss -antpl | grep nginx

Tu devrais voir le résultat suivant :

LISTEN 0      511          0.0.0.0:80        0.0.0.0:*    users:(("nginx",pid=44342,fd=8),("nginx",pid=44341,fd=8))
LISTEN 0      511             [::]:80           [::]:*    users:(("nginx",pid=44342,fd=9),("nginx",pid=44341,fd=9))

Tu peux aussi vérifier l’installation de Nginx en utilisant l’URL http://your-server-ip. Tu devrais voir la page de test de Nginx à la page suivante :

Page d'accueil de Nginx

À ce stade, le serveur Web Nginx est installé. Tu peux maintenant passer à l’étape suivante.

Installer le serveur de bases de données MariaDB

MariaDB est une base de données open-source basée sur SQL qui est utilisée pour stocker et gérer les données des sites Web. Par défaut, le paquet MariaDB est inclus dans le référentiel par défaut de Debian 11. Tu peux l’installer à l’aide de la commande suivante :

apt-get install mariadb-server -y

Une fois le serveur de base de données MariaDB installé, démarre le service MariaDB et active son démarrage au redémarrage du système :

systemctl start mariadb
systemctl enable mariadb

Tu peux aussi vérifier l’état du service MariaDB à l’aide de la commande suivante :

systemctl status mariadb

Tu devrais voir la sortie suivante :

? mariadb.service - MariaDB 10.3.31 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-08-21 04:13:25 UTC; 1min 36s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 1838 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 31 (limit: 2353)
     Memory: 66.1M
     CGroup: /system.slice/mariadb.service
             ??1838 /usr/sbin/mysqld

Il est également recommandé de sécuriser ton installation MariaDB et de définir un mot de passe root MariaDB. Tu peux exécuter le script mysql_secure_installation pour sécuriser l’installation de MariaDB :

mysql_secure_installation

Tu seras invité à définir un mot de passe root MariaDB, à supprimer les utilisateurs anonymes, à interdire la connexion root à distance et à supprimer la base de données de test comme indiqué ci-dessous :

Enter current password for root (enter for none): 
Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Par défaut, MariaDB fonctionne sur le port 3306. Tu peux le vérifier en utilisant la commande suivante :

ss -antpl | grep mariadb

Tu devrais voir la commande suivante :

LISTEN 0      80         127.0.0.1:3306      0.0.0.0:*    users:(("mariadbd",pid=12181,fd=15))

Pour te connecter au shell MariaDB, exécute la commande suivante :

mysql -u root -p

Indique ton mot de passe root MariaDB et appuie sur Entrée pour te connecter au shell MariaDB. Une fois que tu es connecté, tu devrais voir la sortie suivante :

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 64
Server version: 10.5.11-MariaDB-1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Maintenant, exécute la commande suivante pour vérifier la version de MariaDB :

MariaDB [(none)]> SELECT VERSION();

Tu devrais voir le résultat suivant :

+-------------------+
| VERSION()         |
+-------------------+
| 10.5.11-MariaDB-1 |
+-------------------+
1 row in set (0.001 sec)

À ce stade, le serveur de base de données MariaDB est installé et sécurisé. Tu peux maintenant passer à l’étape suivante.

Installer le langage PHP

PHP signifie Hypertext Preprocessor et est un langage de script utilisé côté serveur. Il est open-source, bénéficie d’un large soutien communautaire et est utilisé pour héberger des applications PHP sur Internet.

Par défaut, la version de PHP disponible dans la Debian 11 est PHP 7.4. Tu peux installer PHP avec d’autres extensions couramment utilisées à l’aide de la commande suivante :

apt-get install php php-fpm php-cli php-mysql php-zip php-curl php-xml -y

Une fois que PHP est installé, vérifie la version de PHP à l’aide de la commande suivante :

php -v

Tu devrais voir la sortie suivante :

PHP 7.4.21 (cli) (built: Jul  2 2021 03:59:48) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies

Créer un hôte virtuel pour Nginx

Ici, nous allons créer un répertoire exemple.com pour héberger une page PHP. Tu peux le créer à l’aide de la commande suivante :

mkdir /var/www/html/example.com

Ensuite, définis la propriété du répertoire example.com sur www-data :

chown -R www-data:www-data /var/www/html/example.com

Ensuite, crée un fichier de configuration d’hôte virtuel Nginx avec la commande suivante :

nano /etc/nginx/conf.d/example.conf

Ajoute les lignes suivantes :

server {

  listen 80;
  server_name example.com;

  root /var/www/html/example.com;
  index index.php;
  access_log /var/log/nginx/example_access.log;
  error_log /var/log/nginx/example_error.log;

  client_max_body_size 100M;

  location / {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  location ~ \.php$ {
    try_files $uri =404;
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

}

Sauvegarde et ferme le fichier puis vérifie que Nginx n’a pas d’erreur de configuration avec la commande suivante :

nginx -t

Tu devrais voir la sortie suivante :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, redémarre le service Nginx pour appliquer les changements de configuration :

systemctl restart nginx

Tu peux aussi vérifier l’état du service Nginx à l’aide de la commande suivante :

systemctl status nginx

Tu devrais voir le résultat suivant :

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-08-21 04:37:27 UTC; 5s ago
       Docs: man:nginx(8)
   Main PID: 4378 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 6.2M
     CGroup: /system.slice/nginx.service
             ??4378 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??4379 nginx: worker process

Aug 21 04:37:27 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Aug 21 04:37:27 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

Vérifier l’installation de PHP sur Nginx

Ensuite, tu devras créer un exemple de fichier PHP à servir sur le serveur Web Nginx. Tu peux créer un fichier phpinfo.php dans ton répertoire exemple.com :

nano /var/www/html/example.com/phpinfo.php

Ajoute la ligne suivante :

<?php phpinfo(); ?>

Sauvegarde et ferme le fichier puis ouvre ton navigateur Web et accède à ta page PHP en utilisant l’URL http://example.com/phpinfo.php. Tu devrais voir ta page PHP dans l’écran suivant :

Conclusion

Dans le guide ci-dessus, nous avons expliqué comment installer la pile LEMP sur Debian 11. Tu peux maintenant commencer à héberger ton premier site Web en utilisant la pile LEMP. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...