Pour travailler avec des bases de données via l'interface Web, il existe un éditeur Web phpMyAdmin. Cet outil se connecte à une base de données MySQL/MariaDB et affiche les bases de données existantes, vous permet d'en créer de nouvelles, d'éditer des données dans des tables. En général, tout est identique à ce qui peut être fait dans la console mysql, mais beaucoup plus pratique et plus clair, surtout lorsque l'on travaille fréquemment avec des données. Pensez à installer phpMyAdmin sur Ubuntu 20.04 avec LAMP préinstallé.
Nous effectuons tous les réglages à partir de l'utilisateur root, si vous utilisez un utilisateur régulier, ajoutez avant la commande sudo.
1. Installez les composants nécessaires et l'éditeur de base de données lui-même
apt install php-mbstring
apt install phpmyadmin
Au cours du processus d'installation, l'utilisateur sera invité à sélectionner le serveur Web pour lequel l'éditeur doit être configuré.
- [*]apache2
- []lighttpd
Dans notre cas, un serveur avec LAMP pré-installé et nous choisissons apache2.
Ensuite, il sera proposé de créer une base de données pour l'éditeur de base de données lui-même, où seront stockés les paramètres utilisateur de l'éditeur et d'autres données nécessaires à son fonctionnement. Ici, nous sélectionnons l'option Oui et dans la fenêtre suivante, il vous sera demandé de trouver un mot de passe pour l'utilisateur phpmyadmin. Nous entrons le mot de passe et le confirmons dans la fenêtre suivante pour éviter les erreurs de saisie.
Redémarrez le service Web pour appliquer notre configuration d'installation:
/etc/init.d/apache2 restart
/etc/init.d/php7.4-fpm restart
2. Paramètres de base
Suivons le lien http://server-ip/phpmyadmin pour vérifier le travail, nous pouvons entrer le login et le mot de passe de n'importe quelle base de données, par exemple, la nouvelle créée, le login phpmyadmin et le mot de passe que nous avons défini. Parfois, pour plus de commodité, il est nécessaire de travailler avec plusieurs bases de données à la fois, afin de les afficher sous un seul utilisateur, nous devons en créer une et déléguer les droits de l'utilisateur root.
mysql -u root -p
CREATE USER 'alldbuser'@'localhost' IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON . TO 'alldbuser'@'localhost';
FLUSH PRIVILEGES;
Désormais, lors de l'autorisation sous l'utilisateur alldbuser, toutes les bases de données créées sur ce serveur sont affichées.
3. Configuration de la sécurité
Afin de protéger l'éditeur de base de données contre les devinettes de mots de passe et les vulnérabilités potentielles, ajoutons une autorisation au niveau sans serveur.
nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Ajoutez un utilisateur et indiquez-lui un mot de passe:
htpasswd -c /etc/phpmyadmin/.htpasswd webdb-user
Pour appliquer les paramètres au niveau du serveur Web, vous devez modifier les paramètres globaux dans le fichier /etc/apache2/apache2.conf, la valeur AllowOverride était All, le bloc de paramètres devrait ressembler à ceci:
AllowOverride All
Require all granted
Redémarrez le service, en fonction de votre serveur Web:
/etc/init.d/apache2 restart
/etc/init.d/php7.4-fpm restart
Désormais, lorsque vous cliquerez sur le lien http://server-ip/phpmyadmin, une fenêtre apparaîtra pour saisir votre identifiant et votre mot de passe. Dans notre cas, le login sera webdb-user. Vous pouvez également ajouter une configuration afin que la saisie du mot de passe à partir d'adresses IP inconnues ne soit même pas demandée et que l'utilisateur reçoive un message Interdit, ajoutez une ligne au fichier et spécifiez vos adresses IP statiques :
nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Allow from 77.88.99.11 22.33.44.55
La configuration terminée, nous vous recommandons fortement de saisir les mots de passe uniquement en utilisant le protocole https avec un certificat SSL, afin d'éviter l'interception de données.