phpMyAdmin · 7 min read · Nov 06, 2025
Installer et sécuriser phpMyAdmin sur CentOS 8

phpMyAdmin est un outil gratuit et open-source pour gérer les serveurs MySQL et MariaDB via une interface web. Avec phpMyAdmin, vous pouvez créer et gérer des bases de données et des utilisateurs, exécuter des instructions SQL, importer et exporter des données, et effectuer des activités de base de données telles que la création, la suppression, des tables, des colonnes, des index, des permissions et bien plus encore. phpMyAdmin est l’un des outils d’administration les plus populaires et les plus largement utilisés, en particulier pour les services d’hébergement web.
Fonctionnalités
Fournit une interface web simple et conviviale.
Importer des données à partir de CSV et SQL.
Prend en charge la plupart des fonctionnalités MySQL, y compris la création, la copie, la suppression, le renommage, la suppression et la modification de bases de données, de tables, de champs et d’index.
Vous permet d’exporter des données vers divers formats tels que PDF, CSV, SQL, XML et bien plus encore.
Gestion de plusieurs serveurs.
Création de requêtes complexes à l’aide de Query-by-example (QBE).
Dans ce tutoriel, nous allons vous montrer comment installer et sécuriser phpMyAdmin sur un serveur CentOS 8.
Exigences
Un serveur exécutant CentOS 8.
Un mot de passe root est configuré sur le serveur.
Installer le serveur LAMP
Tout d’abord, vous devrez installer Apache, MariaDB, PHP et d’autres bibliothèques PHP sur votre serveur. Vous pouvez tous les installer avec la commande suivante :
dnf install httpd mariadb-server php php-pdo php-pecl-zip php-json php-common php-fpm php-mbstring php-cli php-mysqlnd php-json php-mbstring wget unzipUne fois tous les paquets installés, démarrez le service Apache et MariaDB et activez-les pour qu’ils démarrent après le redémarrage du système avec la commande suivante :
systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadbUne fois que vous avez terminé, vous pouvez passer à l’étape suivante.
Configurer MariaDB
Par défaut, MariaDB n’est pas sécurisé. Vous devrez donc le sécuriser d’abord. Vous pouvez le faire en exécutant le script mysql_secure_installation :
mysql_secure_installationRépondez à toutes les questions comme indiqué ci-dessous :
Set root password? [Y/n] Y
New password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Une fois que vous avez terminé, vous devriez voir la sortie suivante :
... Succès !
Nettoyage...
Tout est fait ! Si vous avez terminé toutes les étapes ci-dessus, votre installation de MariaDB
devrait maintenant être sécurisée.
Merci d'utiliser MariaDB !
À ce stade, votre installation de MariaDB est sécurisée.
Installer phpMyAdmin
Par défaut, phpMyAdmin n’est pas disponible dans le dépôt par défaut de CentOS 8. Vous devrez donc télécharger la dernière version de phpMyAdmin depuis leur site officiel. Vous pouvez le télécharger avec la commande suivante :
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.zipUne fois téléchargé, décompressez le fichier téléchargé avec la commande suivante :
unzip phpMyAdmin-4.9.2-all-languages.zipEnsuite, déplacez le contenu extrait vers le répertoire /usr/share comme indiqué ci-dessous :
mv phpMyAdmin-4.9.2-all-languages /usr/share/phpmyadminEnsuite, changez le répertoire en /usr/share/phpmyadmin et renommez le fichier config.sample.inc.php :
cd /usr/share/phpmyadmin
mv config.sample.inc.php config.inc.phpEnsuite, ouvrez le fichier avec votre éditeur de texte préféré comme indiqué ci-dessous :
nano config.inc.phpChangez la ligne suivante :
$cfg['blowfish_secret'] = 'votre-mot-de-passe-secret';
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, importez le create_tables.sql avec la commande suivante :
mysql < /usr/share/phpmyadmin/sql/create_tables.sql -u root -pFournissez votre mot de passe root lorsque vous y êtes invité pour importer la table.
Ensuite, créez un répertoire tmp pour phpmyadmin et donnez les permissions appropriées :
mkdir /usr/share/phpmyadmin/tmp
chown -R apache:apache /usr/share/phpmyadmin
chmod 777 /usr/share/phpmyadmin/tmpConfigurer Apache pour phpMyAdmin
Ensuite, vous devrez créer un fichier de configuration de virtual host Apache pour phpMyAdmin. Vous pouvez le créer avec la commande suivante :
nano /etc/httpd/conf.d/phpmyadmin.confAjoutez les lignes suivantes :
Alias /phpmyadmin /usr/share/phpmyadmin
AddDefaultCharset UTF-8
# Apache 2.4
Require all granted
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
# Apache 2.4
Require all granted
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service Apache avec la commande suivante :
systemctl restart httpdVous pouvez vérifier l’état d’Apache avec la commande suivante :
systemctl status httpdVous devriez voir la sortie suivante :
? httpd.service - Le serveur HTTP Apache
Chargé : chargé (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/httpd.service.d
??php-fpm.conf
Actif: actif (en cours d'exécution) depuis mer. 2019-12-18 01:07:52 EST; 6s ago
Docs: man:httpd.service(8)
Main PID: 5636 (httpd)
Statut: "Démarré, écoute sur : port 80"
Tâches: 213 (limite : 25044)
Mémoire: 28.7M
CGroup: /system.slice/httpd.service
??5636 /usr/sbin/httpd -DFOREGROUND
??5639 /usr/sbin/httpd -DFOREGROUND
??5640 /usr/sbin/httpd -DFOREGROUND
??5641 /usr/sbin/httpd -DFOREGROUND
??5642 /usr/sbin/httpd -DFOREGROUND
Dec 18 01:07:52 centos8 systemd[1]: Stopped Le serveur HTTP Apache.
Dec 18 01:07:52 centos8 systemd[1]: Starting Le serveur HTTP Apache...
Dec 18 01:07:52 centos8 httpd[5636]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::200:d0>
Dec 18 01:07:52 centos8 httpd[5636]: Serveur configuré, écoute sur : port 80
Dec 18 01:07:52 centos8 systemd[1]: Démarré Le serveur HTTP Apache.
Configurer SELinux et le pare-feu
Par défaut, SELinux est activé dans CentOS 8. Vous devrez donc configurer SELinux pour que phpMyAdmin fonctionne correctement.
Tout d’abord, installez le paquet policycoreutils-python-utils pour gérer un environnement SELinux avec la commande suivante :
dnf install policycoreutils-python-utilsEnsuite, activez l’accès au répertoire /usr/share/phpmyadmin avec la commande suivante :
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/phpmyadmin/'
semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?"Maintenant, parcourez tous les fichiers de votre répertoire phpmyadmin en exécutant la commande suivante :
restorecon -Rv '/usr/share/phpmyadmin/'Ensuite, vous devrez créer une règle de pare-feu pour autoriser le service HTTP depuis des réseaux externes. Vous pouvez l’autoriser avec la commande suivante :
firewall-cmd --permanent --add-service=http
firewall-cmd --reloadphpMyAdmin est maintenant installé et configuré. Il est maintenant temps de vérifier s’il fonctionne ou non.
Ouvrez votre navigateur web et tapez l’URL http://your-server-ip/phpmyadmin. Vous serez redirigé vers la page suivante :

Sécuriser phpMyAdmin
À ce stade, l’instance phpMyAdmin fonctionne correctement. Cependant, sécuriser votre instance phpMyAdmin contre le monde extérieur est une tâche importante pour vous. Dans cette section, nous allons vous montrer comment sécuriser votre instance phpMyAdmin.
Autoriser phpMyAdmin depuis une IP spécifique
Tout d’abord, vous devrez configurer votre phpMyAdmin pour qu’il soit accessible uniquement depuis l’adresse IP de votre connexion à domicile.
Vous pouvez le configurer en éditant le fichier /etc/httpd/conf.d/phpmyadmin.conf :
nano /etc/httpd/conf.d/phpmyadmin.confTrouvez les lignes suivantes :
Require all granted
Et remplacez-les par ce qui suit :
Require ip votre-adresse-ip-de-connexion-domicile
Require ip ::1
Enregistrez et fermez le fichier lorsque vous avez terminé.
Configurer une couche supplémentaire d’authentification
Il est judicieux de protéger par mot de passe votre répertoire phpmyadmin en configurant une authentification de base.
Pour ce faire, créez un nouveau fichier d’authentification à l’aide de l’outil htpasswd comme indiqué ci-dessous :
mkdir /etc/phpmyadmin
htpasswd -c /etc/phpmyadmin/.htpasswd adminOn vous demandera de fournir votre mot de passe admin comme indiqué ci-dessous :
New password:
Re-type new password:
Adding password for user admin
Ensuite, vous devrez configurer Apache pour utiliser le fichier .htpasswd. Vous pouvez le faire en éditant le fichier /etc/httpd/conf.d/phpmyadmin.conf.
nano /etc/httpd/conf.d/phpmyadmin.confAjoutez les lignes suivantes sous la ligne “AddDefaultCharset UTF-8” :
Options +FollowSymLinks +Multiviews +Indexes
AllowOverride None
AuthType basic
AuthName "Authentification requise"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Enregistrez le fichier et redémarrez le service Apache pour que les modifications prennent effet :
systemctl restart httpdAccéder à phpMyAdmin
Maintenant, votre instance phpMyAdmin est sécurisée avec une couche de sécurité supplémentaire. Ouvrez votre navigateur web et tapez l’URL http://your-server-ip/phpmyadmin. On vous demandera d’entrer les identifiants de connexion de l’utilisateur que vous avez précédemment créé comme indiqué ci-dessous :

Fournissez votre nom d’utilisateur et votre mot de passe admin, puis cliquez sur le bouton OK. Vous serez redirigé vers la page de connexion de phpMyAdmin :

Maintenant, fournissez vos identifiants de connexion d’utilisateur administratif MySQL et cliquez sur le bouton Go. Vous devriez voir la page suivante :

Conclusion
Félicitations ! vous avez réussi à installer et sécuriser phpMyAdmin sur le serveur CentOS 8. Vous pouvez maintenant créer des bases de données, des utilisateurs, des tables et les gérer depuis l’interface web. N’hésitez pas à me poser des questions si vous en avez.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.