Comment installer PhpMyAdmin avec Apache dans les systèmes RHEL

Dans cet article, nous vous guiderons pas à pas dans le processus d’installation de la dernière version de PhpMyAdmin avec le serveur web Apache sur des distributions basées sur RHEL telles que CentOS Stream, Fedora, Rocky Linux, et Alma Linux.

Qu’est-ce que PhpMyAdmin?

PhpMyAdmin est un outil web de gestion de bases de données populaire et puissant, et avoir la dernière version vous garantit d’avoir accès aux fonctionnalités les plus à jour et aux améliorations de sécurité. À la fin de ce guide, vous serez en mesure de gérer vos bases de données MySQL ou MariaDB facilement en utilisant PhpMyAdmin.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Accès à un système RHEL, CentOS Stream, Fedora, Rocky Linux ou AlmaLinux.
  • Assurez-vous que vous pouvez vous connecter en tant qu’utilisateur root ou que vous disposez de privilèges sudo pour installer des logiciels.
  • Une pile LAMP existante, qui comprend Apache, MySQL/MariaDB et PHP. Si vous n’avez pas LAMP, vous pouvez suivre ces étapes pour le configurer.

Étape 1 : Mettre à jour le système

Avant d’installer un logiciel, il est crucial de s’assurer que votre système est à jour en exécutant la commande dnf.

sudo dnf update
Update Linux System

Cela mettra à jour tous les paquets de votre système aux dernières versions.

Étape 2 : Installer le serveur Web Apache

PhpMyAdmin est un outil basé sur le Web, et pour l’utiliser, vous devez installer le serveur Web Apache à l’aide de la commande suivante.

sudo dnf install httpd
Install Apache in Linux

Une fois installé, démarrez le service Apache et activez-le pour qu’il démarre au démarrage.

sudo systemctl start httpd
sudo systemctl enable httpd

Étape 3 : Installer MariaDB ou MySQL

Vous aurez également besoin d’un serveur de base de données. Vous pouvez choisir d’installer soit MariaDB soit MySQL, mais nous allons choisir MariaDB dans cet exemple.

sudo dnf install mariadb-server
Install MariaDB in Linux

Une fois installé, démarrez le service MariaDB et activez-le pour qu’il démarre au démarrage.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Ensuite, sécurisez votre installation MariaDB en exécutant le script, qui vous demandera d’entrer un mot de passe pour l’utilisateur root, d’interdire les connexions root à distance et de supprimer les utilisateurs anonymes. Il supprimera également la base de données de test, qui par défaut peut être consultée par les utilisateurs anonymes.

sudo mysql_secure_installation
Secure MariaDB in Linux

Étape 4: Installer PHP

PhpMyAdmin est construit avec PHP, nous devons donc installer PHP et certaines extensions requises en utilisant la commande suivante.

sudo dnf install php php-mysqlnd php-json php-mbstring
Install PHP in Linux

Étape 5: Installer PhpMyAdmin

Maintenant, procédons à l’installation de PhpMyAdmin sur notre système Linux en naviguant jusqu’au répertoire racine du serveur web /var/www/html comme indiqué.

cd /var/www/html

Ensuite, téléchargez la dernière version de PhpMyAdmin en utilisant la commande wget suivante comme indiqué.

sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

Une fois téléchargé, extrayez l’archive téléchargée et renommez le répertoire pour plus de commodité.

sudo tar -xvzf phpMyAdmin-latest-all-languages.tar.gz
sudo mv phpMyAdmin-*/ phpmyadmin

Créez un fichier de configuration pour PhpMyAdmin.

sudo cp /var/www/html/phpmyadmin/config.sample.inc.php /var/www/html/phpmyadmin/config.inc.php

Modifiez le fichier de configuration:

sudo nano /var/www/html/phpmyadmin/config.inc.php

Trouvez la ligne suivante et définissez votre propre secret_blowfish:

$cfg['blowfish_secret'] = 'your_secret';

Enregistrez et quittez le fichier.

Étape 6: Ouvrir le port Apache dans firewalld

Par défaut, Apache utilise couramment les ports 80 et 443 pour HTTP et HTTPS, respectivement. Pour ouvrir les ports Apache et autoriser l’accès à PhpMyAdmin sur votre serveur, exécutez :

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload

Ces commandes ajoutent une règle pour autoriser le trafic entrant sur le port spécifié et rechargent le pare-feu pour appliquer les modifications.

Étape7 : Redémarrer le serveur Web Apache

Enfin, redémarrez Apache pour appliquer les modifications :

sudo systemctl restart httpd

Étape8 : Accéder à PhpMyAdmin

Vous pouvez maintenant accéder à PhpMyAdmin via votre navigateur Web en vous rendant à l’adresse IP de votre serveur ou au nom de domaine suivi de « /phpmyadmin » dans l’URL :

http://your_server_ip/phpmyadmin

Connectez-vous en utilisant vos identifiants MySQL ou MariaDB.

PHPMyAdmin Login
PHPMyAdmin Dashboard

Étape9 : Permettre l’accès externe dans PhpMyAdmin

Ouvrez le fichier de configuration PhpMyAdmin.

sudo vi /etc/httpd/conf/httpd.conf

Recherchez la section <Directory "/var/www/html"> ou la section où votre PhpMyAdmin est configuré et mettez à jour la directive Require pour autoriser toutes les adresses IP à accéder à PhpMyAdmin.

<Directory "/var/www/html/phpmyadmin">
    ...
    Require all granted
    ...
</Directory>

La configuration ci-dessus permet l’accès depuis n’importe quel adresse IP, mais si vous souhaitez restreindre l’accès à des adresses IP spécifiques, remplacez Require all granted par Require ip votre_ip.

Redémarrez Apache pour appliquer les modifications.

sudo systemctl restart httpd

Maintenant, vous devriez être en mesure d’accéder à PhpMyAdmin depuis l’extérieur en utilisant l’adresse IP de votre serveur ou votre domaine.

http://your_server_ip/phpmyadmin

N’oubliez pas que l’ouverture de l’accès à PhpMyAdmin depuis l’extérieur peut présenter des risques de sécurité. Assurez-vous d’avoir un mécanisme de vérification d’identité solide en place et envisagez d’utiliser HTTPS pour une communication chiffrée. De plus, restreignez l’accès uniquement à des adresses IP fiables si possible ou sécurisez l’URL de connexion PhpMyAdmin.

Changement de l’URL de connexion PhpMyAdmin

L’URL de connexion par défaut pour phpMyAdmin est prévisible et souvent ciblée par des personnes malveillantes tentant d’exploiter des vulnérabilités. Changer l’URL de connexion ajoute une couche de sécurité supplémentaire, ce qui rend plus difficile l’accès non autorisé à votre interface de gestion de base de données.

Pour ce faire, créez un fichier de configuration /etc/httpd/conf.d/phpMyAdmin.conf.

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

Ensuite, ajoutez la configuration suivante.

#Alias /phpMyAdmin /var/www/html/phpmyadmin
Alias /my /var/www/html/phpmyadmin

<Directory /var/www/htm/lphpmyadmin>
    AddDefaultCharset UTF-8

    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
            # Additional IP or hostname-based access control can be added here
        </RequireAny>
    </IfModule>

    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from All
        Allow from 127.0.0.1
        Allow from ::1
        # Additional IP or hostname-based access control can be added here
    </IfModule>

</Directory>

Remplacez /my par l’URL de connexion personnalisée souhaitée. Enregistrez les modifications et quittez l’éditeur de texte.

Après avoir apporté des modifications aux fichiers de configuration, redémarrez Apache pour appliquer les modifications :

systemctl restart httpd

Ouvrez votre navigateur web et allez à l’URL de connexion du nouveau phpMyAdmin.

http://yourdomain.com/my/
phpMyAdmin Login URL

Configuration d’un SSL pour phpMyAdmin

Sécuriser la communication entre le serveur web Apache et phpMyAdmin est crucial pour protéger des informations sensibles telles que les identifiants de connexion et le contenu de la base de données. Une manière efficace d’y parvenir est de configurer SSL (Secure Socket Layer) pour phpMyAdmin sur un serveur web Apache.

Pour ce faire, installez d’abord le module mod_ssl sur votre serveur.

yum install httpd mod_ssl openssl

Ensuite, créez un répertoire pour stocker le certificat et générez un certificat SSL auto-signé et une clé privée comme indiqué.

mkdir /etc/httpd/ssl 
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
Create SSL Certificate for PhpMyAdmin

Après avoir créé le certificat SSL et la clé, ouvrez le fichier de configuration SSL Apache.

vi /etc/httpd/conf.d/ssl.conf

Ensuite, ajoutez les lignes suivantes au fichier de configuration.

SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

Enregistrez les modifications et redémarrez le serveur web Apache.

systemctl restart httpd

Maintenant, ouvrez le fichier de configuration phpMyAdmin.

vi /var/www/html/phpmyadmin/config.inc.php

Ajoutez les lignes suivantes pour forcer l’utilisation de SSL pour phpMyAdmin.

$cfg['ForceSSL'] = true;

Enregistrez les modifications et quittez l’éditeur de texte.

Enfin, ouvrez votre navigateur web et allez à l’URL suivante pour accéder à phpMyAdmin via une connexion SSL sécurisée.

https://yourdomain.com/my/

S’il vous plaît, soyez conscient que le message indiquant une connexion non sécurisée est uniquement dû à l’utilisation d’un certificat auto-signé. Pour procéder, cliquez sur « Avancé » et acceptez l’exception de sécurité.

SSL Warning
Secure phpMyAdmin Login
Conclusion

Félicitations ! Vous avez réussi à installer PhpMyAdmin avec Apache sur votre système RHEL, CentOS Stream, Rocky Linux ou AlmaLinux. Cet outil basé sur le web simplifie la gestion de vos bases de données, rendant les tâches comme la création de bases de données, les requêtes et la gestion des données un jeu d’enfant.

Source:
https://www.tecmint.com/install-phpmyadmin-rhel-centos-fedora-linux/