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
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
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 nginxVous devriez voir que le service Nginx est ‘enabled‘ et que l’état actuel est ‘active (running)‘.

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
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 :

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
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 mariadbLe service MariaDB est ‘enabled‘ avec l’état actuel ‘active (running)‘.

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-installationMaintenant, 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
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-fpmComme vous pouvez le voir ci-dessous, le PHP-FPM est ‘active (running)‘ et ‘enabled‘ au démarrage du système :

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 phpDans 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/defaultDé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 -tSi vous avez une syntaxe Nginx correcte, vous devriez obtenir une confirmation comme suit :

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 nginxAvec 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.phpEnfin, 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.

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

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

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.htmlMaintenant, 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/newsiteEnsuite, 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/newsiteInsé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 -tS’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
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.comEnregistrez 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 :

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.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.