15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
01.11.2024

Comment installer et sécuriser phpMyAdmin sur Ubuntu (Guide complet)

phpMyAdmin est l’un des outils open-source les plus largement utilisés pour gérer les bases de données MySQL et MariaDB via une interface graphique basée sur un navigateur. Que vous soyez développeur, administrateur système ou propriétaire de site web, il simplifie considérablement les opérations complexes de base de données — de l’exécution de requêtes SQL à l’importation/exportation de données — sans nécessiter d’expertise en ligne de commande.

Cependant, comme phpMyAdmin est accessible via une URL publique par défaut, le laisser non sécurisé est un risque grave. Ce guide complet vous guide à travers l’installation de phpMyAdmin sur Ubuntu 20.04/22.04, sa configuration avec Apache, et son renforcement contre les accès non autorisés en utilisant plusieurs couches de sécurité.

Table des matières

  1. Prérequis
  2. Étape 1 — Mettre à jour le système et l’index des paquets
  3. Étape 2 — Installer phpMyAdmin
  4. Étape 3 — Configurer Apache pour phpMyAdmin
  5. Étape 4 — Sécuriser phpMyAdmin avec l’authentification HTTP Basic
  6. Étape 5 — Restreindre l’accès par adresse IP (Optionnel mais recommandé)
  7. Étape 6 — Activer SSL pour chiffrer le trafic
  8. Étape 7 — Accéder à phpMyAdmin
  9. Dépannage des problèmes courants
  10. Conclusion

Prérequis {#prerequisites}

Avant de commencer, assurez-vous que les exigences suivantes sont en place :

  • Un serveur exécutant Ubuntu 20.04 ou 22.04 (physique ou virtuel)
  • MySQL ou MariaDB installé et activement en cours d’exécution
  • Le serveur web Apache2 installé
  • Un compte utilisateur avec privilèges sudo
  • Un nom de domaine ou une adresse IP statique pointant vers votre serveur
  • (Recommandé) Un certificat SSL valide pour l’accès HTTPS chiffré

> Conseil : Si vous n’avez pas encore d’environnement serveur, envisagez AlexHost VPS Hosting — des plans VPS Linux entièrement gérés ou non gérés avec provisionnement instantané, accès root et stockage SSD, idéal pour exécuter phpMyAdmin en toute sécurité.

Étape 1 — Mettre à jour le système et l’index des paquets {#step-1}

Commencez toujours par actualiser vos listes de paquets et appliquer les mises à jour système en attente. Cela garantit que vous installez la dernière version disponible de phpMyAdmin et évitez les conflits de dépendances.

sudo apt update && sudo apt upgrade -y

Étape 2 — Installer phpMyAdmin {#step-2}

Installez phpMyAdmin en utilisant le référentiel APT officiel d’Ubuntu :

sudo apt install phpmyadmin -y

Pendant l’installation, un assistant de configuration interactif apparaîtra. Suivez ces étapes attentivement :

2.1 — Choisir un serveur web

Vous serez invité à sélectionner un serveur web à configurer automatiquement :

Please choose the web server that should be automatically configured to run phpMyAdmin.

  [*] apache2
  [ ] lighttpd

Utilisez la barre d’espace pour sélectionner apache2, puis appuyez sur Tab pour mettre en surbrillance <Ok> et appuyez sur Entrée.

2.2 — Configurer la base de données avec dbconfig-common

Ensuite, vous serez invité à indiquer si vous souhaitez configurer une base de données pour phpMyAdmin en utilisant dbconfig-common :

Configure database for phpmyadmin with dbconfig-common?

Sélectionnez Oui. Vous serez alors invité à entrer un mot de passe d’application MySQL pour l’utilisateur de base de données interne de phpMyAdmin. Entrez un mot de passe fort ou laissez-le vide pour en générer un automatiquement.

2.3 — Vérifier l’installation

Une fois l’installation terminée, confirmez que phpMyAdmin est installé :

dpkg -l phpmyadmin

Vous devriez voir une ligne affichant la version du paquet installé.

Étape 3 — Configurer Apache pour phpMyAdmin {#step-3}

Dans certaines configurations Ubuntu, le fichier de configuration Apache de phpMyAdmin n’est pas automatiquement activé. Vérifiez et activez-le manuellement.

3.1 — Activer la configuration phpMyAdmin

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin

3.2 — Vérifier le fichier de configuration

Ouvrez le fichier de configuration pour examiner son contenu :

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Le fichier devrait contenir les directives suivantes (ou similaires) :

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
        </RequireAny>
    </IfModule>
</Directory>

<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
        </RequireAny>
    </IfModule>
</Directory>

Enregistrez et fermez le fichier avec CTRL+X, puis Y, puis Entrée.

3.3 — Redémarrer Apache

Appliquez les modifications de configuration :

sudo systemctl restart apache2

Vérifiez qu’Apache s’exécute sans erreurs :

sudo systemctl status apache2

Étape 4 — Sécuriser phpMyAdmin avec l’authentification HTTP Basic {#step-4}

Par défaut, quiconque connaît l’adresse IP de votre serveur peut accéder à la page de connexion phpMyAdmin. L’ajout d’une couche d’authentification HTTP Basic crée une deuxième porte de mot de passe avant que les utilisateurs ne voient même le formulaire de connexion phpMyAdmin.

4.1 — Installer apache2-utils

sudo apt install apache2-utils -y

4.2 — Créer le fichier de mot de passe et l’utilisateur

Créez un fichier .htpasswd et ajoutez votre premier utilisateur administratif. Remplacez your_admin_user par votre nom d’utilisateur choisi :

sudo mkdir -p /etc/phpmyadmin
sudo htpasswd -c /etc/phpmyadmin/.htpasswd your_admin_user

Vous serez invité à entrer et confirmer un mot de passe. Pour ajouter des utilisateurs supplémentaires ultérieurement (sans le drapeau -c, qui écrasera le fichier) :

sudo htpasswd /etc/phpmyadmin/.htpasswd another_user

4.3 — Mettre à jour la configuration Apache de phpMyAdmin

Modifiez le fichier de configuration phpMyAdmin pour appliquer l’authentification :

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Localisez le bloc <Directory /usr/share/phpmyadmin> et ajoutez les lignes suivantes à l’intérieur :

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    # HTTP Basic Authentication
    AuthType Basic
    AuthName "Restricted Access — Authorized Personnel Only"
    AuthUserFile /etc/phpmyadmin/.htpasswd
    Require valid-user

    <IfModule mod_authz_core.c>
        <RequireAny>
            Require valid-user
        </RequireAny>
    </IfModule>
</Directory>

Enregistrez et fermez le fichier.

4.4 — Redémarrer Apache

sudo systemctl restart apache2

Maintenant, naviguer vers /phpmyadmin demandera d’abord les identifiants d’authentification HTTP avant d’afficher la page de connexion phpMyAdmin.

Étape 5 — Restreindre l’accès par adresse IP (Optionnel mais recommandé) {#step-5}

Pour une protection encore plus forte, limitez l’accès à phpMyAdmin à des adresses IP de confiance uniquement. Ceci est particulièrement utile si vous accédez toujours à votre serveur à partir d’une adresse IP fixe (comme un réseau de bureau ou un VPN).

Modifiez la configuration Apache de phpMyAdmin :

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Modifiez le bloc <Directory> pour inclure des restrictions basées sur l’IP :

<Directory /usr/share/phpmyadmin>
    Options Indexes FollowSymLinks
    DirectoryIndex index.php

    AuthType Basic
    AuthName "Restricted Access"
    AuthUserFile /etc/phpmyadmin/.htpasswd

    <RequireAll>
        Require valid-user
        Require ip 203.0.113.50
        # Add more trusted IPs below:
        # Require ip 198.51.100.0/24
    </RequireAll>
</Directory>

Remplacez 203.0.113.50 par votre adresse IP ou sous-réseau de confiance réel. Enregistrez le fichier et redémarrez Apache :

sudo systemctl restart apache2

> Remarque : Si votre adresse IP change fréquemment, envisagez d’utiliser un VPN avec une adresse IP statique, ou fiez-vous uniquement à l’authentification HTTP Basic combinée à SSL.

Étape 6 — Activer SSL pour chiffrer le trafic {#step-6}

Envoyer les identifiants de base de données sur HTTP simple est un risque de sécurité critique. Vous devriez toujours accéder à phpMyAdmin via HTTPS. Il y a deux approches principales :

Option A — Utiliser un certificat SSL Let’s Encrypt (Gratuit)

Si vous avez un nom de domaine pointant vers votre serveur, installez Certbot :

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.com

Certbot configurera automatiquement Apache pour rediriger HTTP vers HTTPS et installera un certificat gratuit et auto-renouvelable.

Option B — Utiliser un certificat SSL commercial

Pour les environnements de production traitant des données sensibles, un certificat SSL émis commercialement offre des signaux de confiance plus forts et une protection de garantie. Vous pouvez obtenir des certificats SSL de confiance directement auprès d’AlexHost SSL Certificates, avec des options allant de la validation de domaine (DV) aux certificats de validation étendue (EV).

Après avoir installé votre certificat SSL, assurez-vous que votre URL phpMyAdmin utilise https:// :

https://yourdomain.com/phpmyadmin

Étape 7 — Accéder à phpMyAdmin {#step-7}

Avec l’installation et les mesures de sécurité en place, ouvrez votre navigateur et accédez à :

https://your_server_ip_or_domain/phpmyadmin

Vous rencontrerez deux invites d’authentification en séquence :

  1. Invite d’authentification HTTP Basic — Entrez le nom d’utilisateur et le mot de passe que vous avez créés avec htpasswd
  2. Page de connexion phpMyAdmin — Entrez votre nom d’utilisateur MySQL/MariaDB (par exemple, root) et son mot de passe

Une fois connecté avec succès, vous aurez un accès complet à vos bases de données MySQL via l’interface graphique phpMyAdmin.

Dépannage des problèmes courants {#troubleshooting}

phpMyAdmin retourne une erreur 404 Not Found

La configuration Apache peut ne pas être liée ou activée. Exécutez :

sudo a2enconf phpmyadmin
sudo systemctl reload apache2

Vérifiez également que le lien symbolique existe :

ls -la /etc/apache2/conf-available/phpmyadmin.conf

Erreur « Cannot Connect to MySQL Server »

Vérifiez que MySQL/MariaDB s’exécute :

sudo systemctl status mysql
# or for MariaDB:
sudo systemctl status mariadb

S’il est arrêté, démarrez-le :

sudo systemctl start mysql

Erreur HTTP 500 Internal Server Error

Cela indique souvent qu’un module PHP est manquant. Installez les extensions PHP requises :

sudo apt install php-mbstring php-zip php-gd php-json php-curl -y
sudo systemctl restart apache2

Page vierge après la connexion

Videz le cache de votre navigateur, ou vérifiez les journaux d’erreurs Apache pour plus de détails :

sudo tail -f /var/log/apache2/error.log

Résumé des meilleures pratiques de sécurité

Avant de passer en direct, consultez cette liste de contrôle de sécurité :

Mesure de sécuritéStatut
Authentification HTTP Basic activée
SSL/HTTPS configuré
Restriction IP appliquée (le cas échéant)
Connexion MySQL root désactivée à distance
URL phpMyAdmin modifiée à partir de la valeur par défaut /phpmyadminRecommandé
Mises à jour système régulières planifiées
Pare-feu (UFW) configuréRecommandé

Renommer l’URL phpMyAdmin (Étape de

15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer