phpMyAdmin est un outil de gestion de base de données open source et gratuit pour MySQL avec une interface Web. C'est une application basée sur PHP pour interagir facilement avec MySQL et MariaDB.
phpMyAdmin a été créé pour que les utilisateurs puissent interagir avec MariaDB via une interface Web.
Chez LinuxAPT, dans le cadre de nos services de gestion de serveur, nous aidons régulièrement nos clients à effectuer des requêtes phpMyAdmin associées.
Dans ce cadre, nous verrons comment installer phpMyAdmin avec Apache sur Debian 9.
En savoir plus sur phpMyAdmin ?
Avec l'outil phpMyAdmin, vous pouvez gérer les bases de données MySQL. En outre, vous pouvez également gérer les comptes et les privilèges des utilisateurs, importer et exporter des données et exécuter des instructions SQL et bien plus encore.
phpMyAdmin fournit un éditeur SQL avancé qui facilite la création et le test de requêtes SQL complexes.
Il vous permet également de gérer les bases de données, les utilisateurs, l'importation et l'exportation de données, les procédures stockées et les déclencheurs, d'exécuter et de modifier des requêtes, de rechercher une base de données à l'échelle mondiale et bien plus encore.
Comment installer phpMyAdmin sur Debian ?
Avant de poursuivre cette procédure d'installation, assurez-vous que les conditions suivantes sont remplies :
- Vous devez vous connecter au serveur Debian en tant que compte utilisateur non root avec les privilèges sudo.
- Assurez-vous que la pile LAMP (Linux, Apache, MySQL et PHP) est installée sur votre machine Debian.
1. Installez phpMyAdmin
Ici, nous allons installer phpMyAdmin à partir des dépôts Debian par défaut.
je. Pour commencer, vous devez mettre à jour l'index des packages et mettre à niveau les packages système vers les dernières versions en tapant :
$ sudo apt update
$ sudo apt upgrade
ii. Installez maintenant le package phpMyAdmin avec les dépendances requises en utilisant la commande ci-dessous :
$ sudo apt install phpmyadmin php-mbstring php-gettext
Vous serez invité à répondre à quelques options de configuration pour phpMyAdmin.
iii. Tout d'abord, il vous sera demandé de choisir le serveur Web. Sélectionnez Apache en cliquant sur le bouton OK.
iv. Ensuite, il vous sera demandé de configurer la base de données pour phpMyAdmin. Sélectionnez Oui et appuyez sur la touche Entrée pour continuer.
v. Entrez maintenant le mot de passe pour que phpMyAdmin s'enregistre auprès de la base de données, sélectionnez OK et appuyez sur Entrée.
vi. Encore une fois, confirmez le mot de passe en entrant le même mot de passe et appuyez sur le bouton OK.
vii. Vous devez maintenant activer l'extension php-mbstring en tapant la commande ci-dessous :
$ sudo phpenmod php-mbstring
viii. Ensuite, redémarrez Apache pour que vos modifications prennent effet :
$ sudo systemctl restart apache2
2. Créer un utilisateur MySQL et définir des privilèges
Avec les systèmes Debian, l'utilisateur root de MySQL est configuré pour utiliser la méthode d'authentification unix_socket par défaut. Ainsi, il authentifiera les utilisateurs via le fichier de socket Unix. Cela signifie que vous ne pouvez pas vous authentifier en tant que root en fournissant un mot de passe.
Il ne sera donc pas bon de changer la méthode d'authentification pour l'utilisateur root MySQL. Étant donné que phpMyAdmin nécessite que les utilisateurs s'authentifient avec un mot de passe, vous devrez donc créer un nouveau compte MySQL administratif afin d'accéder à l'interface. Cet utilisateur aura les mêmes privilèges que l'utilisateur root et sera configuré pour utiliser la méthode d'authentification mysql_native_password.
Maintenant, nous allons utiliser cet utilisateur pour nous connecter à phpMyAdmin et effectuer d'autres tâches administratives sur notre serveur MySQL ou MariaDB.
Vous pouvez vous connecter avec la commande ci-dessous :
$ sudo mysql
Ensuite, exécutez les commandes ci-dessous pour créer un nouvel utilisateur administratif avec un mot de passe fort et accordez les autorisations appropriées :
mysql> CREATE USER 'newadmin'@'localhost' IDENTIFIED BY 'STRONG-PASSWORD';
mysql> GRANT ALL PRIVILEGES ON . TO 'newadmin'@'localhost' WITH GRANT OPTION;
Comment accéder à phpMyAdmin ?
Vous pouvez accéder à l'interface phpMyAdmin en ouvrant votre navigateur Web et en tapant l'adresse IP publique ou le nom de domaine de votre serveur suivi de /phpmyadmin :
https://ip_address_or_your_domain/phpmyadmin
Connectez-vous à l'interface avec le nom d'utilisateur et le mot de passe administratifs que vous avez créés à l'étape précédente et appuyez sur le bouton Go.
Lorsque vous vous connectez, vous verrez l'interface utilisateur de phpMyAdmin.
Comment sécuriser phpMyAdmin ?
Pour ajouter une couche de sécurité supplémentaire, nous allons protéger le répertoire phpMyAdmin par mot de passe en configurant une authentification de base.
Dans un premier temps, nous allons créer un fichier de mot de passe avec l'utilisateur à l'aide de l'outil htpasswd fourni avec le package Apache. Nous allons stocker le fichier .htpasswd dans le répertoire /etc/phpmyadmin :
$ sudo htpasswd -c /etc/phpmyadmin/.htpasswd newadmin
Ici, newadmin est le nom d'utilisateur administratif que nous avons créé pour accéder à l'interface phpMyAdmin. Vous pouvez choisir n'importe quel nom d'utilisateur de votre choix. Une fois que vous avez exécuté la commande ci-dessus, il vous sera demandé d'entrer le mot de passe et de confirmer le mot de passe comme ci-dessous :
New password:
Re-type new password:
Adding password for user newadmin
Nous allons maintenant configurer Apache pour protéger par mot de passe le répertoire phpMyAdmin et utiliser le fichier .htpasswd. Pour cela ouvrez phpmyadmin.conf en tapant :
$ sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Effectuez les modifications comme suit :
<Directory /usr/share/phpmyadmin>
Options +FollowSymLinks +Multiviews +Indexes # change this line
DirectoryIndex index.php
# Add new line start
AllowOverride None
AuthType basic
AuthName "Authentication Required"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
# Add new line end
<IfModule mod_php5.c>
...
Après cela, enregistrez et fermez le fichier. Pour prendre effet, redémarrez le service Apache par type :
$ sudo systemctl restart apache2
Désormais, lorsque vous accéderez à votre sous-répertoire phpMyAdmin, vous serez invité à saisir le nom de compte et le mot de passe supplémentaires que vous venez de configurer :
https://ip_address_or_your_domain/phpmyadmin
Ici, vous entrerez les informations d'authentification de base qui vous mèneront à la page de connexion phpMyAdmin où vous devrez entrer vos identifiants de connexion d'administrateur MySQL.