phpMyAdmin est un outil d'administration gratuit et open source pour MySQL et MariaDB. En tant qu'application Web portable écrite principalement en PHP, elle est devenue l'un des outils d'administration MySQL les plus populaires, en particulier pour les services d'hébergement Web. Dans ce guide, nous allons installer phpMyAdmin avec Apache sur CentOS 7.
Une condition préalable importante avant d'utiliser ce guide est d'installer une pile LAMP (Linux, Apache, MariaDB et PHP) sur votre serveur CentOS 7. La pile LAMP est la plateforme qui servira à servir notre interface phpMyAdmin (MariaDB est aussi le logiciel de gestion de base de données que nous souhaitons gérer). Si vous n'avez pas encore d'installation LAMP sur votre serveur, cliquez ici pour lire notre tutoriel sur l'installation de LAMP sur CentOS 7.
Étape 1 :Ajouter un dépôt EPEL :
Nous devons ajouter le référentiel EPEL (Extra Packages for Enterprise Linux) à notre serveur avant de procéder à l'installation car il contient de nombreux packages supplémentaires, y compris le package phpMyAdmin que nous recherchons. Pour installer, tapez la commande ci-dessous :
sudo yum install epel-release
Étape 2 :Installez phpMyAdmin :
Tapez la commande ci-dessous pour installer le package phpMyAdmin en utilisant le système de packaging yum suivi de y pour continuer :
sudo yum install phpmyadmin
Une fois l'installation réussie, vous devriez obtenir un résultat similaire à celui illustré ci-dessous :
L'installation inclut un fichier de configuration Apache qui a été placé dans son répertoire approprié. Nous devons modifier ce fichier de configuration pour que notre installation fonctionne parfaitement pour nos besoins.
Ouvrez le phpMyAdmin.conf
dans le /etc/httpd
fichier dans l'éditeur de texte (nano dans ce guide) pour apporter quelques modifications :
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
Actuellement, la configuration dans le fichier de configuration est configurée pour refuser l'accès à toute connexion qui n'est pas établie à partir du serveur lui-même. Puisque nous évaluons notre serveur à distance (via ssh), nous devons modifier certaines lignes pour spécifier l'adresse IP de votre connexion domestique.
Le premier emplacement est le <Directory /usr/share/phpMyAdmin/>
comme indiqué ci-dessous :
Modifiez toutes les lignes qui lisent Require ip 127.0.0.1
ou Allow from 127.0.0.1
pour faire référence à l'adresse IP de votre connexion domestique.
Remarque : Si vous avez besoin d'aide pour trouver l'IP de votre connexion domestique, cliquez ici pour vérifier.
Le deuxième emplacement est le <Directory /usr/share/phpMyAdmin/setup/>
comme indiqué ci-dessous :
Modifiez également toutes les lignes qui lisent Require ip 127.0.0.1
ou Allow from 127.0.0.1
pour faire référence à l'adresse IP de votre connexion domestique.
Remarque : L'adresse IP de vos connexions à domicile diffère de l'adresse IP de votre VPS.
Après avoir fait les configurations, redémarrez le serveur web Apache en tapant :
sudo systemctl restart httpd.service
Pour accéder à l'interface, visitez votre adresse IP publique ou le nom de domaine du serveur suivi de /phpMyAdmin, dans votre navigateur Web :
http://server_domain_or_IP/phpMyAdmin
Connectez-vous à l'interface phpmyadmin en utilisant le nom d'utilisateur root et le mot de passe administratif que vous avez configuré lors de l'installation de MySQL. Une fois connecté, l'interface utilisateur ressemble à la capture d'écran ci-dessous :
SÉCURISER VOTRE INSTANCE PHPMYADMIN
La sécurisation de votre phpmyadmin est importante afin d'empêcher tout accès non autorisé. Un moyen simple de le faire est de changer l'emplacement de l'interface de /phpMyAdmin à autre chose pour empêcher les tentatives de force brute automatisées des bots.
Ouvrez le fichier de configuration à l'aide de la commande ci-dessous :
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
Les deux lignes ci-dessous sont les alias par défaut qui nous servent le contenu de /usr/share/phpMyAdmin
emplacement si nous accédons au nom de domaine ou à l'adresse IP de notre site, suivi soit de /phpMyAdmin
ou /phpmyadmin
.
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
Nous allons désactiver ces alias par défaut en raison du taux élevé auquel ils sont ciblés par les bots et les utilisateurs malveillants. Pour des raisons de sécurité, nous devons choisir notre propre alias en tenant compte de ces deux règles :
- Il ne doit pas indiquer le but de l'emplacement de l'URL.
- Il doit être facile à retenir mais pas facile à deviner.
Dans ce guide, nous allons utiliser /somethingelse
.
Pour appliquer nos modifications, nous allons commenter les lignes existantes (vous pouvez les supprimer entièrement) et ajouter les nôtres :
#Alias /phpMyAdmin /usr/share/phpMyAdmin
#Alias /phpmyadmin /usr/share/phpMyAdmin
Alias /somethingelse /usr/share/phpMyAdmin
Enregistrez et fermez le fichier puis redémarrez httpd avec la commande ci-dessous :
sudo systemctl restart httpd.service
Si vous visitez l'emplacement précédent de votre installation de phpMyAdmin, vous obtiendrez une erreur 404 :
http://server_domain_or_IP/phpMyAdmin
http://server_domain_or_IP/nothingtosee
Vous pouvez également sécuriser phpMyAdmin en plaçant une passerelle devant l'ensemble de l'application en utilisant le .htaccess
intégré d'Apache fonctionnalités d'authentification et d'autorisation.
Tout d'abord, nous devrons activer l'utilisation des remplacements de fichiers .htaccess en éditant notre fichier de configuration Apache. Ouvrez le phpmyadmin.conf avec la commande ci-dessous :
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
Ajoutez AllowOverride All
au bas du <Directory /usr/share/phpmyadmin>
section du fichier de configuration comme indiqué ci-dessous :
Enregistrez le fichier avant de fermer puis procédez au redémarrage d'Apache avec la commande :
sudo systemctl restart apache2
Après avoir activé l'utilisation de .htaccess, nous devons créer le fichier pour mettre pleinement en œuvre la sécurité en tapant la commande ci-dessous :
sudo nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Vous pouvez en savoir plus sur htaccess
ici.
Tapez la commande ci-dessous pour ajouter le mot de passe au htaccess
fichier :
sudo htpasswd -c /etc/httpd/pma_pass username
Pour ajouter des utilisateurs supplémentaires à authentifier, tapez à nouveau la même commande mais cette fois sans le -c
flag, et avec un nouveau nom d'utilisateur :
sudo htpasswd /etc/httpd/pma_pass seconduser
Ainsi, chaque fois que vous accéderez à phpMyAdmin sur votre domaine, vous serez invité à entrer le nom de compte et le mot de passe supplémentaires que vous venez de configurer comme indiqué ci-dessous :
Avec cela, chaque fois que vous accéderez à phpMyAdmin sur votre domaine, vous serez invité à saisir le nom de compte et le mot de passe supplémentaires que vous venez de configurer comme indiqué ci-dessous :
Après avoir tapé le mot de passe d'authentification Apache, vous serez redirigé vers la page d'authentification phpMyAdmin d'origine pour entrer vos autres informations d'identification.