LEMP Stack · 9 min read · Sep 10, 2025

Comment installer la pile LEMP (Linux, Nginx, PHP et MariaDB) sur Ubuntu 24.04

La pile LEMP (Linux, Nginx, MySQL/MariaDB et PHP) est un groupe d’applications logicielles gratuites et open-source pour l’hébergement et le développement d’applications web PHP. La pile LEMP peut être utilisée pour déployer des applications web statiques et dynamiques.

Ce guide vous montrera comment installer la pile LEMP (Linux, Nginx, MySQL/MariaDB et PHP) sur Ubuntu 24.04 “Noble Numbat”. Nous montrerons également comment sécuriser le serveur MariaDB et créer une configuration de bloc de serveur Nginx pour héberger des sites web ou des noms de domaine.

Prérequis

Avant de commencer, assurez-vous d’avoir Ubuntu 24.04 “Noble Numbat” avec l’utilisateur root ou un utilisateur non-root avec des privilèges sudo/administrateur. Assurez-vous également que le UFW (Uncomplicated Firewall) est en cours d’exécution et activé.

Installation du serveur web Nginx

Nginx ou engine-x est le serveur web le plus populaire sur Internet. Il est devenu populaire car Nginx peut gérer un trafic élevé simultanément avec un minimum de ressources système. Dans cette première étape, vous allez installer le serveur web Nginx sur le serveur Ubuntu.

Avant d’installer des paquets, mettez à jour et rafraîchissez votre liste de paquets Ubuntu avec la commande suivante.

sudo apt update

update repo

Installez le serveur web Nginx sur votre machine Ubuntu avec la commande ci-dessous. Tapez Y pour confirmer l’installation lorsque vous y êtes invité.

sudo apt install nginx

install nginx

Une fois l’installation terminée, le service Nginx devrait être en cours d’exécution et activé sur votre système. Vérifiez le service Nginx avec la commande ci-dessous.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Vous devriez voir que le service Nginx est ‘enabled‘ et que l’état actuel est ‘active (running)‘.

check nginx service

Avant d’accéder à Nginx, vous devez ouvrir les ports HTTP et HTTPS sur votre serveur Ubuntu via UFW (Uncomplicated Firewall).

Exécutez la commande ‘ufw‘ suivante pour activer le profil ‘Nginx Full‘, ce qui permettra l’accès HTTP et HTTPS à votre serveur Ubuntu.

sudo ufw allow 'Nginx Full'

Maintenant, vérifiez les règles UFW avec la commande suivante. Assurez-vous que le profil ‘Nginx Full‘ est activé avec le statut ‘ALLOW’.

sudo ufw status

setup nginx ufw

Enfin, visitez http://192.168.5.30/ depuis votre navigateur web préféré pour accéder à votre installation Nginx. Si cela réussit, vous devriez obtenir la page par défaut ‘index.html‘ comme suit :

nginx index

Installation du serveur MariaDB

Après avoir installé Nginx, vous allez installer le serveur MariaDB sur Ubuntu. Dans cet exemple, vous allez installer MariaDB via le dépôt Ubuntu, puis sécuriser l’installation de MariaDB via l’utilitaire ‘mariadb-secure-installation‘.

Pour installer le serveur MariaDB sur Ubuntu, exécutez la commande ‘apt install‘ suivante. Tapez Y et appuyez sur ENTRÉE pour continuer le processus.

sudo apt install mariadb-server

install mariadb server

Une fois l’installation terminée, vérifiez le service MariaDB avec la commande ci-dessous. Cela vous montrera l’état du service MariaDB.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

Le service MariaDB est ‘enabled‘ avec l’état actuel ‘active (running)‘.

check mariadb service

Une fois que vous avez installé le serveur MariaDB, vous devez le sécuriser via ‘mariadb-secure-installation‘. Cela vous permet de configurer le mot de passe root de MariaDB, de désactiver l’authentification à distance pour l’utilisateur root, et également de supprimer les bases de données et privilèges inutiles de votre installation de serveur MariaDB.

Exécutez la commande ‘mariadb-secure-installation‘ ci-dessous pour sécuriser le serveur MariaDB.

sudo mariadb-secure-installation

Maintenant, vous serez interrogé sur les configurations suivantes du serveur MariaDB :

Appuyez sur ENTRÉE lorsque vous êtes invité à entrer le mot de passe root de MariaDB.

Enter current password for root (enter for none):  
OK, successfully used password, moving on...

Tapez ‘n‘ lorsque vous êtes invité à passer à l’authentification unix_socket.

Switch to unix_socket authentication [Y/n] n  
 ... skipping.

Tapez Y pour configurer le mot de passe root de MariaDB. Ensuite, saisissez votre nouveau mot de passe et répétez-le.

Change the root password? [Y/n] Y  
New password:  
Re-enter new password:  
Password updated successfully!  
Reloading privilege tables..  
 ... Success!

Tapez Y pour supprimer l’utilisateur anonyme par défaut de votre installation de serveur MariaDB.

Remove anonymous users? [Y/n] Y  
 ... Success!

Tapez Y pour désactiver la connexion à distance pour l’utilisateur root de MariaDB. L’utilisateur root doit toujours se connecter depuis localhost.

Disallow root login remotely? [Y/n] Y  
 ... Success!

Maintenant, tapez Y à nouveau pour supprimer la base de données de test par défaut et ses privilèges de votre serveur MariaDB.

Remove test database and access to it? [Y/n] Y  
 - Dropping test database...  
 ... Success!  
 - Removing privileges on test database...  
 ... Success!

Tapez Y pour recharger les tables de privilèges et appliquer tous les changements que vous avez effectués jusqu’à présent.

Reload privilege tables now? [Y/n] Y  
 ... Success!

Lorsque c’est terminé, vous verrez le message suivant :

All done! If you've completed all of the above steps, your MariaDB  
installation should now be secure.  
  
Thanks for using MariaDB!

Installation de PHP-FPM

PHP-FPM (FastCGI Process Manager) est une alternative à l’implémentation FastCGI pour PHP. Il est principalement utilisé pour les sites à fort trafic avec Nginx comme serveur web. Dans cette section, vous allez installer PHP-FPM avec quelques extensions supplémentaires, telles que mysqli pour le pilote MySQL/MariaDB, opcache et APCu pour la mise en cache.

Installez PHP-FPM sur votre serveur Ubuntu avec la commande suivante. Lorsque vous y êtes invité, tapez Y et appuyez sur ENTRÉE pour continuer.

sudo apt install php-fpm php-mysql php-curl php-gd php-json php-intl php-bcmath php-opcache php-apcu php-mbstring php-fileinfo php-xml php-soap php-tokenizer php-zip

install php-fpm

Après l’installation, le service PHP-FPM devrait être opérationnel. Vérifiez l’état du service PHP-FPM avec la commande suivante.

sudo systemctl is-enabled php8.3-fpm  
sudo systemctl status php8.3-fpm

Comme vous pouvez le voir ci-dessous, le PHP-FPM est ‘active (running)‘ et ‘enabled‘ au démarrage du système :

check php-fpm service

Sur Ubuntu, le PHP-FPM par défaut fonctionne sous le fichier sock. Connaître le chemin du fichier sock de PHP-FPM est important, car il sera utilisé pour l’intégration avec le serveur web Nginx.

Vérifiez le chemin d’emplacement du fichier sock de PHP-FPM avec la commande suivante.

ss -pl | grep php

Dans la sortie suivante, vous pouvez voir que le fichier sock de PHP-FPM est situé à ‘/run/php/php8.3-fpm.sock‘.

Intégration de Nginx avec PHP-FPM

Vous avez donc installé PHP-FPM, il est temps de l’intégrer avec le serveur web Nginx. Pour ce faire, vous devez connaître exactement le chemin du fichier sock de PHP-FPM, puis modifier le fichier de bloc de serveur Nginx par défaut.

Ouvrez la configuration du bloc de serveur ‘/etc/nginx/sites-available/default‘ en utilisant la commande de l’éditeur nano suivante.

sudo nano /etc/nginx/sites-available/default

Décommentez les lignes suivantes et assurez-vous de changer le chemin du fichier sock de PHP-FPM avec le nouvel emplacement.

 # pass PHP scripts to FastCGI server  
 #  
 location ~ \.php$ {  
     include snippets/fastcgi-php.conf;  
  
     # # With php-fpm (or other unix sockets):  
     fastcgi_pass unix:/run/php/php8.3-fpm.sock;  
  
     # # With php-cgi (or other tcp sockets):  
     # fastcgi_pass 127.0.0.1:9000;  
 }

Enregistrez le fichier et quittez l’éditeur.

Maintenant, exécutez la commande ‘nginx‘ ci-dessous pour vérifier votre syntaxe Nginx. Vous devez exécuter cette commande après avoir apporté des modifications à la configuration de Nginx.

sudo nginx -t

Si vous avez une syntaxe Nginx correcte, vous devriez obtenir une confirmation comme suit :

integrate nginx and php-fpm

Ensuite, exécutez la commande ci-dessous pour redémarrer le service Nginx et appliquer votre intégration entre Nginx et PHP-FPM.

sudo systemctl restart nginx

Avec Nginx redémarré, vous pouvez vérifier votre intégration via le fichier PHPINFO. Exécutez la commande ci-dessous pour créer le fichier PHPINFO ‘info.php‘ dans le répertoire racine web par défaut ‘/var/www/html/‘.

echo "" > /var/www/html/info.php

Enfin, retournez à votre navigateur web et visitez http://192.168.5.30/info.php. Si votre intégration de Nginx et PHP-FPM est réussie, vous devriez obtenir ce qui suit :

Vous pouvez voir ci-dessous que PHP 8.3 fonctionne avec l’API serveur PHP-FPM sous le serveur web Nginx.

phpinfo

Faites défiler la page et vous verrez également l’extension PHP mysqli/mysqlnd installée.

php mysql enabled

Enfin, vous verrez également la mise en cache via APC activée sur votre installation PHP.

php apc enabled

Création d’un bloc de serveur Nginx (hôte virtuel)

Un bloc de serveur est juste un autre nom pour un ‘hôte virtuel’ pour un serveur web Nginx. Il est utilisé pour héberger plusieurs sites web ou noms de domaine sur un seul serveur. Dans cette section, vous apprendrez à créer un bloc de serveur Nginx.

Avant de créer la configuration du bloc de serveur, exécutez la commande ci-dessous pour créer un nouveau répertoire racine web ‘/var/www/newsite/public_html’ et une page personnalisée ‘index.html’.

mkdir -p /var/www/newsite/public_html  
echo "Welcome to newsite.com" > /var/www/newsite/public_html/index.html

Maintenant, exécutez la commande ci-dessous pour changer la propriété du répertoire ‘/var/www/newsite‘ à l’utilisateur ‘www-data‘. Sur le système Ubuntu, le serveur web Nginx fonctionne en tant qu’utilisateur ‘www-data‘.

sudo chown -R www-data:www-data /var/www/newsite

Ensuite, exécutez la commande de l’éditeur nano suivante pour créer une nouvelle configuration de bloc de serveur ‘/etc/nginx/sites-available/newsite’.

sudo nano /etc/nginx/sites-available/newsite

Insérez la configuration ci-dessous, assurez-vous de changer l’option server_name avec votre nom de domaine, et le répertoire racine web au nouveau chemin tel que ‘/var/www/newsite/public_html‘.

server {  
   listen 80;  
   server_name newsite.com;  
  
   root /var/www/newsite/public_html;  
   index index.html;  
  
   location ~ \.php$ {  
     include snippets/fastcgi-php.conf;  
     fastcgi_pass unix:/run/php/php8.3-fpm.sock;  
   }  
  
   location / {  
     try_files $uri $uri/ =404;  
   }  
}

Lorsque vous avez terminé, enregistrez et quittez le fichier.

Maintenant, exécutez la commande ci-dessous pour activer la configuration du bloc de serveur ‘newsite‘. Avec cette commande, vous allez créer un nouveau lien symbolique du fichier ‘/etc/nginx/sites-available/newsite‘ vers le répertoire ‘/etc/nginx/sites-enabled/‘.

sudo ln -s /etc/nginx/sites-available/newsite /etc/nginx/sites-enabled/

Après l’activation du bloc de serveur, exécutez la commande ‘nginx‘ ci-dessous pour vérifier votre syntaxe Nginx.

sudo nginx -t

S’il n’y a pas d’erreur, vous devriez obtenir la sortie ‘… syntax is ok / … test is successful‘.

Enfin, exécutez la commande ci-dessous pour redémarrer le serveur web Nginx et appliquer votre nouvelle configuration de bloc de serveur. Avec cela, votre configuration de bloc de serveur devrait être accessible depuis votre machine locale.

sudo systemctl restart nginx

create server block

Tester votre configuration de bloc de serveur

Pour vous assurer que votre configuration de bloc de serveur Nginx est réussie, vous allez accéder au nom de domaine de votre configuration de bloc de serveur depuis votre ordinateur local. Si vous utilisez le nom de domaine public, visitez directement le nom de domaine. Mais pour les utilisateurs de domaine local, éditez le fichier ‘hosts’ sur votre ordinateur local.

  • Pour les utilisateurs de Linux et MacOS, éditez le fichier ‘/etc/hosts‘ avec des privilèges root/administratifs.
  • Pour les utilisateurs de Windows, éditez le fichier ‘C:\Windows\System32\drivers\etc\hosts‘ en tant qu’administrateur.

Ajoutez votre adresse IP de serveur et le nom de domaine comme suit :

192.168.5.30 newsite.com

Enregistrez le fichier et quittez.

Maintenant, ouvrez votre navigateur web et visitez http://newsite.com/. Si votre configuration de bloc de serveur Nginx est réussie, vous devriez obtenir la page personnalisée ‘index.html’ que vous avez créée comme suit :

nginx server block

Conclusion

Félicitations ! Vous avez maintenant installé la pile LEMP (Linux, Nginx, MySQL/MariaDB et PHP) sur Ubuntu 24.04 “Noble Numbat”. Vous avez également sécurisé l’installation du serveur MariaDB et créé un bloc de serveur Nginx pour héberger plusieurs sites web.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.