PhpMyAdmin


https://www.phpmyadmin.net/

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.

Texte alternatif

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.

Texte alternatif

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.

Texte alternatif

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

Texte alternatif

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.

  1. 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/
  1. 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 :

Texte alternatif

  1. 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.

  1. 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