Afficher/cacher Sommaire
PhpMyAdmin
Introduction
Bien que de nombreux utilisateurs aient besoin des fonctionnalités d’un système de gestion de base de données comme MariaDB, ils peuvent ne pas se sentir à l’aise d’interagir avec le système uniquement à l’invite MariaDB.
phpMyAdmin a été créé pour que les utilisateurs puissent interagir avec MariaDB via une interface web. Dans ce guide, nous expliquerons comment installer et sécuriser phpMyAdmin afin que vous puissiez l’utiliser en toute sécurité pour gérer vos bases de données sur un système Debian 9.
Conditions préalables
Tout d’abord, nous supposerons que votre serveur a un utilisateur non root avec des privilèges sudo, ainsi qu’un pare-feu configuré.
Vous disposez d’une installation LEMP (Linux, Nginx, MariaDB, et PHP) sur votre serveur Debian 9.
Enfin, il y a d’importantes considérations de sécurité lors de l’utilisation de logiciels comme phpMyAdmin, puisqu’il :
- Communique directement avec votre installation MariaDB
- Gère l’authentification à l’aide des informations d’identification MariaDB
- Exécute et retourne les résultats de requêtes SQL arbitraires
IMPORTANT : Pour les raisons invoquées auparavant, il faut un domaine existant configuré avec un certificat SSL/TLS.
Installation
Avec notre plate-forme LEMP déjà en place, nous pouvons commencer par installer phpMyAdmin, qui est disponible depuis les dépôts par défaut d’Ubuntu.
Tout d’abord, nous mettrons à jour l’index des paquets locaux du serveur pour nous assurer qu’il contient un nouvel ensemble de références aux paquets disponibles. Ensuite, nous utiliserons les outils d’empaquetage apt pour extraire le logiciel des dépôts et l’installer sur notre système :
sudo apt update
sudo apt install phpmyadmin
Pendant l’installation, vous serez invité à fournir quelques informations. Il vous demandera quel serveur web vous souhaitez que le logiciel configure automatiquement. Puisque Nginx, le serveur web que nous utilisons, n’est pas l’une des options disponibles, vous pouvez simplement appuyer sur TAB, puis ENTRER pour contourner cette invite.
La prochaine invite vous demandera si vous souhaitez que dbconfig-common configure une base de données à utiliser par phpMyAdmin. Sélectionnez “Oui” pour continuer.
Vous devrez entrer le mot de passe administrateur de la base de données que vous avez configuré lors de l’installation de MySQL pour permettre ces changements.
Il vous sera alors demandé de choisir et de confirmer un mot de passe pour l’application phpMyAdmin et sa base de données (qui sera créée à cette étape). Choisissez et confirmez un mot de passe sécurisé et notez-le.
L’installation est maintenant terminée.
On va désactiver le service apache qui ne nous sert pas
sudo systemctl disable apache2.service
Pour que le serveur web Nginx puisse trouver et servir correctement les fichiers phpMyAdmin, nous devons créer un lien symbolique entre les fichiers d’installation et notre répertoire racine du document Nginx :
sudo ln -s /usr/share/phpmyadmin /var/www/phpadm
Enfin, nous devons activer le module PHP mcrypt, sur lequel repose phpMyAdmin. Ceci a été installé avec phpMyAdmin, donc nous allons l’activer et redémarrer notre processeur PHP :
# Version PHP7.0
sudo phpenmod mcrypt mcrypt
sudo systemctl restart php7.0-fpm
# Version > PHP7.0 :
sudo phpenmod -v php7.0 mcrypt mcrypt
sudo systemctl restart php7.3-fpm # suivant version php 7.1 7.2 7.3 ...
Avec cela, notre installation phpMyAdmin est maintenant opérationnelle.
Nous disposons d’un domaine avec accès https sécurisé Let’s encrypt , il faut créer un fichier de configuration nginx (exemple , les configurations nginx sont dans le dossier “/etc/nginx/conf.d/shuttle.d/”)
sudo nano /etc/nginx/conf.d/shuttle.d/phpmyadmin.conf
location /phpadm {
alias /var/www/phpadm/ ;
if ($scheme = http) {
rewrite ^ https://$server_name$request_uri? permanent;
}
index index.html index.php;
try_files $uri $uri/ index.php;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
Vérification et relance nginx
sudo nginx -t
sudo systemctl restart nginx
Connexion au site https://xoyize.xyz/phpadm , écran de connexion
Pour vous connecter, utilisez un ensemble d’informations d’identification pour un utilisateur MySQL valide. Ne pas utiliser “root” comme utilisateur , “accès non autorisé” (Normalement , un autre utilisateur avec tous les droits a été créée lors de la l’installation de MySQL/MariaDB). Vous devriez alors pouvoir accéder à l’interface d’administration…
ATTENTION !!! , debian n’installe pas la dernière version PhpMyAdmin ce qui peut poser problème notamment avec les versions PHP7.2 et plus…
Comment mettre à jour manuellement phpMyAdmin
Linux debian, ubuntu , etc…, de nombreuses personnes ont eu des problèmes de compatibilité avec PHP 7.2 et phpMyAdmin 4.6. Dans cet article, nous allons télécharger et installer manuellement la dernière version de phpMyAdmin pour résoudre ces problèmes.
-
Sauvegarder phpMyAdmin
Vous devriez sauvegarder votre dossier phpMyAdmin actuel en le renommant.sudo mv /usr/share/phpmyadmin/ /usr/share/phpmyadmin.bak
Créer un nouveau dossier phpMyAdmin
sudo mkdir /usr/share/phpmyadmin/
Aller au répertoire
cd /usr/share/phpmyadmin/
- Télécharger et extraire phpMyAdmin
Visitez la page de téléchargement de phpMyAdmin et cherchez l’URL.tar.gz et téléchargez-le en utilisant wget. Dans ce guide, nous utilisons la version 4.8.5. Si vous utilisez une version plus récente, assurez-vous de changer les commandes ci-dessous pour qu’elles correspondent.
sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.tar.gz
Extraire maintenant
sudo tar xzf phpMyAdmin-4.8.5-all-languages.tar.gz
Une fois extrait, listez le dossier
ls
Vous devriez voir un nouveau dossier phpMyAdmin-4.8.5-all-languages
Nous voulons déplacer le contenu de ce dossier vers /usr/share/phpmyadmin
sudo mv phpMyAdmin-4.8.5-all-languages/* /usr/share/phpmyadmin
Vous pouvez maintenant vous reconnecter à phpMyAdmin et vérifier la version actuelle. Vous pouvez également voir deux erreurs :
- Editer vendor_config.php
Si vous voyez une erreur Le $cfg[‘TempDir’] (./tmp/) n’est pas accessible. phpMyAdmin ne peut pas mettre en cache les modèles et sera lent à cause de cela.
Ouvrir vendor_config.php
sudo nano /usr/share/phpmyadmin/libraries/vendor_config.php
Appuyez sur CTRL + W et recherchez TEMP_DIR ,changez la ligne en
define('TEMP_DIR','/var/lib/phpmyadmin/tmp/') ;
Le fichier de configuration a maintenant besoin d’une phrase de passe secrète (blowfish_secret). Le secret blowfish est utilisé par phpMyAdmin pour l’authentification des cookies. Le secret du poisson lune
Appuyez sur CTRL + W et recherchez CONFIG_DIR ,changez la ligne en
define('CONFIG_DIR','/etc/phpmyadmin/') ;
phpMyAdmin va maintenant générer son propre secret blowfish basé sur le répertoire d’installation.
Enregistrer le fichier et quitter. (Appuyez sur CTRL + X, appuyez sur Y, puis appuyez sur ENTER)
Connectez-vous à nouveau à phpMyAdmin et assurez-vous que les erreurs ont disparu.
- Nettoyage
Vous pouvez maintenant supprimer le fichier tar.gz et le dossier vide.
sudo rm /usr/share/phpmyadmin/phpMyAdmin-4.8.5-all-languages.tar.gz
sudo rm -rf /usr/share/phpMyAdmin-4.8.5-all-languages
Et si vous êtes certain que votre nouvelle installation de phpMyAdmin fonctionne correctement, vous pouvez supprimer le dossier de sauvegarde.
sudo rm -rf /usr/share/phpmyadmin.bak