Table des matières
Gestionnaire PhPMyAdmin
PhpMyAdmin est une interface Web permettant de gérer les bases de données MySql ou MariaDB.
Installation et configuration
Prérequis
PhpMyAdmin tourne sur un serveur disposant d'un service HTTP (Apache, Nginx), d'un SGBD MySql ou MariaDB et de l'extension PHP.
Installer PhpMyAdmin sur Debian 10 et suivants
Depuis Debian 10, PhpMyAdmin n'a plus de source disponible.
On est donc tenu de l'installer à la main.
La démarche détaillée avec vérification des sources est décrite ici (en anglais). Les principales étapes sont reprises ci-dessous.
Prérequis
On doit avoir installé les extensions suivantes : php-mysqli, php-xml.
Récupérer le code PHP
Il peut être nécessaire d'installer wget : apt install wget
cd /tmp wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
Dézipper l'archive en la recopiant dans le dossier des pages web du serveur
On commence par créer le dossier de destination, puis on dézippe.
mkdir /var/www/html/phpmyadmin tar xvf phpMyAdmin-latest-all-languages.tar.gz --strip-components=1 -C /var/www/html/phpmyadmin
Modifier le fichier de configuration
#on copie le fichier d'exemple cp /var/www/html/phpmyadmin/config.sample.inc.php /var/www/html/phpmyadmin/config.inc.php #on l'édite nano /var/www/html/phpmyadmin/config.inc.php
Dans le fichier, on indiquera un mot de passe pour la gestion des cookies
$cfg['blowfish_secret'] = '<mettre_votre_mot_de_passe>';
Modifier les permissions du fichier pour en limiter l'accès
chmod 660 /var/www/html/phpmyadmin/config.inc.php
Modifier les habilitations du dossier pour le rendre accessible à Apache
chown –R www-data:www-data /var/www/html/phpmyadmin
Redémarrer le service apache2
systemctl restart Apache2 #ou service apache2 restart
Reconfigurer PhpMyAdmin pour Apache2
Si on a oublié de configurer PhpMyAdmin pour Apache, on peut relancer la configuration par :
# dpkg-reconfigure phpmyadmin
Accès sur PhpMyAdmin
Si on souhaite donner un accès à un compte pour PhpMyAdmin, on donnera les droits via Mysql/MariaDB selon les besoins :
GRANT <privileges> ON <base>.* TO <compte>@localhost identified by '<mot_de_passe_compte>'
Exemples
#compte avec tous les droits sur une base GRANT ALL PRIVILEGES ON bddGestion.* TO adminBG@localhost identified by 'mdp@DM1N'; #compte avec les droits sur les données de la base GRANT SELECT, INSERT, UPDATE, DELETE ON bddGestion TO usrBG@localhost identified by 'mpU5Rbg';
Se connecter à PhpMyAdmin
Dans le navigateur, aller sur http://ip_serveur/phpmyadmin
Ancienne version
Installation et accès
Pour installer et utiliser PhpMyAdmin, on suivra la procédure suivante :
- Installer le paquetage phpmyadmin
apt-get install phpmyadmin
- Au cours de l'installation :
Par défaut, on ne peut pas se connecter en utilisant le compte root.
En mesurant le risque de sécurité, on peut le faire en donnant tous les privilèges à root@localhost identified by '<mot_de_passe>'- Choisir la configuration automatique du serveur Apache (barre d’espace pour cocher la case)
- Implanter la base de données nécessaire à la gestion de PhpMyAdmin (en indiquant le mot de passe de MySQL)
- Configurer un mot de passe spécifique pour PhpMyAdmin (il permettra ensuite de se connecter à l'interface avec des droits restreints)
- Vérifier le fonctionnement par le navigateur : http://<IPServeurBDD>/phpmyadmin (avec le compte phpmyadmin et le mot de passe renseigné).
Configurer PhpMyadmin en multi-sites
Finalité
Il est possible d'installer un serveur PhpMyAdmin unique pour gérer un ensemble de bases de données dispersées sur de multiples serveurs.
L'intérêt est de pouvoir avoir un point d'entrée unique, mais aussi de ne pas installer PhpMyadmin (et le serveur Web + Php associés) sur un serveur uniquement dédié à la gestion des données.
Préparation des serveurs MySql
Pour permettre la gestion à distance d'un serveur MySql, les réglages suivant doivent être appliqués sur chaque serveur MySQL.
1 Autoriser la connexion MySql depuis le serveur PhpMyAdmin
Dans le fichier /etc/mysql/my.cnf (ou parfois my.ini ou pour mariadb), modifier la valeur bind-address :
bind-address=<ip_du_serveur_phpmyadmin> #par défaut, la valeur est limitée à 127.0.0.1 ou localhost
On redémarrera alors le service Mysql :
service mysql-server restart
2 Créer un compte habilité à se connecter depuis le serveur PhpMyadmin
Pour des raisons de sécurité, on évitera la connexion distante avec le compte root. Il faut donc créer un compte dédié à la gestion de MySql, autorisé à se connecter via le serveur PhpMyAdmin.
// se connecter à mysql mysql -u <compte_d_admin> -p<mot_de_passe> // création du compte d'administration distante mysql> grant <privileges> on <bases_concernées>.<tables> to <nom_compte>@<ip_serveur_phpmyadmin> identified by '<motPasse>'; //exemple mysql> grant all privileges on BaseGestion to gestAdmin@localhost identified by 'mpADMgest'
Configuration de PhpMyAdmin
Le paramétrage se passe dans le fichier de configuration de PhpMyAdmin /etc/phpmyadmin/config.inc.php :
#les lignes suivantes sont à ajouter pour chaque serveur MySQL $i++; $cfg['Servers'][$i]['verbose']='<nom_serveur_dans_la_liste>'; $cfg['Servers'][$i]['connect_type']='tcp'; $cfg['Servers'][$i]['extension']='mysqli'; $cfg['Servers'][$i]['auth_type']='cookie'; $cfg['Servers'][$i]['user']=''; $cfg['Servers'][$i]['password']=''; $cfg['Servers'][$i]['AllowNoPassword']=true; $cfg['Servers'][$i]['host']='<ip_ou_fqdn_serveur_mysql>';
On redémarrera le service web (exemple pour apache) :
service apache2 restart
//ou
systemctl restart apache2