Installer phpMyAdmin avec la pile LAMP sur Ubuntu 20.04 LTS
PhpMyAdmin est un outil de gestion de bases de données en ligne gratuit et open source écrit en langage de programmation PHP. En utilisant phpMyAdmin, les administrateurs de bases de données peuvent facilement gérer un ou plusieurs serveurs de bases de données via un navigateur web. Cela peut être utile pour ceux qui ne sont pas à l'aise avec l'invite MySQL. phpMyAdmin permet aux administrateurs de bases de données d'effectuer toutes sortes de tâches de gestion de bases de données telles que créer, éditer, renommer, supprimer des bases de données, importer et exporter des bases de données, créer des tables, des champs et des colonnes, exécuter des commandes SQL et bien d'autres. Dans ce tutoriel, nous allons installer phpMyAdmin avec la pile LAMP sur le système d'exploitation serveur Ubuntu 20.04 LTS.
Installer phpMyAdmin avec la pile LAMP sur Ubuntu 20.04 LTS
Pour installer phpMyAdmin sur un serveur Ubuntu 20.04 LTS, vous devez disposer d'une pile LAMP fonctionnelle. Si vous n'avez pas encore installé la pile LAMP, référez-vous au guide suivant :
- Installer le stack Apache, MySQL, PHP (LAMP) sur Ubuntu 20.04 LTS
Une fois que vous avez configuré la pile LAMP, activez le dépôt 'universe', s'il n'est pas déjà activé.
$ sudo add-apt-repository universe$ sudo apt updateMaintenant, installez phpMyAdmin et toutes les autres dépendances requises sur Ubuntu 20.04 en utilisant les commandes :
$ sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curlEnsuite, sélectionnez le serveur web qui doit être configuré automatiquement pour exécuter phpMyAdmin. Choisissez le serveur web avec les flèches HAUT/BAS et appuyez sur la touche ESPACE. Une fois que vous avez choisi le serveur web, vous verrez un symbole * (étoile) devant celui-ci. Appuyez sur la touche TAB pour sélectionner OK et appuyez de nouveau sur la touche ENTRÉE pour continuer.
PhpMyAdmin nécessite qu'une base de données soit installée et configurée avant de pouvoir être utilisée. Vous pouvez le faire avec la commande dbconfig.
Choisissez Oui pour configurer la base de données pour phpmyadmin avec dbconfig-common :
Vous devez fournir un mot de passe pour phpmyadmin afin de vous enregistrer auprès du serveur de base de données MySQL. Si aucun mot de passe n'est donné, un mot de passe aléatoire sera généré.
Entrez un mot de passe fort et appuyez sur ENTRÉE pour continuer :
Entrez à nouveau le mot de passe :
Au moment de rédiger ce guide, lorsque j'ai essayé de définir le mot de passe pour phpmyadmin, il a généré l'erreur suivante :
An error occurred while installing the database:
mysql said: ERROR 1819 (HY000) at line 1: Your password does not satisfy
the current policy requirements . Your options are:
* abort - Causes the operation to fail; you will need to downgrade,
reinstall, reconfigure this package, or otherwise manually intervene
to continue using it. This will usually also impact your ability to
install other packages until the installation failure is resolved.
* retry - Prompts once more with all the configuration questions
(including ones you may have missed due to the debconf priority
setting) and makes another attempt at performing the operation.
* retry (skip questions) - Immediately attempts the operation again,
skipping all questions. This is normally useful only if you have
solved the underlying problem since the time the error occurred.
* ignore - Continues the operation ignoring dbconfig-common errors.
This will usually leave this package without a functional database.Cette erreur se produit parce que nous avons activé le composant VALIDATE PASSWORD comme décrit dans la section intitulée "2.2 Changer la méthode d'authentification pour l'utilisateur root de MySQL" dans le guide d'installation de la pile LAMP ci-dessus.
Pour résoudre ce problème, vous devez désactiver temporairement le composant Valider le mot de passe et le réactiver après avoir défini le mot de passe pour phpmyadmin. Cliquez sur OK pour fermer le message d'erreur ci-dessus et choisissez "annuler" pour annuler l'installation de phpmyadmin.
Connectez-vous maintenant à l'invite Mysql en exécutant la commande suivante :
$ mysql -u root -pDepuis l'invite mysql, exécutez la commande suivante pour désactiver le plugin Validate Password :
mysql> UNINSTALL COMPONENT "file://component_validate_password";Veuillez noter que la commande ci-dessus désactivera uniquement le plugin, mais ne le supprimera pas. Vous pouvez l'activer plus tard. Ensuite, tapez "exit" pour quitter l'invite Mysql.
mysql> exitEssayez maintenant d'installer phpmyadmin à nouveau en utilisant la commande :
$ sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curlChoisissez « Oui » et appuyez sur ENTRÉE pour configurer la base de données pour phpmyadmin avec dbconfig-common. Cette fois, l'installation de phpmyadmin fonctionnera sans aucun problème.
Une fois phpmyadmin installé, réactivez le plugin Valider le mot de passe. Pour ce faire, connectez-vous à votre invite Mysql :
$ mysql -u root -pDepuis l'invite mysql, exécutez la commande suivante pour désactiver le plugin Validate Password :
mysql> INSTALL COMPONENT "file://component_validate_password";Tapez exit pour quitter l'invite mysql.
mysql> exitEnfin, activez l'extension PHP mbstring et redémarrez le service Apache pour mettre à jour les changements comme indiqué ci-dessous.
$ sudo phpenmod mbstring$ sudo systemctl restart apache2Vous pouvez maintenant vérifier si l'extension mbstring est activée ou non en chargeant le fichier info.php depuis le navigateur web.
Pour ce faire, accédez à http://IP-address/info.php depuis votre navigateur.
Vous verrez que le plugin mbstring est activé.
Créer un utilisateur dédié pour accéder au tableau de bord phpMyAdmin
Une fois phpMyAdmin installé, un utilisateur de base de données nommé 'phpmyadmin' sera automatiquement créé avec le mot de passe administrateur que vous avez défini lors de l'installation. Vous pouvez vous connecter au tableau de bord de phpMyAdmin en utilisant l'utilisateur 'phpmyadmin' ou l'utilisateur mysql root. Cependant, il est recommandé de créer un utilisateur dédié pour gérer les bases de données via l'interface web de phpMyAdmin.
Pour ce faire, connectez-vous au shell MySQL en utilisant la commande :
$ mysql -u root -pEntrez votre mot de passe root mysql. Vous serez maintenant dans le shell mysql.
Entrez la commande suivante pour créer un nouvel utilisateur dédié pour phpmyadmin :
mysql> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'Password123#@!';Ici, phpmyadmin est le nouvel utilisateur pour accéder au tableau de bord phpmyadmin. Le mot de passe pour phpmyadminuser est Password123#@!. Remplacez ces valeurs par les vôtres.
Ensuite, donnez les privilèges appropriés à 'phpmyadminuser' en utilisant la commande :
mysql> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;Quittez enfin le shell MySQL :
mysql> exitNous avons maintenant créé un utilisateur dédié pour gérer les bases de données via l'interface web de phpmyadmin. Allons-y et accédons au tableau de bord de phpmyadmin.
Accéder au tableau de bord phpMyAdmin
Ouvrez votre navigateur web et allez à http://ip-address/phpmyadmin ou http://domain/phpmyadmin. Vous devriez voir la page de connexion de phpMyAdmin. Connectez-vous à l'interface phpMyAdmin en utilisant soit l'utilisateur root de MySQL, soit le nouvel utilisateur que nous avons créé à l'étape précédente.
Voici à quoi ressemble le tableau de bord de phpMyAdmin :
À partir de maintenant, vous pouvez gérer vos bases de données via l'interface web phpMyAdmin.
Sécuriser phpMyAdmin
Cette section fournit quelques conseils pour sécuriser l'installation de PhpMyAdmin. Veuillez noter que les étapes suivantes ne pourraient pas protéger PhpMyAdmin à 100 % de manière sécurisée. Cependant, elles ralentiront au moins toute tentative d'un auteur malveillant de pénétrer dans votre tableau de bord phpMyAdmin.
Désactiver la connexion root MySQL au tableau de bord phpMyAdmin
Permettre à l'utilisateur root de mysql d'accéder au tableau de bord de phpMyAdmin n'est pas sûr, surtout lors de la gestion des bases de données sur le réseau. C'est pourquoi nous avons créé un utilisateur dédié dans la section précédente. Puisque nous avons déjà un utilisateur dédié, nous pouvons désactiver en toute sécurité la connexion root de mysql pour accéder au tableau de bord de phpMyAdmin afin de minimiser les attaques.
En général, phpMyAdmin est installé dans le répertoire /usr/share/phpmyadmin/ et ses fichiers de configuration sont stockés dans le répertoire /etc/phpmyadmin.
Modifier le fichier de configuration de phpmyadmin :
$ sudo nano /etc/phpmyadmin/config.inc.phpAjouter/modifier les paramètres suivants :
[...]
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['AllowRoot'] = FALSE;
[...]Enregistrez et fermez le fichier.
Redémarrez le serveur web Apache en utilisant la commande :
$ sudo systemctl restart apache2Essayez maintenant de vous connecter à phpMyAdmin en tant qu'utilisateur root. Vous obtiendrez le message d'erreur Accès refusé :
Protéger par mot de passe la page de connexion de phpMyAdmin
Puisque phpMyAdmin est une cible facile pour les attaquants, la prochaine tâche recommandée est de sécuriser la page de connexion web de phpMyAdmin. La façon la plus courante de protéger phpMyAdmin contre l'accès non autorisé est d'utiliser les fonctionnalités d'authentification et d'autorisation intégrées d'Apache via .htaccess.
Tout d'abord, activez l'utilisation des substitutions de fichier .htaccess en modifiant le fichier /phpmyadmin.conf :
$ sudo nano /etc/apache2/conf-available/phpmyadmin.confAjoutez la ligne "AllowOverride All" dans la section <Directory /usr/share/phpmyadmin> comme indiqué ci-dessous.
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
AllowOverride AllAppuyez sur CTL+X puis sur Y pour enregistrer et fermer le fichier.
Redémarrez le service Apache pour mettre à jour les modifications en utilisant la commande :
$ sudo systemctl restart apache2Ensuite, créez un fichier nommé .htaccess dans le répertoire /usr/share/phpmyadmin/ en utilisant la commande :
$ sudo nano /usr/share/phpmyadmin/.htaccess
Ajoutez les lignes suivantes dedans :
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Enregistrez et fermez le fichier.
Maintenant, exécutez la commande suivante pour créer un nouvel utilisateur, par exemple ostechnix:
$ sudo htpasswd -c /etc/phpmyadmin/.htpasswd ostechnixRemplacez 'ostechnix' par le nom d'utilisateur de votre choix. Il vous sera demandé de fournir un mot de passe pour le nouvel utilisateur. Entrez-le deux fois.
Exemple de sortie :
New password:
Re-type new password:
Adding password for user ostechnixNous avons maintenant ajouté une couche de sécurité supplémentaire pour accéder à l'interface web de phpMyAdmin. Dorénavant, chaque fois que vous essayerez d'accéder à l'interface web de phpMyAdmin, il vous sera demandé de saisir le nom d'utilisateur supplémentaire et son mot de passe que vous venez de configurer dans l'étape précédente.
Une fois que vous aurez saisi le nom d'utilisateur et le mot de passe corrects, vous serez redirigé vers la véritable page de connexion d'authentification phpMyAdmin. Il vous suffit de saisir vos informations d'identification de base de données pour accéder au tableau de bord PhpMyAdmin.
Lecture connexe :
- Installer phpMyAdmin avec la pile LEMP sur Ubuntu 20.04 LTS














