Comment installer un serveur LAMP sur RHEL, CentOS, Rocky & AlmaLinux

A LAMP stack is a collection of four different software (Linux, Apache, MySQL, and PHP) that programmers or web developers use to create and deploy websites or applications.

Ce tutoriel se concentrera sur la manière d’installer et de configurer la célèbre pile LAMP avec PhpMyAdmin sur la dernière version de RHEL et les distributions basées sur RHEL telles que CentOS, Oracle Linux, Rocky et AlmaLinux.

Besoins

Selon la distribution utilisée, utilisez les liens suivants pour effectuer une installation système minimale, en utilisant une adresse IP statique pour la configuration réseau.

Étape 1 : Installer le serveur Web Apache

1. Après avoir effectué une installation de système minimale et configuré l’interface réseau de votre serveur avec une Adresse IP Statique, procédez à l’installation du package binaire du service Apache (httpd) fourni par les dépôts officiels en utilisant la commande yum.

# yum install httpd
Install Apache on Linux

2. Une fois l’installation de Apache terminée, utilisez les commandes suivantes pour gérer le démon Apache car RHEL et CentOS ont tous deux migré leurs scripts init de SysV à SystemdPourquoi init a-t-il été remplacé par Systemd dans Linux?.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
Manage Apache in Linux

3. À l’étape suivante, assurez-vous d’autoriser l’accès à Apache en ouvrant les ports 80 et 443 sur le pare-feu à l’aide de firewall-cmd, qui est la commande par défaut pour gérer Firewalld via le démon.

# firewall-cmd --add-service=http
# firewall-cmd --add-service=https
# systemctl restart firewalld
NOTE: Make notice that using this rule will lose its effect after a system reboot or firewalld service restart because it opens on-fly rules, which are not applied permanently.

Pour appliquer des règles iptables cohérentes sur le pare-feu en utilisant l’option --permanent et redémarrez le service firewalld pour prendre effet.

# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# systemctl restart firewalld
Open Apache Ports in Firewalld

Certains commandes importantes Firewalld pour gérer le pare-feu sont présentées ci-dessous :

# firewall-cmd --state
# firewall-cmd --list-all
# firewall-cmd --list-interfaces
# firewall-cmd --get-service
# firewall-cmd --query-service service_name
# firewall-cmd --add-port=80/tcp

4. Pour vérifier la fonctionnalité Apache, ouvrez un navigateur distant et tapez l’adresse IP de votre serveur en utilisant le protocole HTTP dans l’URL, et une page par défaut devrait apparaître comme dans l’image ci-dessous.

http://server_IP
Verify Apache in Linux

5. Pour l’instant, le chemin DocumentRoot Apache est défini sur le chemin système /var/www/html, qui par défaut ne fournit aucun fichier d’index. Si vous souhaitez voir une liste de répertoires de votre chemin DocumentRoot.

Ouvrez le fichier de configuration welcome Apache et définissez l’instruction Indexes de à + sur la directive LocationMatch, en utilisant l’image ci-dessous comme exemple.

# vi /etc/httpd/conf.d/welcome.conf
Configure Apache Welcome Page

6. Après avoir apporté des modifications, fermez le fichier, redémarrez le service Apache pour refléter les changements et rechargez votre page de navigateur pour voir le résultat final.

# systemctl restart httpd
Apache Directory Listing

Étape 2 : Installer le support PHP pour Apache

7. Avant d’installer le support de langage dynamique PHP pour Apache, obtenez une liste complète des modules et extensions PHP disponibles à l’aide de la commande suivante.

# yum search php
List PHP Modules

8. Selon le type d’applications que vous souhaitez utiliser, installez les modules PHP requis à partir de la liste ci-dessus, mais pour un support de base MySQL/MariaDB dans PHP et PhpMyAdmin vous devez installer les modules suivants.

# yum install php php-mysql php-pdo php-gd php-mbstring
Install PHP Modules

9. Pour obtenir une liste complète d’informations sur PHP depuis votre navigateur, créez un fichier info.php dans le répertoire de documents Apache en utilisant la commande suivante, redémarrez le service httpd et dirigez votre navigateur vers l’adresse http://server_IP/info.php.

# echo "<?php phpinfo(); ?>" > /var/www/html/info.php
# systemctl restart httpd
List PHP Information

10. Si vous rencontrez une erreur concernant la date et le fuseau horaire PHP, ouvrez le fichier de configuration php.ini, recherchez et décommentez l’instruction date.timezone, ajoutez votre emplacement physique, puis redémarrez le démon Apache.

# vi /etc/php.ini

Localisez et modifiez la ligne date.timezone pour ressembler à ceci, en utilisant la liste des Fuseaux Horaires Supportés par PHP.

date.timezone = Continent/City
Set PHP Timezone

Étape 3 : Installer et Configurer la Base de Données MariaDB

11. La distribution RHEL a basculé de MySQL vers MariaDB pour son système de gestion de base de données par défaut. Pour installer la base de données MariaDB, utilisez la commande suivante.

# yum install mariadb-server mariadb
Install MariaDB on Linux

12. Après l’installation du package MariaDB, démarrez le démon de la base de données et utilisez le script mysql_secure_installation pour sécuriser la base de données (définir un mot de passe root, désactiver la connexion à distance depuis le compte root, supprimer la base de données de test et supprimer les utilisateurs anonymes).

# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb
# mysql_secure_installation
Manage MariaDB Service
Secure MariaDB in Linux

13. Pour tester la fonctionnalité de la base de données, connectez-vous à MariaDB en utilisant son compte root et quittez en utilisant une instruction quit.

mysql -u root -p
MariaDB > show databases;
MariaDB > quit
Connect MariaDB to Linux

Étape 4 : Installer PhpMyAdmin pour gérer MySQL

14. Par défaut, les dépôts officiels ne fournissent aucun paquet binaire pour l’interface Web de PhpMyAdmin. Si vous êtes mal à l’aise avec l’utilisation de la ligne de commande MySQL pour gérer votre base de données, vous pouvez installer le paquet PhpMyAdmin en activant le dépôt remi en utilisant la commande suivante.

# yum install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm  [On CentOS/RHEL 8]
# yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm  [On CentOS/RHEL 8]
# yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm  [On CentOS/RHEL 7]

Après avoir activé le dépôt remi, installez PhpMyAdmin.

# yum install phpmyadmin
Install PhpMyAdmin on Linux

15. Configurez ensuite PhpMyAdmin pour autoriser les connexions à partir d’hôtes distants en éditant le fichier phpmyadmin.conf, situé dans le répertoire conf.d d’Apache, en commentant les lignes suivantes.

# vi /etc/httpd/conf.d/phpMyAdmin.conf

Ajoutez la ligne « Require all granted » sous la ligne « Require local« , comme indiqué.

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8
   Require local
   Require all granted
</Directory>
Allow Remote PhpMyAdmin Access

16. Pour pouvoir vous connecter à l’interface Web de PhpMyAdmin, redémarrez le service Web Apache et dirigez votre navigateur vers l’adresse URL.

# systemctl restart httpd

http://server_IP/phpmyadmin/
PhpMyAdmin Dashboard

Étape 5 : Activer le système LAMP au niveau du système dans Linux

17. Si vous avez besoin que les services MariaDB et Apache soient démarrés automatiquement après le redémarrage, exécutez les commandes suivantes pour les activer au niveau du système.

# systemctl enable mariadb
# systemctl enable httpd

Voilà tout ce qu’il faut pour une installation de base de LAMP sur les distributions basées sur RHEL. Les prochains articles de la série liée à la pile LAMP aborderont la création d’hôtes virtuels, la génération de certificats et de clés SSL, ainsi que l’ajout de prise en charge des transactions SSL pour le serveur Apache HTTP.

Source:
https://www.tecmint.com/install-lamp-server-linux/