Installer un serveur LAMP (Apache, MariaDB, PHP) sur Rocky Linux

Linux, Apache, MariaDB et PHP : la pile web la plus répandue s'installe en une dizaine de commandes sur une distribution de la famille Red Hat. Voici la méthode pour Rocky Linux 10, maintenant que CentOS 7 n'est plus maintenu.

Schéma : le poste 192.168.10.50 passe firewalld (http, https) vers Apache httpd sur srv-web01, puis PHP 8.3 qui joint MariaDB en local
Illustration schématique — ne reproduit aucune interface réelle.

Un serveur LAMP réunit quatre briques : Linux pour le système, Apache pour servir les pages, MariaDB (ou MySQL) pour la base de données et PHP pour exécuter le code de l'application. C'est la base de la plupart des CMS en PHP, de WordPress à GLPI. Sur une distribution de la famille Red Hat, chaque brique est un paquet du dépôt officiel AppStream, si bien qu'aucun dépôt tiers n'est nécessaire pour une installation standard.

Testez la procédure sur une machine virtuelle de lab, et prenez un instantané avant d'installer quoi que ce soit sur un serveur de production.

CentOS 7 est en fin de vie : quelle version choisir

Les anciens guides « LAMP sur CentOS 7 » visent un système qui n'est plus maintenu : selon le projet CentOS, CentOS Linux 7 a atteint sa fin de vie le 30 juin 2024. Il ne reçoit plus de correctifs de sécurité, ce qui est rédhibitoire pour un serveur web exposé.

Les successeurs naturels sont les reconstructions de Red Hat Enterprise Linux. Cette page utilise Rocky Linux 10, publiée le 11 juin 2025, dont le support général court jusqu'au 31 mai 2030 et le support de sécurité jusqu'au 31 mai 2035 selon la page des versions de Rocky Linux. Les commandes sont celles de la documentation Rocky Linux ; elles s'appliquent en principe aux autres distributions de la même famille, mais vérifiez la documentation de la vôtre.

Ce qui change par rapport à CentOS 7 :

Le serveur du lab

HôteRôleInterfaceAdresse
srv-web01Rocky Linux 10, serveur LAMPens18192.168.10.20
postenavigateur de test—192.168.10.50

Prérequis : une installation minimale de Rocky Linux à jour, un compte avec sudo, une adresse IP fixe et le pare-feu firewalld actif.

Étape 1 : Apache httpd

Sur les distributions Red Hat, le paquet Apache s'appelle httpd et le service aussi.

sudo dnf install httpd
sudo systemctl enable --now httpd
sudo systemctl status httpd

La documentation Rocky décrit l'arborescence : la configuration globale est dans /etc/httpd/conf/httpd.conf, les fichiers complémentaires dans /etc/httpd/conf.d/ et /etc/httpd/conf.modules.d/, les journaux dans /var/log/httpd et le site par défaut dans /var/www/html.

Ouvrez ensuite HTTP et HTTPS dans le pare-feu, de façon permanente, puis rechargez-le :

sudo firewall-cmd --add-service=http --add-service=https --permanent
sudo firewall-cmd --reload

Depuis le poste, http://192.168.10.20/ doit maintenant répondre.

Étape 2 : MariaDB

sudo dnf install mariadb-server
sudo systemctl enable --now mariadb
sudo mariadb-secure-installation

mariadb-secure-installation pose une série de questions pour durcir l'installation : authentification de root par unix_socket ou mot de passe, suppression des comptes anonymes, interdiction de la connexion distante de root, suppression de la base test. Le script lui-même demande de lire chaque étape attentivement.

La configuration se trouve dans /etc/my.cnf et /etc/my.cnf.d/. Pour connaître la version de MariaDB proposée par votre dépôt avant d'installer, utilisez dnf info mariadb-server ; ne vous fiez pas à la version citée dans un ancien tutoriel.

N'ouvrez pas le port de la base dans le pare-feu si l'application tourne sur le même serveur : Apache et PHP s'y connectent en local. La documentation Rocky ne montre l'ouverture du service mysql dans firewalld que pour un accès depuis d'autres machines.

Étape 3 : PHP

Vérifiez d'abord quelle version le dépôt fournit, puis installez PHP et les extensions dont votre application a besoin. Le guide WordPress de Rocky Linux ajoute php-mysqlnd pour la connexion à la base :

dnf whatprovides php
sudo dnf install php php-cli php-mysqlnd php-gd php-xml php-mbstring
sudo systemctl restart httpd
php -v

Dans l'exemple de la documentation Rocky, Rocky Linux 10 fournit PHP 8.3, une branche que le projet PHP liste parmi les versions encore supportées. Si une application exige une autre version, la solution passe par un dépôt tiers ; voyez la page sur les dépôts EPEL et Remi.

Tester PHP avec phpinfo

La documentation Rocky propose un fichier de test qui appelle la fonction phpinfo(). Créez /var/www/html/info.php :

<?php
phpinfo();
?>

Ouvrez http://192.168.10.20/info.php dans le navigateur. Le tableau récapitule la configuration de PHP : version, extensions chargées, chemins. Ensuite :

sudo rm /var/www/html/info.php

Vérifier la configuration avant chaque rechargement

apachectl configtest analyse les fichiers de configuration et répond Syntax Ok ou signale l'erreur, selon la documentation d'Apache. Prenez l'habitude de le lancer avant chaque systemctl reload httpd.

sudo apachectl configtest
sudo systemctl reload httpd

Les problèmes les plus courants

SymptômeCause probable
la page ne s'affiche pas depuis le posteservices http/https absents de firewalld
PHP n'est pas interprétéhttpd non redémarré après l'installation de PHP
l'application ne peut pas écrire dans son dossiercontexte SELinux du dossier
« Access denied » vers la basecompte MariaDB ou mot de passe de l'application

Pour le cas SELinux, le guide WordPress de Rocky Linux applique le type httpd_sys_rw_content_t au dossier où l'application doit écrire, avec chcon. N'appliquez ce type qu'aux dossiers qui en ont besoin, jamais à tout /var/www, et ne désactivez pas SELinux pour contourner le problème.

Et ensuite

Si vous hésitez entre Apache et Nginx, la variante serveur LEMP avec Nginx suit la même logique avec PHP-FPM. Pour partir d'une machine propre, le guide d'installation de Rocky Linux couvre le système de base. Les autres tutoriels sont rangés dans les tutoriels Serveurs Linux, et l'ensemble du site sur la page d'accueil des tutoriels d'administration système.

Questions fréquentes

Que signifie LAMP ?

C'est l'acronyme de Linux, Apache, MySQL/MariaDB et PHP. Il désigne la pile logicielle qui sert la plupart des applications web écrites en PHP. Avec Nginx à la place d'Apache, on parle de LEMP.

Peut-on encore installer un serveur LAMP sur CentOS 7 ?

Ce n'est pas raisonnable : CentOS Linux 7 est en fin de vie depuis le 30 juin 2024 et ne reçoit plus de correctifs. Pour un serveur web, partez sur une distribution supportée comme Rocky Linux 10.

Faut-il utiliser MariaDB ou MySQL ?

Sur Rocky Linux, la documentation retient MariaDB, la version fournie avec la distribution. Les applications PHP courantes se connectent à l'un comme à l'autre via php-mysqlnd. Suivez la recommandation de votre application si elle en fait une.

Comment savoir quelle version de PHP est installée ?

La commande php -v affiche la version du moteur, et dnf whatprovides php indique celle que propose le dépôt avant installation. La page phpinfo donne le même renseignement, avec la liste des extensions chargées.

Pourquoi supprimer le fichier info.php ?

Il affiche la configuration complète de PHP et du serveur : chemins, extensions, variables. La documentation Rocky Linux demande explicitement de ne pas le laisser sur le serveur, car ces informations facilitent une attaque.