Ce tutoriel vous montrera comment installer phpMyAdmin avec Apache, MariaDB, PHP7.2 (pile LAMP) sur Ubuntu 18.04 LTS. phpMyAdmin est un outil de gestion de base de données Web gratuit et open-source écrit en PHP. Il fournit une interface Web graphique permettant aux utilisateurs de gérer la base de données MySQL ou MariaDB. Nous allons également apprendre comment activer l'authentification à deux facteurs sur phpMyAdmin.
phpMyAdmin permet aux administrateurs de :
- naviguer dans les bases de données et les tables ;
- créer, copier, renommer, modifier et supprimer des bases de données ;
- créer, copier, renommer, modifier et supprimer des tables ;
- effectuer la maintenance des tables ;
- ajouter, modifier et supprimer des champs ;
- exécuter n'importe quelle instruction SQL, même plusieurs requêtes ;
- créer, modifier et supprimer des index ;
- charger des fichiers texte dans des tableaux ;
- créer et lire des vidages de tables ou de bases de données ;
- exporter des données aux formats SQL, CSV, XML, Word, Excel, PDF et LaTeX ;
- administrer plusieurs serveurs ;
- gérer les utilisateurs et les privilèges MySQL ;
- vérifier les paramètres du serveur et les informations d'exécution avec des conseils de configuration ;
- vérifier l'intégrité référentielle dans les tables MyISAM ;
- créer automatiquement des requêtes complexes à l'aide de Query-by-example (QBE)
- connecter les tables requises ;
- créer des graphiques PDF de la mise en page de la base de données ;
- rechercher globalement dans une base de données ou un sous-ensemble de celle-ci ;
- transformer les données stockées dans n'importe quel format à l'aide d'un ensemble de fonctions prédéfinies, telles que l'affichage des données BLOB sous forme d'image ou de lien de téléchargement ;
- gérer les tables InnoDB et les clés étrangères ;
Prérequis
Pour suivre ce tutoriel, vous avez besoin d'un système d'exploitation Ubuntu 18.04 exécuté sur votre ordinateur local ou sur un serveur distant.
Si vous recherchez un VPS (Virtual Private Server), vous pouvez créer un compte chez Vultr via mon lien de parrainage pour obtenir un crédit gratuit de 50 $ (pour les nouveaux utilisateurs uniquement). Et si vous avez besoin de configurer phpMyAdmin avec un nom de domaine, je vous recommande d'acheter des noms de domaine auprès de NameCheap car le prix est bas et ils offrent une protection gratuite de la confidentialité whois.
Il est supposé que vous avez déjà installé la pile LAMP sur Ubuntu 18.04. Si ce n'est pas le cas, veuillez consulter le didacticiel suivant.
- Comment installer la pile LAMP (Apache, MariaDB, PHP7.2) sur Ubuntu 18.04 LTS
Cela dit, commençons par installer phpMyAdmin.
Étape 1 :Téléchargez et installez phpMyAdmin sur Ubuntu 18.04
phpMyAdmin est inclus dans le référentiel de logiciels Ubuntu 18.04. afin que nous puissions facilement l'installer avec la commande ci-dessous.
sudo apt update sudo apt install phpmyadmin
La commande ci-dessus installera toutes les dépendances nécessaires, y compris les extensions PHP7. Lors de l'installation, il vous sera demandé de sélectionner un serveur Web à configurer. Appuyez sur l'space
barre pour sélectionner apache2. (Un astérisque * indique que l'élément est sélectionné). Appuyez ensuite sur Tab
touche et Enter
pour confirmer votre choix.
Dans l'écran suivant, sélectionnez Yes
configurer une base de données pour phpMyAdmin avec dbconfig-common
.
Définissez ensuite un mot de passe pour le phpmyadmin
utilisateur dans MariaDB/MySQL.
Une fois cette étape effectuée, une nouvelle base de données nommée phpmyadmin
est créé et l'utilisateur de la base de données phpmyadmin
dispose des privilèges nécessaires pour gérer cette base de données. Si vous êtes curieux comme moi, vous pouvez vous connecter à MariaDB et vérifier quels privilèges phpmyadmin
l'utilisateur a été autorisé.
Vous pouvez utiliser la commande suivante pour vous connecter au serveur MariaDB.
sudo mysql -u root
Vérifiez ensuite les privilèges de phpmyadmin
utilisateur.
show grants for [email protected];
Sortie :
Comme vous pouvez le voir, l'utilisateur phpmyadmin
a tous les privilèges sur la base de données phpmyadmin
. Vous pouvez maintenant quitter en exécutant :
exit;
Exécutez maintenant la commande suivante pour vérifier si le /etc/apache2/conf-enabled/phpmyadmin.conf
le fichier existe.
file /etc/apache2/conf-enabled/phpmyadmin.conf
S'il n'y a pas d'erreur dans le processus d'installation, vous devriez voir la sortie de commande suivante.
/etc/apache2/conf-enabled/phpmyadmin.conf: symbolic link to ../conf-available/phpmyadmin.conf
Si ce fichier n'existe pas sur votre serveur, il est probable que vous n'ayez pas sélectionné le serveur Web Apache dans l'assistant de configuration de phpMyAdmin. Vous pouvez le réparer avec les commandes suivantes.
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf sudo a2enconf phpmyadmin sudo systemctl reload apache2
Étape 2 :Accéder à phpMyAdmin depuis un sous-répertoire
Lors de l'installation de phpMyAdmin, un fichier de configuration est placé dans /etc/apache2/conf-enabled/phpmyadmin.conf
, qui nous permet d'accéder à phpMyAdmin via un sous-répertoire. Si vous avez installé d'autres applications Web comme WordPress sur le même serveur Ubuntu 18.04, ajoutez simplement /phpmyadmin
après votre nom de domaine dans la barre d'adresse du navigateur.
your-domain.com/phpmyadmin
Si phpMyAdmin est installé sur votre ordinateur Ubuntu local, vous pouvez accéder à l'interface Web de phpMyAdmin en saisissant le texte suivant dans la barre d'adresse du navigateur.
localhost/phpmyadmin
Si la connexion est refusée ou échoue, il se peut qu'un pare-feu empêche les requêtes HTTP. Si vous utilisez le pare-feu iptables, vous devez exécuter la commande suivante pour ouvrir les ports TCP 80 et 443.
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Si vous utilisez un pare-feu UFW, exécutez cette commande pour ouvrir les ports TCP 80 et 443.
sudo ufw allow http sudo ufw allow https
Vous pouvez maintenant utiliser le nom d'utilisateur et le mot de passe MariaDB/MySQL pour vous connecter à phpMyAdmin
Étape 3 :Accéder à phpMyAdmin depuis un sous-domaine
Si votre serveur Ubuntu 18.04 n'a pas d'autre hôte virtuel Apache, vous pouvez utiliser un sous-domaine pour accéder à l'interface Web phpMyAdmin. De cette façon, vous pouvez activer HTTPS pour chiffrer le trafic.
Tout d'abord, nous devons créer un hôte virtuel Apache pour phpMyAdmin. L'extrait de configuration phpMyAdmin existant peut être utilisé comme modèle. Copions-le dans un nouveau fichier.
sudo cp /etc/apache2/conf-enabled/phpmyadmin.conf /etc/apache2/sites-available/phpmyadmin.conf
Modifiez ensuite le nouveau fichier avec un éditeur de texte en ligne de commande, tel que Nano.
sudo nano /etc/apache2/sites-available/phpmyadmin.conf
Ajoutez les lignes suivantes au début de ce fichier. Remplacez pma.example.com par votre sous-domaine préféré pour phpMyAdmin. N'oubliez pas de créer un enregistrement DNS A pour ce sous-domaine.
<VirtualHost *:80> ServerName pma.example.com DocumentRoot /usr/share/phpmyadmin ErrorLog ${APACHE_LOG_DIR}/pma.error.log CustomLog ${APACHE_LOG_DIR}/pma.access.log combined
Ajoutez la ligne suivante à la fin de ce fichier.
</VirtualHost>
Enregistrez et fermez le fichier. (Pour enregistrer un fichier dans l'éditeur de texte Nano, appuyez sur Ctrl+O
, puis appuyez sur Entrée pour confirmer. Pour quitter, appuyez sur Ctrl+X
.) Activez ensuite cet hôte virtuel.
sudo a2ensite phpmyadmin.conf
Rechargez le serveur Web Apache pour que cette modification prenne effet.
sudo systemctl reload apache2
Vous devriez maintenant pouvoir accéder à l'interface Web de phpMyAdmin via
pma.example.com
Avant de saisir les informations d'identification de l'utilisateur dans le formulaire de connexion, activons HTTPS.
Étape 4 :Activer HTTPS sur phpMyAdmin avec Apache
Pour sécuriser l'interface web de phpMyadmin, nous pouvons installer un certificat Let's Encrypt TLS gratuit. Exécutez la commande suivante pour installer le client Let's Encrypt (certbot) à partir du référentiel de logiciels Ubuntu 18.04.
sudo apt install certbot python3-certbot-apache
Python3-certbot-apache
est le plugin Apache pour Certbot. Exécutez maintenant la commande suivante pour obtenir et installer le certificat TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email [email protected]
Explication :
- –apache : Utiliser l'authentificateur et le programme d'installation Apache
- –d'accord :Acceptez les conditions d'utilisation de Let's Encrypt
- –redirection :Ajoutez une redirection 301.
- –hsts :Ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP.
- –agrafe-ocsp :Active l'agrafage OCSP.
- –doit-agrafer :Ajoute l'extension OCSP Must Staple au certificat.
- -d flag est suivi d'une liste de noms de domaine, séparés par une virgule. Vous pouvez ajouter jusqu'à 100 noms de domaine.
- –e-mail :E-mail utilisé pour l'enregistrement et le contact de récupération.
Il vous sera demandé si vous souhaitez recevoir des e-mails de l'EFF (Electronic Frontier Foundation). Après avoir choisi O ou N, votre certificat TLS sera automatiquement obtenu et configuré pour vous, ce qui est indiqué par le message ci-dessous.
Étape 5 :Résoudre l'erreur de connexion à phpMyAdmin
Si vous essayez de vous connecter à phpMyAdmin avec un compte root MariaDB, vous pouvez voir l'erreur suivante.
#1698 - Access denied for user 'root '@'localhost'
et
mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'
Si vous vous connectez avec l'utilisateur phpmyadmin
, vous ne verrez pas l'erreur ci-dessus. Cependant, l'utilisateur phpmyadmin
ne peut être utilisé que pour gérer le phpmyadmin
base de données. La cause de l'erreur est que, par défaut, l'utilisateur root de MariDB est authentifié via le plugin unix_socket, au lieu d'utiliser le mysql_native_password
brancher. Pour résoudre ce problème, nous pouvons créer un autre utilisateur administrateur et accorder tous les privilèges au nouvel utilisateur administrateur.
Connectez-vous au serveur MariaDB à partir de la ligne de commande.
sudo mysql -u root
Créez un utilisateur administrateur avec authentification par mot de passe.
create user [email protected] identified by 'your-preferred-password';
Accordez tous les privilèges sur toutes les bases de données.
grant all privileges on *.* to [email protected] with grant option;
Vider les privilèges et quitter ;
flush privileges; exit;
Vous pouvez maintenant vous connecter à phpMyAmin avec l'admin
compte et gérer toutes les bases de données.
Étape 6 :Installez la dernière version stable de phpMyAdmin
Le référentiel Ubuntu 18.04 est livré avec PHP7.2 et phpMyAdmin 4.6.6. Vous pouvez vérifier votre version de phpMyAdmin dans la barre de titre du navigateur.
Cependant, PHP7.2 est supporté par phpMyAdmin depuis la version 4.7.4. Lorsque vous utilisez phpMyAdmin 4.6.6 avec PHP7.2, vous verrez le message d'avertissement suivant dans l'onglet Exporter et Importer.
parameter must be an array or an object that implements countable
Pour résoudre le problème de compatibilité, nous pouvons installer phpMyAdmin 4.9, qui est la dernière version stable à ce jour. Téléchargez-le en utilisant wget
.
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip
Astuce :Vous pouvez toujours utiliser le format d'URL ci-dessus pour télécharger la dernière version stable de phpMyAdmin. Remplacez simplement 4.9.0.1 par le dernier numéro de version.
Ensuite, extrayez-le.
sudo apt install unzip unzip phpMyAdmin-4.9.0.1-all-languages.zip
Sauvegardez les fichiers phpMyAdmin d'origine.
sudo mv /usr/share/phpmyadmin /usr/share/phpmyadmin-original
Déplacez phpMyadmin 4.9 vers /usr/share/phpmyadmin/
répertoire.
sudo mv phpMyAdmin-4.9.0.1-all-languages /usr/share/phpmyadmin
Modifiez le fichier de configuration du fournisseur.
sudo nano /usr/share/phpmyadmin/libraries/vendor_config.php
Trouvez la ligne suivante.
define('CONFIG_DIR', '');
Changez-le en
define('CONFIG_DIR', '/etc/phpmyadmin/');
Enregistrez et fermez le fichier. Créez ensuite le tmp
dossier pour stocker les fichiers de cache.
sudo mkdir /usr/share/phpmyadmin/tmp
Modifier la propriété de l'utilisateur et la propriété du groupe en www-data
.
sudo chown www-data:www-data /usr/share/phpmyadmin/tmp
Vous pouvez maintenant utiliser phpMyAdmin 4.9 sans voir les erreurs PHP.
Activer l'authentification à deux facteurs
Vous pouvez également renforcer phpMyAdmin en activant l'authentification à deux facteurs, qui est une fonctionnalité ajoutée dans la version 4.8. Pour l'activer, connectez-vous à phpMyAdmin. Allez ensuite dans Settings
-> Two-factor authentication
et sélectionnez Application d'authentification (2FA) .
Après avoir cliqué sur Configurer l'authentification à deux facteurs bouton, un code QR vous sera présenté, que vous devrez scanner avec une application d'authentification à deux facteurs sur votre téléphone.
Google Authenticator est une application 2FA populaire, mais je recommande FreeOTP, qui est une application 2FA open source développée par Red Hat. Une fois que vous avez entré le code d'authentification généré par votre application 2FA, l'authentification à deux facteurs est activée. Si vous vous déconnectez et vous reconnectez maintenant, vous devez entrer le code d'authentification en plus du nom d'utilisateur et du mot de passe.