Serveur Ubuntu 18.04 / Comment Installer phpMyAdmin

Pour installer phpMyAdmin sur un serveur Ubuntu 18.04, préparez Apache, PHP et MySQL ou MariaDB, puis installez le paquet phpmyadmin et connectez-vous avec un compte de base de données. Avant l'installation, restreignez les chemins d'accès pour que l'outil d'administration ne soit pas exposé à l'extérieur, et ne changez pas les paramètres d'authentification pour le root de la base de données.

Choses à vérifier avant l'installation

phpMyAdmin est un outil pour gérer les bases de données et les tables MySQL ou MariaDB via un navigateur web. Cet article décrit le cas d'utilisation d'Apache sur un serveur Ubuntu 18.04 existant. Si vous utilisez un serveur web et un serveur de base de données séparés ou si vous utilisez Nginx, le chemin de connexion et les paramètres seront différents.

La maintenance de sécurité standard pour Ubuntu 18.04 LTS a pris fin en mai 2023. Pour les systèmes existants, il est recommandé de passer à une version d'Ubuntu prise en charge. Si vous ne pouvez pas mettre à niveau immédiatement, vérifiez si la maintenance de sécurité Ubuntu Pro est appliquée et la portée des mises à jour pour phpMyAdmin, PHP et les packages de base de données. Pour plus de détails, consultez le Guide de maintenance de la sécurité Ubuntu.

L'exemple suivant suppose que vous avez des privilèges sudo, Apache, PHP et MySQL ou MariaDB déjà installés, et que vous pouvez accéder au serveur via SSH. Sauvegardez votre base de données et vérifiez les dépôts de paquets ainsi que les configurations de sites existantes avant l'installation. Comme les paramètres d'Apache peuvent être appliqués automatiquement lors de l'installation, restreignez d'abord l'accès depuis des sources externes à l'aide d'un pare-feu ou d'un réseau privé.

Restriction du chemin de gestion dans Apache

L'exemple suivant montre comment se connecter directement à Apache et autoriser uniquement les connexions locales au serveur. Tout d'abord, créez le fichier /etc/apache2/conf-available/phpmyadmin-local.conf et enregistrez-y le contenu suivant.

<Location /phpmyadmin>
    Require local
</Location>

Après avoir activé les paramètres, vérifiez la syntaxe et rechargez Apache uniquement si la vérification est réussie.

sudo a2enconf phpmyadmin-local
sudo apache2ctl configtest

Lorsque Syntax OK est affiché, exécutez la commande suivante. En cas d'erreurs, modifiez les paramètres et vérifiez à nouveau.

sudo systemctl reload apache2

Cette configuration s'applique au chemin exemple. Si vous avez d'autres alias ou hôtes virtuels, vérifiez également ces chemins. Si un proxy inverse est en place, Apache pourrait voir l'adresse du proxy comme l'adresse du client, donc les restrictions d'accès ne peuvent pas être garanties uniquement avec cet exemple. Passez en revue séparément la gestion des adresses réelles des clients par les proxies de confiance et le pare-feu. Vous pouvez consulter la directive Require dans la documentation de contrôle d'accès d'Apache.

Installation de phpMyAdmin

Mettez à jour la liste des paquets et installez-le. La disponibilité et les versions des paquets peuvent varier en fonction des dépôts et des paramètres de maintenance de sécurité.

sudo apt update
sudo apt install phpmyadmin

Lorsque l'écran d'installation interactive s'affiche, vérifiez ce qui suit :

  1. Sur l'écran de sélection du serveur web, choisissez Apache2. Assurez-vous qu'Apache2 est coché avant de continuer. Appuyer simplement sur Entrée peut ne pas sélectionner l'élément.
  2. Si on vous demande à propos de la configuration de dbconfig-common, sélectionnez Oui si vous voulez que le paquet configure une base de données pour les fonctionnalités supplémentaires de phpMyAdmin. Cette base de données est différente des bases de données de l'application que vous gérez. Si vous prévoyez de gérer vous-même les paramètres existants, vous pouvez choisir Non.
  3. Sur l'écran qui demande un mot de passe, vérifiez le compte affiché et l'objectif, et entrez un mot de passe sécurisé. L'authentification de l'administrateur de la base de données requise lors du processus d'installation peut varier en fonction de la méthode d'authentification du serveur existant.

Après l'installation, vérifiez les fichiers de configuration et si le service Apache fonctionne. Les paramètres pour le paquet Ubuntu se trouvent principalement dans /etc/phpmyadmin et peuvent varier en fonction de la configuration du paquet.

ls /etc/phpmyadmin
systemctl status apache2 --no-pager

Accès via tunnel SSH

Ouvrez le client SSH sur le PC de l'administrateur et exécutez la commande suivante. Remplacez user et server par le compte SSH réel et l'adresse du serveur. Cela connecte le port 8080 sur le PC de l'administrateur au port local 80 du serveur et peut être utilisé tant que la connexion SSH est maintenue.

ssh -L 127.0.0.1:8080:127.0.0.1:80 user@server

Ouvrez http://127.0.0.1:8080/phpmyadmin dans le navigateur sur le même PC. Le navigateur et le client SSH doivent être exécutés sur le même PC, et Apache sur le serveur doit desservir le chemin sur le port local 80. Lorsque l'écran de connexion apparaît, entrez le nom d'utilisateur et le mot de passe de la base de données autorisés. Mettre fin à la session SSH fermera également le tunnel.

Si votre environnement est configuré pour accéder directement via HTTPS, un certificat TLS valide et des restrictions d'accès distinctes sont requis. Configurez les IP autorisées dans votre pare-feu ou Apache selon l'adresse réelle de l'administrateur, et vérifiez les résultats d'accès à partir des adresses autorisées et non autorisées. Il est recommandé de ne pas exposer la page d'administration à l'ensemble d'internet.

Comptes de connexion et permissions

La connexion à phpMyAdmin est authentifiée à l'aide d'un compte MySQL ou MariaDB. Utilisez un compte dédié avec uniquement les permissions pour les bases de données et les opérations nécessaires à vos activités. L'hôte et les permissions du compte doivent correspondre aux paramètres sur le serveur de base de données réel. Vérifiez soigneusement la cible et la sauvegarde avant de téléverser des fichiers ou de modifier des données.

Le compte root de Linux et le compte root de la base de données sont différents. Si le compte root de la base de données est configuré pour une authentification par socket locale, il peut ne pas être utilisable pour la connexion web. N'essayez pas de résoudre ce problème en modifiant directement les tables du système ou en vidant le plugin d'authentification root. Créez un compte séparé avec les permissions requises et suivez la documentation de gestion des comptes pour ce produit de base de données.

Lorsqu'il est impossible de se connecter

  • 403 Forbidden : Vérifiez si des restrictions d'accès sont appliquées et si vous utilisez un tunnel SSH. Vérifiez également l'adresse du client reconnue par le proxy et Apache.
  • 404 Not Found : Assurez-vous qu'Apache2 a été sélectionné lors de l'installation et que la configuration Apache de phpMyAdmin est activée. Si vous utilisez d'autres hôtes virtuels ou alias, vérifiez également ces paramètres.
  • Échec de la connexion : Vérifiez le nom d'utilisateur de la base de données, le mot de passe, l'hôte de connexion et les permissions. Le compte du serveur web ou le compte SSH peut être différent du compte de la base de données.
  • Erreur de page PHP : Vérifiez l'intégration d'Apache et PHP, les extensions PHP nécessaires et les journaux d'erreurs d'Apache. Les chemins d'installation et de configuration peuvent varier selon le paquet de distribution.

Si vous devez annuler des modifications de configuration, restaurez à partir d'une sauvegarde existante et vérifiez à nouveau la syntaxe. La désactivation des paramètres de restriction locale mentionnés dans cet article peut exposer le chemin d'administration à un accès externe en raison d'autres configurations, donc assurez-vous d'abord que des contrôles d'accès alternatifs sont appliqués. Pour l'installation et les paramètres de sécurité de phpMyAdmin, référez-vous à la documentation d'installation officielle.