GNU/Linux >> Tutoriels Linux >  >> Debian

Installer phpMyAdmin avec Apache (LAMP) sur Debian 10 Buster

Ce tutoriel vous montrera comment installer phpMyAdmin avec Apache, MariaDB, PHP7.3 (pile LAMP) sur Debian 10 Buster. phpMyAdmin est un outil de gestion de base de données Web gratuit et open-source écrit en PHP. Il fournit une interface Web graphique permettant aux utilisateurs de gérer la base de données MySQL ou MariaDB. Nous allons également apprendre comment activer l'authentification à deux facteurs sur phpMyAdmin.

phpMyAdmin permet aux administrateurs de :

  • naviguer dans les bases de données et les tables ;
  • créer, copier, renommer, modifier et supprimer des bases de données ;
  • créer, copier, renommer, modifier et supprimer des tables ;
  • effectuer la maintenance des tables ;
  • ajouter, modifier et supprimer des champs ;
  • exécuter n'importe quelle instruction SQL, même plusieurs requêtes ;
  • créer, modifier et supprimer des index ;
  • charger des fichiers texte dans des tableaux ;
  • créer et lire des vidages de tables ou de bases de données ;
  • exporter des données aux formats SQL, CSV, XML, Word, Excel, PDF et LaTeX ;
  • administrer plusieurs serveurs ;
  • gérer les utilisateurs et les privilèges MySQL ;
  • vérifier les paramètres du serveur et les informations d'exécution avec des conseils de configuration ;
  • vérifier l'intégrité référentielle dans les tables MyISAM ;
  • créer automatiquement des requêtes complexes à l'aide de Query-by-example (QBE)
  • connecter les tables requises ;
  • créer des graphiques PDF de la mise en page de la base de données ;
  • rechercher globalement dans une base de données ou un sous-ensemble de celle-ci ;
  • transformer les données stockées dans n'importe quel format à l'aide d'un ensemble de fonctions prédéfinies, telles que l'affichage des données BLOB sous forme d'image ou de lien de téléchargement ;
  • gérer les tables InnoDB et les clés étrangères ;

Prérequis

Pour suivre ce tutoriel, vous avez besoin d'un système d'exploitation Debian 10 exécuté sur votre ordinateur local ou sur un serveur distant.

Si vous recherchez un VPS (Virtual Private Server), vous pouvez créer un compte chez Vultr via mon lien de parrainage pour obtenir un crédit gratuit de 50 $ (pour les nouveaux utilisateurs uniquement). Et si vous avez besoin de configurer phpMyAdmin avec un nom de domaine, je vous recommande d'acheter des noms de domaine auprès de NameCheap car le prix est bas et ils offrent une protection gratuite de la confidentialité whois.

Il est supposé que vous avez déjà installé la pile LAMP sur Debian 10. Si ce n'est pas le cas, veuillez consulter le didacticiel suivant.

  • Comment installer la pile LAMP (Apache, MariaDB, PHP7.3) sur Debian 10 Buster

Veuillez noter que vous devez avoir le privilège root lors de l'installation de logiciels sur Debian. Vous pouvez ajouter sudo au début d'une commande, ou utilisez su - commande pour passer à l'utilisateur root.

Cela dit, commençons par installer phpMyAdmin.

Étape 1 :Téléchargez phpMyAdmin sur le serveur Debian 10

phpMyAdmin n'est pas inclus dans le référentiel de logiciels Debian 10, nous devons donc télécharger manuellement le logiciel. Allez sur la page de téléchargement de phpMyAdmin pour vérifier la dernière version stable. Exécutez ensuite la commande suivante pour le télécharger.

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.zip

Astuce :Vous pouvez toujours utiliser le format d'URL ci-dessus pour télécharger la dernière version stable de phpMyAdmin. Remplacez simplement 4.9.0.1 par le dernier numéro de version.

Ensuite, extrayez-le.

sudo apt install unzip

unzip phpMyAdmin-4.9.0.1-all-languages.zip

Déplacez phpMyadmin 4.9 vers /usr/share/ répertoire.

sudo mv phpMyAdmin-4.9.0.1-all-languages /usr/share/phpmyadmin

Ensuite, faites en sorte que l'utilisateur du serveur Web (www-data ) en tant que propriétaire de ce répertoire.

sudo chown -R www-data:www-data /usr/share/phpmyadmin

Étape 2 :Créer une base de données MariaDB et un utilisateur pour phpMyAdmin

Nous devons maintenant nous connecter à la console MariaDB et créer une base de données et un utilisateur pour phpMyAdmin. Par défaut, le package MaraiDB sur Debian utilise unix_socket pour authentifier la connexion de l'utilisateur, ce qui signifie essentiellement que vous pouvez utiliser le nom d'utilisateur et le mot de passe du système d'exploitation pour vous connecter à la console MariaDB. Vous pouvez donc exécuter la commande suivante pour vous connecter sans fournir de mot de passe root MariaDB.

sudo mysql -u root

Ensuite, créez une nouvelle base de données pour phpMyAdmin à l'aide de la commande SQL suivante. Ce tutoriel le nomme phpmyadmin , vous pouvez utiliser le nom de votre choix pour la base de données.

CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

La commande SQL suivante créera le phpmyadmin utilisateur de la base de données et définissez un mot de passe, et en même temps accordez toutes les autorisations de la nouvelle base de données au nouvel utilisateur afin que plus tard phpMyAdmin puisse écrire dans la base de données. Remplacez les textes rouges par votre mot de passe préféré.

GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'your_preferred_password';

Videz la table des privilèges et quittez la console MariaDB.

FLUSH PRIVILEGES;

EXIT;

Étape 3 :Installez les modules PHP requis et recommandés.

Exécutez la commande suivante pour installer les modules PHP requis ou recommandés par phpMyAdmin.

sudo apt install php-imagick php-phpseclib php-php-gettext php7.3-common php7.3-mysql php7.3-gd php7.3-imap php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp

Puis redémarrez Apache.

sudo systemctl restart apache2

Étape 4 :Créer une configuration Apache pour phpMyAdmin

Si vous souhaitez accéder à l'interface Web de phpMyAdmin à partir d'un sous-répertoire, créez un extrait de configuration avec la commande suivante.

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

Collez le texte suivant dans le fichier.

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

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

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>

</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>

Enregistrez et fermez le fichier. Activez ensuite cet extrait de configuration.

sudo a2enconf phpmyadmin.conf

Nous devons également créer le dossier temporaire de phpMyAdmin.

sudo mkdir -p /var/lib/phpmyadmin/tmp
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp

Rechargez Apache pour que les modifications prennent effet.

sudo systemctl reload apache2

Vous pouvez maintenant accéder à l'interface Web de phpMyAdmin à l'adresse

your-server-ip/phpmyadmin

Si phpMyAdmin est installé sur votre ordinateur Debian local, vous pouvez accéder à l'interface Web de phpMyAdmin en saisissant le texte suivant dans la barre d'adresse du navigateur.

localhost/phpmyadmin

Si la connexion est refusée ou échoue, il se peut qu'un pare-feu empêche les requêtes HTTP. Si vous utilisez le pare-feu iptables, vous devez exécuter la commande suivante pour ouvrir les ports TCP 80 et 443.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

Si vous utilisez un pare-feu UFW, exécutez cette commande pour ouvrir les ports TCP 80 et 443.

sudo ufw allow http
sudo ufw allow https

Étape 5 :Accéder à phpMyAdmin depuis un sous-domaine

Parfois, vous souhaiterez peut-être utiliser un sous-domaine pour accéder à l'interface Web de phpMyAdmin. De cette façon, vous pouvez activer HTTPS pour chiffrer le trafic.

Tout d'abord, nous devons créer un hôte virtuel Apache pour phpMyAdmin. L'extrait de configuration phpMyAdmin existant peut être utilisé comme modèle. Copions-le dans un nouveau fichier.

sudo cp /etc/apache2/conf-enabled/phpmyadmin.conf /etc/apache2/sites-available/phpmyadmin.conf

Modifiez ensuite le nouveau fichier avec un éditeur de texte en ligne de commande, tel que Nano.

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

Ajoutez les lignes suivantes au début de ce fichier. Remplacez pma.example.com par votre sous-domaine préféré pour phpMyAdmin. N'oubliez pas de créer un enregistrement DNS A pour ce sous-domaine.

<VirtualHost *:80>
    ServerName pma.example.com
    DocumentRoot /usr/share/phpmyadmin

    ErrorLog ${APACHE_LOG_DIR}/pma.error.log
    CustomLog ${APACHE_LOG_DIR}/pma.access.log combined

Ajoutez la ligne suivante à la fin de ce fichier.

</VirtualHost>

Enregistrez et fermez le fichier. (Pour enregistrer un fichier dans l'éditeur de texte Nano, appuyez sur Ctrl+O , puis appuyez sur Entrée pour confirmer. Pour quitter, appuyez sur Ctrl+X .) Activez ensuite cet hôte virtuel.

sudo a2ensite phpmyadmin.conf

Rechargez le serveur Web Apache pour que cette modification prenne effet.

sudo systemctl reload apache2

Vous devriez maintenant pouvoir accéder à l'interface Web de phpMyAdmin via

pma.example.com

Avant de saisir les informations d'identification de l'utilisateur dans le formulaire de connexion, activons HTTPS.

Étape 6 :Activer HTTPS sur phpMyAdmin avec Apache

Pour sécuriser l'interface web de phpMyadmin, nous pouvons installer un certificat Let's Encrypt TLS gratuit. Exécutez la commande suivante pour installer le client Let's Encrypt (certbot) à partir du référentiel de logiciels Debian 10.

sudo apt install certbot python3-certbot-apache

Python3-certbot-apache est le plugin Apache pour Certbot. Exécutez maintenant la commande suivante pour obtenir et installer le certificat TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email [email protected]

Explication :

  • –apache : Utiliser l'authentificateur et le programme d'installation Apache
  • –d'accord  :Acceptez les conditions d'utilisation de Let's Encrypt
  • –redirection  :Ajoutez une redirection 301.
  • –hsts  :Ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP.
  • –agrafe-ocsp  :Active l'agrafage OCSP.
  • –doit-agrafer :Ajoute l'extension OCSP Must Staple au certificat.
  • -d flag est suivi d'une liste de noms de domaine, séparés par une virgule. Vous pouvez ajouter jusqu'à 100 noms de domaine.
  • –e-mail :E-mail utilisé pour l'enregistrement et le contact de récupération.

Il vous sera demandé si vous souhaitez recevoir des e-mails de l'EFF (Electronic Frontier Foundation). Après avoir choisi O ou N, votre certificat TLS sera automatiquement obtenu et configuré pour vous, ce qui est indiqué par le message ci-dessous.

Étape 7 :Exécutez le script d'installation de phpMyAdmin

Entrez ce qui suit dans la barre d'adresse de votre navigateur.

your-server-ip/phpmyadmin/setup

ou

pma.example.com/setup

Cliquez sur New Server bouton pour configurer un serveur.

Cliquez ensuite simplement sur Apply bouton.

Ensuite, cliquez sur le bouton Afficher pour afficher le fichier de configuration.

Dans le /usr/share/phpmyadmin/ répertoire, créez le fichier config.inc.php.

sudo nano /usr/share/phpmyadmin/config.inc.php

Copiez le contenu de config.inc.php depuis la page de configuration de phpMyAdmin et collez-les dans /usr/share/phpmyadmin/config.inc.php fichier.

Étape 8 :Résoudre l'erreur de connexion à phpMyAdmin

Maintenant, si vous essayez de vous connecter à phpMyAdmin avec un compte root MariaDB, vous pouvez voir l'erreur suivante.

#1698 - Access denied for user 'root '@'localhost'

et

mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'

Si vous vous connectez avec l'utilisateur phpmyadmin , vous ne verrez pas l'erreur ci-dessus. Cependant, l'utilisateur phpmyadmin ne peut être utilisé que pour gérer le phpmyadmin base de données. La cause de l'erreur est que, par défaut, l'utilisateur root de MariDB est authentifié via le plugin unix_socket, au lieu d'utiliser le mysql_native_password brancher. Pour résoudre ce problème, nous pouvons créer un autre utilisateur administrateur et accorder tous les privilèges au nouvel utilisateur administrateur.

Connectez-vous au serveur MariaDB à partir de la ligne de commande.

sudo mysql -u root

Créez un utilisateur administrateur avec authentification par mot de passe.

create user [email protected] identified by 'your-preferred-password';

Accordez tous les privilèges sur toutes les bases de données.

grant all privileges on *.* to [email protected] with grant option;

Vider les privilèges et quitter ;

flush privileges;

exit;

Vous pouvez maintenant vous connecter à phpMyAmin avec l'admin compte et gérer toutes les bases de données.

Étape 9 :Configurer le stockage de configuration de phpMyAdmin

Maintenant, dans le panneau de configuration de phpMyAdmin, vous pouvez voir un message d'avertissement.

The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. Find out why. 
Or alternately go to 'Operations' tab of any database to set it up there.

Cliquez sur le lien Découvrir pourquoi. Cliquez ensuite sur le lien Créer pour créer des tables dans phpmyadmin base de données.

Étape 10 :Restreindre l'accès au répertoire /setup

Pour restreindre l'accès au répertoire /setup, nous pouvons activer l'authentification par mot de passe de base avec le serveur Web Apache. Exécutez la commande suivante pour définir un mot de passe pour l'utilisateur admin . /etc/apache2/htpasswd le fichier est utilisé pour stocker les noms d'utilisateur et le mot de passe.

sudo htpasswd -c /etc/apache2/htpasswd admin

Modifiez ensuite le fichier de configuration Apache pour phpMyAdmin

sudo nano /etc/apache2/sites-available/phpmyadmin-le-ssl.conf

ou

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

Ajoutez les lignes suivantes.

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authz_core.c>
        <IfModule mod_authn_file.c>
            AuthType Basic
            AuthName "phpMyAdmin Setup"
            AuthUserFile /etc/apache2/htpasswd
        </IfModule>
        Require valid-user
    </IfModule>
</Directory>

Enregistrez et fermez le fichier. Rechargez ensuite Apache pour que les modifications prennent effet.

sudo systemctl reload apache2

Si vous accédez à nouveau au script de configuration de phpMyAdmin, il vous sera demandé de saisir un nom d'utilisateur et un mot de passe.

Activer l'authentification à deux facteurs

Vous pouvez également renforcer phpMyAdmin en activant l'authentification à deux facteurs, qui est une fonctionnalité ajoutée dans la version 4.8. Pour l'activer, connectez-vous à phpMyAdmin. Allez ensuite dans Settings -> Two-factor authentication et sélectionnez Application d'authentification (2FA) .

Après avoir cliqué sur Configurer l'authentification à deux facteurs bouton, un code QR vous sera présenté, que vous devrez scanner avec une application d'authentification à deux facteurs sur votre téléphone.

Google Authenticator est une application 2FA populaire, mais je recommande FreeOTP, qui est une application 2FA open source développée par Red Hat. Une fois que vous avez entré le code d'authentification généré par votre application 2FA, l'authentification à deux facteurs est activée. Si vous vous déconnectez et vous reconnectez maintenant, vous devez entrer le code d'authentification en plus du nom d'utilisateur et du mot de passe.


Debian
  1. Comment installer phpMyAdmin sur Debian 10 (Buster)

  2. Installer phpMyAdmin avec Apache sur Debian 9 - Processus étape par étape ?

  3. Installer phpMyAdmin sur Ubuntu 20.04 avec Apache

  4. Installer phpMyAdmin sur Debian 11 avec Apache

  5. Installer phpMyAdmin sur Ubuntu 22.04 avec Apache

Comment installer phpMyAdmin avec Apache (LAMP) sur Ubuntu 20.04

Comment installer phpMyAdmin sur Debian 11 Bullseye (Apache)

Comment installer phpMyAdmin sur Debian 10 Buster

Comment installer PostgreSQL sur Debian 10 Buster

Comment installer phpMyAdmin avec Nginx sur Debian 11

Comment installer WordPress avec LAMP sur Debian 10