Comment installer phpMyAdmin sur Debian 13 ?
Dans ce tutoriel, nous allons apprendre à installer phpMyAdmin sur un serveur Debian 13 (Linux) avec un serveur Apache. Cette procédure décrit l’installation de phpMyAdmin étape par étape
phpMyAdmin est une application web open source développée en PHP, très utilisée pour l’administration des systèmes de gestion de base de données (SGBD) MySQL et MariaDB. Elle offre une alternative visuelle aux outils disponibles en ligne de ligne de commande, ce qui la rend plus accessible si l’on ne connait pas toutes les instructions SQL. Autrement dit, PhpMyAdmin permet d’administrer les bases de données directement depuis un navigateur web.
Voici un aperçu des fonctionnalités de phpMyAdmin :
- Gestion des structures : création, modification et suppression de bases de données, de tables, de vues, de champs et d’index via des formulaires graphiques.
- Manipulation des données : insertion, édition et suppression d’enregistrements (lignes) dans les tables d’une base.
- Exécution SQL : interface en ligne pour saisir et exécuter des requêtes SQL.
- Gestion des utilisateurs et privilèges : administration des comptes utilisateurs MySQL/MariaDB et de leurs droits d’accès à une ou plusieurs bases.
- Import et export : prise en charge de différents formats (SQL, CSV, XML, JSON, PDF, etc.) pour la sauvegarde ou la restauration de données (même si la ligne de commande sera à privilégier pour les bases importantes)
- Outils graphiques : visualisation des relations entre les tables et génération automatique du schéma de la base de données grâce au mode “Concepteur”.
Vous l’aurez compris : phpMyAdmin est une porte d’entrée vers vos bases de données, donc l’installation doit être sécurisée. La moindre des choses, c’est de restreindre l’accès à l’interface web de phpMyAdmin (à une adresse IP source spécifique, par exemple).

Avant de commencer, vous devez disposer d’une stack LAMP (Linux, Apache, MariaDB/MySQL, PHP) prête à l’emploi.
Version originale de l’article : 16 février 2022
Sommaire
Installation de phpMyAdmin sur Linux
L’installation de PhpMyAdmin ne s’effectue pas comme un paquet classique, mais plutôt sur le même principe qu’une application web. Cela permet d’installer la version de son choix, notamment la plus récente.
Télécharger phpMyAdmin
Tout d’abord, ouvrez un terminal sur votre serveur. Vous devez commencer par télécharger les sources à partir du site officiel via la commande . Ici, l’archive téléchargée est stockée dans le dossier .
cd /tmp
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
La dernière version de PhpMyAdmin sera automatiquement récupérée, à savoir la version 5.2.3 à l’heure où j’écris ces lignes. Vous obtenez en sortie le fichier suivant : .
Ensuite, nous décompressons l’archive tar.gz dans le répertoire courant :
tar -xvzf phpMyAdmin-latest-all-languages.tar.gz

Nous n’avons plus besoin de l’archive téléchargée, donc nous allons la supprimer :
Désormais, nous allons déplacer le dossier complet () vers , au sein d’un sous-dossier nommé . Ce qui donne la commande suivante :
sudo mv phpMyAdmin-5.2.3-all-languages/ /usr/share/phpmyadmin
Ensuite, nous allons créer un dossier distinct pour les fichiers temporaires. Il sera déclaré par la suite dans la configuration de phpMyAdmin.
sudo mkdir -p /var/lib/phpmyadmin/tmp
Puis, nous attribuons les droits sur le dossier racine à l’utilisateur associé à Apache ( sur Debian) afin qu’il soit propriétaire.
sudo chown -R www-data:www-data /var/lib/phpmyadmin/
Configuration initiale de phpMyAdmin
phpMyAdmin est fourni avec un template pour le fichier de configuration, alors nous allons créer une copie de ce template pour ne pas partir de zéro :
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Afin d’utiliser le mode d’authentification basé sur les cookies, nous devons générer une chaîne aléatoire qui est un secret à insérer dans le fichier de configuration. Il doit s’agir d’une chaîne de 32 caractères. Un cookie permanent stockera l’identifiant sur votre machine tandis que le mot de passe est géré par un cookie temporaire.
Nous allons générer cette valeur avec l’outil (vous pouvez faire autrement). Installez ce paquet :
Puis, nous générons une chaîne aléatoire avec la commande suivante :
Copiez la valeur retournée en sortie. Nous allons l’insérer dans le fichier de configuration de phpMyAdmin. Ouvrez le fichier avec nano (ou un autre éditeur de texte) :
nano /usr/share/phpmyadmin/config.inc.php
Collez la valeur au niveau de l’option , comme ceci :
$cfg['blowfish_secret'] = 'deJ8reLGV1cXPyd32454/um/EGWRef/14Jo7tg112WM=';

Ensuite, il faut définir un utilisateur et un mot de passe que phpMyAdmin va utiliser pour se connecter à sa base de données et stocker ses données. Pour cela, il y a deux options à décommenter et modifier pour éviter d’avoir les valeurs par défaut :
$cfg['Servers'][$i]['controluser'] = 'pma2022'; $cfg['Servers'][$i]['controlpass'] = 'MotDePasseComplexe';
Décommentez toutes les autres variables correspondantes à des options, comme sur l’image ci-dessous.

Enfin, ajoutez cette directive pour déclarer le répertoire temporaire (créé précédemment) :
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

Sauvegardez et fermez le fichier.
Créer la base de données phpMyAdmin
Nous allons alimenter la base de données de phpMyAdmin grâce au script SQL prêt à l’emploi et livré avec l’application. Exécutez la commande ci-dessous pour importer ce fichier SQL. Vous serez invité à saisir le mot de passe root de votre instance MySQL / MariaDB.
mysql -u root -p < /usr/share/phpmyadmin/sql/create_tables.sql
Ensuite, nous allons nous connecter à l’instance MySQL/MariaDB pour donner les droits sur cette base de données à l’utilisateur :
Une fois connecté avec le prompt à l’écran, exécutez les requêtes SQL suivantes :
CREATE USER 'pma2022'@'localhost' IDENTIFIED BY 'MotdePasseComplexe'; GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma2022'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
Les informations (utilisateur et mot de passe) doivent correspondre aux valeurs définies dans le fichier de configuration.
Création d’un admin pour phpMyAdmin
Nous allons profiter d’être connectés à la console MySQL pour créer un nouveau compte administrateur qui aura la main sur l’ensemble des bases de données (d’où l’instruction SQL : ). Nous utiliserons ce compte pour nous connecter à l’interface web de phpMyAdmin.
Voici les requêtes SQL à exécuter pour créer un utilisateur nommé avec le mot de passe . Vous pouvez adapter ces valeurs, en particulier le mot de passe.
CREATE USER 'pma-admin'@'localhost' IDENTIFIED BY 'MotdePasseComplexe2'; GRANT ALL PRIVILEGES ON *.* TO 'pma-admin'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; EXIT;
Voilà, il n’est plus nécessaire de manipuler la console MySQL.
Intégration de phpMyAdmin à Apache
PhpMyAdmin est installé et configuré, mais il nous manque une étape cruciale : la publication de l’application via Apache afin de pouvoir y accéder avec un navigateur.
Nous allons créer un fichier de configuration propre à phpMyAdmin :
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Voici le contenu à intégrer au fichier de configuration (peut-être adapté). Cette configuration considère que vous utilisez PHP-FPM 8.4, et non le module PHP pour Apache (moins performant).
# alias à personnaliser pour accéder à phpMyAdmin (évitez le nom de l'app)
Alias /pma /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
# Autorise uniquement le localhost et une adresse IP source spécifique
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
Require ip 1.2.3.4/32
</RequireAny>
# Configuration du gestionnaire PHP-FPM
<FilesMatch ".php$">
SetHandler "proxy:unix:/run/php/php8.4-fpm.sock|fcgi://localhost"
</FilesMatch>
# Déclarer la variable auprès de PHP-FPM
SetEnv PHP_ADMIN_VALUE "upload_tmp_dir = /var/lib/phpmyadmin/tmp"
</Directory>
# Empêcher l'accès direct aux fichiers internes phpMyAdmin
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Require all denied
</Directory>
Quelques explications :
- Le fait d’indiquer , cela signifie qu’il faudra préciser à la fin de l’URL pour accéder à phpMyAdmin. Vous pouvez mettre autre chose, mais je vous recommande de ne pas mettre car c’est scanné par les robots. Cela est d’autant plus important si votre phpMyAdmin est accessible publiquement.
- Nous bloquons l’accès web aux dossiers , et .
- Nous autorisons seulement l’accès à PhpMyAdmin à partir de la machine locale et de la machine ayant l’adresse IP . Nous pourrions définir un réseau local comme . Il me semble essentiel de restreindre l’accès au maximum pour éviter que n’importe qui soit en mesure d’accéder à l’interface web de phpMyAdmin. Pour retirer cette restriction, supprimez le bloc .
Enregistrez le fichier et activez ce fichier de config (qui s’appuie sur le VirtualHost par défaut, mais on pourrait créer un vhost distinct) :
sudo a2enconf phpmyadmin.conf
Validez la configuration, et si c’est OK, rechargez Apache :
sudo apachectl configtest sudo systemctl reload apache2
Le moment est venu de tester l’accès à phpMyAdmin !
Première connexion à phpMyAdmin
Ouvrez un navigateur et accédez à l’adresse suivante :
http://<ip-de-votre-serveur>/pma
Je vous rappelle que la valeur dépend de la valeur associée à l’option dans le fichier de configuration Apache. Vous arrivez sur une page de connexion, vous devez vous connecter avec le compte créé précédemment.

Ensuite, l’interface de phpMyAdmin apparaît avec un accès sur toutes les bases de données existantes et la possibilité de créer une nouvelle BDD, etc…. Il ne reste plus qu’à profiter de l’outil.

Pour finir, je vous invite à supprimer le dossier nommé car il n’a pas d’intérêt. Au cas où, nous laisserons la directive dans la config d’Apache pour refuser l’accès à ce dossier.
rm /usr/share/phpmyadmin/setup/ -Rf
PhpMyAdmin est en place sur votre serveur Debian !
Conclusion
Pour aller plus loin dans la sécurisation de PhpMyAdmin, vous pouvez regarder la documentation officielle : Sécurisation PhpMyAdmin.
Si votre instance phpMyAdmin est accessible publiquement, je vous recommande de le basculer en HTTPS et d’ajouter l’authentification Apache “htpasswd” en complément pour avoir une authentification supplémentaire avant de pouvoir accéder à la page de connexion phpMyAdmin.
FAQ – phpMyAdmin
Puis-je utiliser phpMyAdmin avec Nginx au lieu d’Apache ?
Oui, tout à fait, l’essentiel étant d’avoir un serveur web capable de traiter des scripts PHP. Vous devrez configurer un bloc dans Nginx pour pointer vers le dossier d’installation et configurer PHP-FPM pour traiter les fichiers .
Comment mettre à jour phpMyAdmin manuellement ?
Téléchargez la nouvelle archive depuis le site officiel et écrasez le contenu du répertoire . Mais attention, sauvegardez au préalable votre fichier , car il contient la configuration propre à votre environnement. Quand c’est fait, remettez votre fichier de configuration.
Qu’est-ce que le message “La phrase de passe secrète (blowfish_secret) est trop courte” ?
Si vous avez ce message, cela signifie que la chaîne définie pour dans le fichier fait moins de 32 caractères. Vous devez remplacer cette valeur. Un message similaire s’affiche si la valeur est trop longue.
Puis-je gérer plusieurs serveurs MySQL / MariaDB avec une seule installation phpMyAdmin ?
Oui, vous pouvez ajouter d’autres serveurs dans le fichier en incrémentant le tableau . À la suite de la configuration du premier serveur, vous devez incrémenter la variable avec et enchaîner avec les variables comme celle-ci : . Veille également à autoriser les connexions distantes sur votre serveur MySQL / MariaDB, sinon phpMyAdmin ne pourra pas s’y connecter.
Comment forcer l’utilisation de HTTPS pour phpMyAdmin ?
La directive ne doit plus être déclarée dans le fichier . Cette directive est obsolète depuis la version 4.6.0. Pour forcer le HTTPS, vous devez ajuster la configuration du serveur web, notamment pour rediriger les requêtes HTTP vers HTTPS.
L’utilisateur root ne peut pas se connecter à phpMyAdmin, est-ce normal ?
Oui, par défaut sur les installations récentes de MariaDB, l’authentification root via mot de passe est désactivée (plugin ). C’est pour cette raison, mais aussi par sécurité, que nous avons créé un utilisateur administrateur spécifique (revoir la procédure dans ce tutoriel si besoin).