Guide de déploiement LAMP et LEMP
Ce guide détaille comment installer et configurer les serveurs web LAMP et LEMP sur un système Debian. Ces deux piles technologiques sont des solutions d'hébergement web éprouvées et très matures.
Qu'est-ce que LAMP et LEMP ?
- LAMP signifie Linux / Apache / MySQL / PHP.
- LEMP signifie Linux / Engine-X (Nginx) / MySQL / PHP.
La seule différence réside dans le logiciel serveur web utilisé : Apache est complet, avec un écosystème de configuration mature ; Nginx est léger, performant et excelle particulièrement dans la gestion de la haute concurrence et des fichiers statiques.
Prérequis
- Un serveur avec Debian 13 (Trixie) déjà installé.
- Un utilisateur non root avec les permissions
sudo.
Déployer LAMP (Apache)
Étape 1 : Mettre à jour la liste des paquets
Commencez par vous assurer que la liste des paquets de votre système est à jour.
sudo apt update
sudo apt upgradeÉtape 2 : Installer Apache
Installez le serveur web Apache.
sudo apt install apache2Une fois l'installation terminée, vous pouvez vérifier qu'Apache fonctionne en accédant à l'adresse IP de votre serveur dans un navigateur (http://votre_ip_serveur). Si vous voyez la page de bienvenue par défaut d'Apache, l'installation a réussi.
Étape 3 : Installer MariaDB (MySQL)
MariaDB est un fork communautaire, entièrement compatible de MySQL, et c'est l'implémentation par défaut dans Debian.
sudo apt install mariadb-serverAprès l'installation, il est recommandé d'exécuter le script de sécurité pour supprimer les paramètres par défaut non sécurisés.
sudo mysql_secure_installationSuivez les invites pour définir un mot de passe root et répondre à une série de questions de sécurité.
Étape 4 : Installer PHP
Installez PHP ainsi que les modules nécessaires pour sa communication avec Apache et MySQL.
sudo apt install php libapache2-mod-php php-mysqlphp: Le paquet cœur de PHP.libapache2-mod-php: Permet à Apache de traiter les fichiers PHP.php-mysql: Permet à PHP de se connecter aux bases de données MySQL/MariaDB.
Étape 5 : Tester PHP
Pour vérifier qu'Apache peut traiter correctement les fichiers PHP, créons un simple fichier PHP.
sudo nano /var/www/html/info.phpCollez le contenu suivant dans l'éditeur :
<?php
phpinfo();
?>Enregistrez et fermez le fichier. Maintenant, accédez à http://votre_ip_serveur/info.php dans votre navigateur. Si vous voyez une page détaillant les informations PHP, alors la pile LAMP est déployée avec succès !
Important : Pour des raisons de sécurité, assurez-vous de supprimer ce fichier après les tests.
sudo rm /var/www/html/info.phpDéployer LEMP (Nginx)
Si vous préférez utiliser Nginx, suivez les étapes ci-dessous.
Étape 1 : Installer Nginx
sudo apt install nginxDe même, accédez à l'adresse IP de votre serveur (http://votre_ip_serveur). Si vous voyez la page de bienvenue de Nginx, l'installation est réussie.
Étape 2 : Installer MariaDB
Cette étape est identique à l'installation LAMP. Si déjà installé, pas besoin de répéter.
sudo apt install mariadb-server
sudo mysql_secure_installationÉtape 3 : Installer PHP-FPM
Contrairement à Apache, Nginx n'a pas de module intégré pour traiter PHP. Il a besoin d'un programme externe pour gérer les requêtes PHP, c'est PHP-FPM (FastCGI Process Manager).
sudo apt install php-fpm php-mysqlÉtape 4 : Configurer Nginx
C'est l'étape la plus cruciale du déploiement LEMP. Vous devez éditer le fichier de configuration du bloc serveur Nginx pour lui indiquer comment transmettre les requêtes de fichiers .php à PHP-FPM.
Ouvrez le fichier de configuration du bloc serveur par défaut :
sudo nano /etc/nginx/sites-available/defaultVous devez modifier le fichier pour qu'il ressemble à ce qui suit. Notez l'ajout de index.php et du bloc location ~ \.php$.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.php; # Ajouter index.php
server_name _;
location / {
try_files $uri $uri/ =404;
}
# C'est la partie clé à décommenter ou ajouter
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# Note : Le chemin peut varier selon la version de PHP
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
}Enregistrez et fermez le fichier. Ensuite, testez la configuration Nginx pour vérifier qu'il n'y a pas d'erreur de syntaxe.
sudo nginx -tSi le message affiche syntax is ok et test is successful, vous pouvez redémarrer Nginx en toute sécurité pour appliquer les modifications.
sudo systemctl restart nginxÉtape 5 : Tester PHP
Cette étape est similaire au test LAMP, créez un fichier info.php.
sudo nano /var/www/html/info.php<?php
phpinfo();
?>Maintenant, accédez à http://votre_ip_serveur/info.php. Si vous voyez la page d'informations PHP, la pile LEMP est déployée avec succès !
De même, assurez-vous de supprimer ce fichier après les tests.
sudo rm /var/www/html/info.phpProchaines étapes
Vous disposez maintenant d'un environnement serveur web entièrement fonctionnel. Ensuite, vous pouvez envisager :
- Configurer des hôtes virtuels (Virtual Hosts) pour votre site.
- Activer HTTPS pour votre site avec Let's Encrypt.
- Déployer votre propre application ou installer un CMS comme WordPress.