8. Installation de la pile LEMP (Linux, Nginx, MariaDB, PHP)
8.1. Introduction à la pile LEMP
Section intitulée « 8.1. Introduction à la pile LEMP »La pile LEMP est un ensemble de logiciels qui fonctionnent ensemble pour héberger des sites web dynamiques et des applications web. LEMP signifie :
- Linux (Système d’exploitation)
- Engine-x (Serveur web Nginx, prononcé “Engine-X”)
- MariaDB (Serveur de base de données)
- PHP (Langage de programmation)
8.2. Installation et configuration de Nginx
Section intitulée « 8.2. Installation et configuration de Nginx »Nginx est un serveur web haute performance et proxy inverse qui servira le contenu de votre site web aux visiteurs.
8.2.1. Ajout du dépôt Nginx
Section intitulée « 8.2.1. Ajout du dépôt Nginx »Commencez par ajouter le dépôt pour la dernière version de Nginx :
# Ajouter le dépôt Nginxsudo add-apt-repository ppa:ondrej/nginx
# Mettre à jour les listes de paquetssudo apt update8.2.2. Installation de Nginx et des modules utiles
Section intitulée « 8.2.2. Installation de Nginx et des modules utiles »Installez Nginx avec quelques modules utiles :
# Installer Nginx avec des modules supplémentairessudo apt install nginx libnginx-mod-http-cache-purge libnginx-mod-http-headers-more-filter libnginx-mod-http-brotli-filter libnginx-mod-http-brotli-staticCes modules fournissent :
- cache-purge : Permet de purger le contenu du cache de Nginx
- headers-more-filter : Offre plus de contrôle sur les en-têtes HTTP
- brotli-filter/static : Active la compression Brotli pour de meilleures performances que gzip
8.2.3. Dépannage des problèmes IPv6
Section intitulée « 8.2.3. Dépannage des problèmes IPv6 »Si Nginx ne parvient pas à démarrer avec une erreur liée à IPv6 :
# Vérifier l'état de Nginxsudo systemctl status nginxVous pourriez voir une erreur comme :
nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)Cela se produit lorsqu’IPv6 est désactivé mais que Nginx est configuré pour écouter sur des adresses IPv6. Pour corriger cela :
# Modifier la configuration du site par défautsudo vim /etc/nginx/sites-available/defaultTrouvez et commentez la directive d’écoute IPv6 :
# Modifier cette ligne :listen [::]:80 default_server;
# En ceci :#listen [::]:80 default_server;8.2.4. Démarrage et vérification de Nginx
Section intitulée « 8.2.4. Démarrage et vérification de Nginx »Après avoir effectué les modifications, testez la configuration et démarrez Nginx :
# Tester la configuration de Nginxsudo nginx -t
# Démarrer Nginxsudo systemctl start nginx
# Vérifier l'état de Nginxsudo systemctl status nginx
# S'assurer que Nginx démarre au bootsudo systemctl is-enabled nginx8.2.5. Test du site web par défaut
Section intitulée « 8.2.5. Test du site web par défaut »Vérifiez que Nginx sert correctement le contenu :
# Tester avec curl (remplacez par l'adresse IP de votre serveur)curl -i http://your_server_ip
# Afficher le contenu de la page par défautcat /var/www/html/index.nginx-debian.html8.2.6. Vérification de la version de Nginx
Section intitulée « 8.2.6. Vérification de la version de Nginx »Vérifiez la version de Nginx installée :
# Vérifier la version de Nginxnginx -v8.3. Installation et configuration de MariaDB
Section intitulée « 8.3. Installation et configuration de MariaDB »MariaDB est un serveur de base de données robuste et open source qui stockera vos données WordPress.
8.3.1. Installation de MariaDB
Section intitulée « 8.3.1. Installation de MariaDB »# Installer le serveur MariaDBsudo apt install mariadb-server8.3.2. Vérification de l’installation de MariaDB
Section intitulée « 8.3.2. Vérification de l’installation de MariaDB »# Vérifier l'état de MariaDBsudo systemctl status mariadb
# S'assurer que MariaDB démarre au bootsudo systemctl is-enabled mariadb8.3.3. Sécurisation de MariaDB
Section intitulée « 8.3.3. Sécurisation de MariaDB »Exécutez le script de sécurité pour définir un mot de passe root et supprimer les paramètres par défaut non sécurisés :
# Exécuter le script d'installation sécurisée de MariaDBsudo mysql_secure_installationSuivez les invites pour :
- Définir un mot de passe root
- Supprimer les utilisateurs anonymes
- Interdire la connexion root à distance
- Supprimer la base de données de test
- Recharger les tables de privilèges
8.4. Installation et configuration de PHP
Section intitulée « 8.4. Installation et configuration de PHP »PHP est le langage de programmation sur lequel WordPress est construit. Nous allons installer PHP-FPM (FastCGI Process Manager) pour de meilleures performances avec Nginx.
8.4.1. Ajout du dépôt PHP
Section intitulée « 8.4.1. Ajout du dépôt PHP »# Ajouter le dépôt PHPsudo add-apt-repository ppa:ondrej/php
# Mettre à jour les listes de paquetssudo apt update8.4.2. Installation de PHP et des extensions requises
Section intitulée « 8.4.2. Installation de PHP et des extensions requises »Installez PHP 8.3 avec les extensions nécessaires pour WordPress :
# Installer PHP 8.3 avec les extensionssudo apt install php8.3-fpm php8.3-gd php8.3-mbstring php8.3-mysql php8.3-xml php8.3-xmlrpc php8.3-opcache php8.3-cli php8.3-zip php8.3-soap php8.3-intl php8.3-bcmath php8.3-curl php8.3-imagick php8.3-ssh2Ces extensions fournissent :
- fpm : FastCGI Process Manager pour l’intégration avec Nginx
- gd : Bibliothèque de traitement d’images
- mbstring : Gestion des chaînes multi-octets
- mysql : Connectivité avec la base de données MariaDB/MySQL
- xml/xmlrpc : Capacités de traitement XML
- opcache : Améliore les performances de PHP en mettant en cache le bytecode précompilé des scripts
- Et d’autres extensions essentielles pour le fonctionnement de WordPress
8.4.3. Vérification de l’installation de PHP
Section intitulée « 8.4.3. Vérification de l’installation de PHP »# Vérifier l'état de PHP-FPMsudo systemctl status php8.3-fpm
# S'assurer que PHP-FPM démarre au bootsudo systemctl is-enabled php8.3-fpm
# Vérifier la version de PHPphp -v8.5. Configuration de Nginx pour fonctionner avec PHP
Section intitulée « 8.5. Configuration de Nginx pour fonctionner avec PHP »Pour faire fonctionner Nginx avec PHP, vous devez le configurer pour transmettre les requêtes PHP à PHP-FPM :
# Modifier la configuration du site par défaut de Nginxsudo vim /etc/nginx/sites-available/defaultTrouvez la section pour le traitement PHP (généralement commentée) et mettez-la à jour :
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;}Testez et rechargez Nginx :
# Tester la configurationsudo nginx -t
# Recharger Nginxsudo systemctl reload nginx8.6. Test du traitement PHP
Section intitulée « 8.6. Test du traitement PHP »Créez un fichier PHP de test pour vérifier que PHP fonctionne avec Nginx :
# Créer un fichier d'information PHPecho "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.phpVisitez http://your_server_ip/info.php dans votre navigateur. Vous devriez voir la page d’information PHP.
Votre pile LEMP est maintenant installée et configurée, fournissant une base solide pour l’installation de WordPress dans les sections suivantes.