Que sont les piles LAMP et LEMP ?
LAMP et LEMP désignent les quatre logiciels qui servent un site web typique : Linux, un serveur web, une base de données et PHP. Le A de LAMP correspond à Apache, et le E de LEMP à Nginx (qui se prononce « engine-x », d'où le E). Dans les deux piles, la base de données est MySQL ou MariaDB et le langage de programmation est PHP.
Les applications PHP comme WordPress, WooCommerce et Joomla fonctionnent sur cette pile. WordPress.org recommande Apache ou Nginx comme serveur web : les deux sont donc une base solide. Votre choix ne décide pas si votre application fonctionne. Il change la façon d'écrire les réglages.
Comment fonctionne la pile ?
| Couche | LAMP | LEMP | Rôle |
|---|---|---|---|
| Système d'exploitation | Linux | Linux | La base sur laquelle tout repose |
| Serveur web | Apache | Nginx | Répond aux requêtes des navigateurs |
| Base de données | MySQL ou MariaDB | MySQL ou MariaDB | Stocke les articles, les utilisateurs et les commandes |
| Langage | PHP | PHP, via PHP-FPM | Construit la page |
Une requête traverse la pile ainsi :
- Le navigateur envoie une requête à votre domaine. Elle arrive sur le port 80 ou 443 de votre serveur.
- Le serveur web reçoit la requête. Si elle porte sur une image ou un fichier CSS, il sert lui-même le fichier.
- Si la requête porte sur un fichier PHP, le serveur web le confie à PHP, qui exécute le code.
- PHP interroge la base de données si besoin et construit la page. Le serveur web renvoie la page au navigateur.
Si une page ne s'ouvre pas, vérifiez les couches dans l'ordre : systemctl status nginx, systemctl status phpX.Y-fpm et systemctl status mariadb. X.Y désigne votre version de PHP (8.3 sur Ubuntu 24.04), et sur LAMP vous utilisez apache2 au lieu de nginx. Celui qui ne tourne pas est le point de départ du problème.
Quelle est la différence entre LAMP et LEMP ?
- Apache lit les fichiers
.htaccesset Nginx non. Sur Nginx, les règles vont dans la configuration du serveur. - Nginx n'exécute pas PHP en lui-même. Il transmet les requêtes à un service distinct appelé PHP-FPM. Apache peut exécuter PHP en lui-même ou via PHP-FPM.
- Les dossiers de configuration diffèrent. Sur Ubuntu, Apache utilise
/etc/apache2et Nginx utilise/etc/nginx. - L'utilisation de la mémoire dépend davantage du nombre de workers PHP-FPM et des réglages de la base de données que du choix du serveur web.
- Aucun n'est nettement supérieur. Les deux sont très répandus : le guide que vous suivez et vos habitudes décident donc.
MySQL ou MariaDB ?
MariaDB est une base de données open source issue d'une scission de MySQL, et leurs commandes et leurs clients sont en grande partie compatibles. La page officielle des exigences de WordPress accepte les deux : consultez-y les versions minimales actuelles. Sur Ubuntu, le paquet mariadb-server s'installe en une commande. Selon la documentation de MariaDB, le compte root utilise par défaut l'authentification unix_socket depuis la version 10.4. Sur le serveur, lancez simplement sudo mariadb. Aucun mot de passe root n'est nécessaire.
Installer LEMP sur Ubuntu
Ces étapes valent pour Ubuntu et Debian. Connectez-vous d'abord au serveur en SSH. Les exemples utilisent example.com comme nom de domaine : remplacez-le par le vôtre.
- Actualisez la liste des paquets :
sudo apt update - Installez les paquets :
sudo apt install nginx mariadb-server php-fpm php-mysql. Les versions installées sont celles du dépôt de paquets. - Sécurisez la base de données :
sudo mariadb-secure-installation. Répondez oui pour supprimer les utilisateurs anonymes, supprimer la base de test et interdire la connexion root à distance. - Créez le dossier du site :
sudo mkdir -p /var/www/example - Ouvrez un fichier avec
sudo nano /etc/nginx/sites-available/exampleet collez cette ligne :server { listen 80; server_name example.com www.example.com; root /var/www/example; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/phpX.Y-fpm.sock; } } ls /run/php/montre le vrai nom du socket. Écrivez-le à la place dephpX.Y-fpm.sock.- Activez le site :
sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/ - Testez et appliquez la configuration :
sudo nginx -tpuissudo systemctl reload nginx - Si vous utilisez ufw, ouvrez les ports 80 et 443 :
sudo ufw allow 80/tcpetsudo ufw allow 443/tcp. Assurez-vous que le port SSH (22) est ouvert.
Pour tester que PHP fonctionne, écrivez un fichier de test :
echo '<?php phpinfo();' | sudo tee /var/www/example/info.php
Si le domaine ne pointe pas encore vers le serveur, testez depuis l'intérieur du serveur avec curl -H 'Host: example.com' http://127.0.0.1/info.php. Dès que vous voyez que cela fonctionne, supprimez le fichier : sudo rm /var/www/example/info.php. Cette page montre les détails de votre serveur à tout le monde.
Une base de données pour votre application
Ouvrez le shell de la base avec sudo mariadb et créez une base et un utilisateur distincts pour chaque application. Choisissez vous-même un mot de passe fort :
CREATE DATABASE exampledb CHARACTER SET utf8mb4;
CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'a-strong-password';
GRANT ALL ON exampledb.* TO 'exampleuser'@'localhost';
Vous saisissez ces trois valeurs (base, utilisateur, mot de passe) sur l'écran d'installation de WordPress. Pour que les permaliens WordPress fonctionnent, remplacez =404 dans la ligne Nginx par /index.php?$args.
Ce qui change pour LAMP
Pour la pile Apache, vous installez les paquets ainsi :
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql
Vous définissez le site sous /etc/apache2/sites-available et l'activez avec sudo a2ensite example. Pour les permaliens, lancez sudo a2enmod rewrite et redémarrez Apache avec sudo systemctl restart apache2. Pour que les fichiers .htaccess soient pris en compte, vous devez définir AllowOverride All pour le dossier du site. Vous pouvez aussi exécuter Apache avec PHP-FPM, ce qui convient au modèle événementiel event. Les étapes de la base de données sont les mêmes que pour LEMP.
Après l'installation
- Ajoutez un certificat HTTPS. Let's Encrypt est gratuit, et Certbot fonctionne avec Nginx comme avec Apache.
- Définissez le propriétaire des dossiers dans lesquels le serveur web doit écrire. Sur Ubuntu et Debian, le serveur web tourne sous l'utilisateur
www-data:sudo chown -R www-data:www-data /var/www/example. - Installez régulièrement les mises à jour avec
sudo apt update && sudo apt upgrade. Après l'installation, les mises à jour du système d'exploitation et des logiciels relèvent de votre responsabilité. - Sauvegardez la base de données séparément avec
mariadb-dump. La sauvegarde quotidienne du serveur est incluse dans le prix, mais gardez malgré tout vous-même une copie supplémentaire des données importantes.
Si vous voulez la pile prête à l'emploi, commandez avec l'option LAMP ou LEMP de Seturack et elle s'installe toute seule. Si vous n'avez besoin que de WordPress, l'option VPS WordPress suffit : l'installation prend environ 4 à 5 minutes, et l'adresse et le mot de passe apparaissent dans le panneau.
Commentaires0
Pas encore de commentaire
Soyez le premier à partager votre avis.
Veuillez vous connecter ou vous inscrire pour laisser un commentaire.