Recherche de site Web

Comment installer et sécuriser phpMyAdmin sur Alma Linux 8


phpMyAdmin est une application de gestion de bases de données gratuite et open source pour MySQL et MariaDB. Il vous permet de gérer, d'effectuer diverses tâches liées à la base de données et d'exécuter des requêtes à partir d'une interface Web. Il est écrit en PHP et fournit une interface robuste et conviviale pour gérer des bases de données via un navigateur Web. Il est multiplateforme et peut fonctionner sur de nombreux systèmes d'exploitation, notamment Windows, macOS, Linux et BSD.

Dans ce tutoriel, vous apprendrez comment installer phpMyAdmin sur Alma Linux 8.

Conditions préalables

  • Un serveur exécutant Alma Linux 8.
  • Nom de domaine valide pointé avec l'adresse IP de votre serveur.
  • Un mot de passe root est configuré sur le serveur.

Installer le serveur LEMP

Tout d'abord, installez le serveur Web Nginx et le serveur de base de données MariaDB avec la commande suivante :

dnf install nginx mariadb -y

Ensuite, installez le dépôt Remi PHP avec la commande suivante :

dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Ensuite, désactivez le module PHP par défaut et activez le module PHP Remi avec la commande suivante :

dnf module -y reset php
dnf module install php:remi-7.4 -y

Ensuite, installez PHP avec les autres extensions requises à l'aide de la commande suivante :

dnf install php php-cli php-common php-fpm php-curl php-gd php-mbstring php-process php-snmp php-xml php-zip php-memcached php-mysqlnd php-json php-mbstring php-pdo php-pdo-dblib php-xml unzip wget -y

Une fois tous les packages installés, éditez le fichier de configuration PHP-FPM :

nano /etc/php-fpm.d/www.conf

Changez l'utilisateur et le groupe d'Apache en Nginx :

user = nginx
group = nginx

Enregistrez et fermez le fichier, puis démarrez et activez les services Nginx, MariaDB et PHP-FPM avec la commande suivante :

systemctl start nginx php-fpm mariadb
systemctl enable nginx php-fpm mariadb

Créer un utilisateur pour phpMyAdmin

Ensuite, il est recommandé de créer un utilisateur distinct pour que phpMyAdmin effectue toutes les tâches de gestion de base de données. Tout d’abord, sécurisez MariaDB en exécutant la commande suivante :

mysql_secure_installation

Ce script définira un mot de passe root, supprimera les utilisateurs anonymes, interdira la connexion root à distance et supprimera la base de données de test comme indiqué ci-dessous :

Set root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Ensuite, connectez-vous à MariaDB avec la commande suivante :

mysql

Une fois connecté, créez une base de données et un utilisateur avec la commande suivante :

MariaDB [(none)]> CREATE DATABASE phpmyadmin CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'password';

Ensuite, accordez tous les privilèges à l'utilisateur administrateur :

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%';

Ensuite, videz les privilèges et quittez la console MariaDB avec la commande suivante :

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Installer phpMyAdmin sur Alma Linux 8

Ensuite, téléchargez la dernière version de phpMyAdmin depuis leur site officiel :

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

Une fois le téléchargement terminé, décompressez le fichier téléchargé avec la commande suivante :

unzip phpMyAdmin-5.1.3-all-languages.zip

Ensuite, déplacez le répertoire extrait vers le répertoire racine Web de Nginx :

mv phpMyAdmin-5.1.3-all-languages /usr/share/nginx/phpmyadmin

Ensuite, copiez l'exemple de fichier de configuration à l'aide de la commande suivante :

cp /usr/share/nginx/phpmyadmin/config{.sample,}.inc.php

Ensuite, modifiez le fichier de configuration à l'aide de la commande suivante :

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

Définissez votre secret comme indiqué ci-dessous :

$cfg['blowfish_secret'] = 'securekey';

Enregistrez et fermez le fichier puis modifiez la propriété du répertoire phpMyAdmin :

chown -R nginx:nginx /usr/share/nginx/phpmyadmin
chown -R nginx:nginx /var/lib/php/session/

Configurer Nginx pour phpMyAdmin

Ensuite, vous devrez créer un fichier de configuration d'hôte virtuel Nginx pour phpMyAdmin. Vous pouvez le créer avec la commande suivante :

nano /etc/nginx/conf.d/phpmyadmin.conf

Ajoutez les lignes suivantes :

server {
    listen       80;
    server_name  phpmyadmin.example.com;
    root         /usr/share/nginx/phpmyadmin;
    
    access_log /var/log/nginx/phpmyadmin_access.log;
    error_log /var/log/nginx/phpmyadmin_error.log;

    index   index.php;

    location / {
        try_files    $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
         try_files $uri =404;
         fastcgi_intercept_errors on;
         include        fastcgi_params;
         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
         fastcgi_pass unix:/run/php-fpm/www.sock;
     }
}

Enregistrez et fermez le fichier, puis vérifiez Nginx pour toute erreur de configuration de syntaxe avec la commande suivante :

nginx -t

Vous obtiendrez le résultat suivant :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, redémarrez le service Nginx pour appliquer les modifications :

systemctl restart nginx php-fpm

Vous pouvez maintenant vérifier l'état de Nginx à l'aide de la commande suivante :

systemctl status nginx

Vous devriez voir le résultat suivant :

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           ??php-fpm.conf
   Active: active (running) since Fri 2022-04-15 10:06:39 UTC; 3s ago
  Process: 85445 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 85443 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 85442 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 85449 (nginx)
    Tasks: 2 (limit: 11412)
   Memory: 3.8M
   CGroup: /system.slice/nginx.service
           ??85449 nginx: master process /usr/sbin/nginx
           ??85450 nginx: worker process

Apr 15 10:06:39 linux systemd[1]: nginx.service: Succeeded.
Apr 15 10:06:39 linux systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Apr 15 10:06:39 linux systemd[1]: Starting The nginx HTTP and reverse proxy server...
Apr 15 10:06:39 linux nginx[85443]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Apr 15 10:06:39 linux nginx[85443]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Apr 15 10:06:39 linux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Apr 15 10:06:39 linux systemd[1]: Started The nginx HTTP and reverse proxy server.

Configurer le pare-feu

Ensuite, vous devrez autoriser le service HTTP via le pare-feu. Vous pouvez l'autoriser avec la commande suivante :

firewall-cmd --permanent --zone public --add-service http

Ensuite, rechargez le pare-feu pour appliquer les modifications :

firewall-cmd --reload

Accéder à l'interface utilisateur Web de phpMyAdmin

Maintenant, ouvrez votre navigateur Web et accédez à phpMyAdmin en utilisant l'URL http://phpmyadmin.example.com. Vous devriez voir la page de connexion de phpMyAdmin :

Fournissez votre nom d'utilisateur et votre mot de passe administrateur, puis cliquez sur le bouton Go. Une fois connecté, vous devriez voir le tableau de bord phpMyAdmin :

Cliquez sur le bouton Bases de données. Vous devriez voir la page suivante :

Fournissez le nom de la base de données que vous souhaitez créer et cliquez sur le bouton Créer.

Sélectionnez les bases de données que vous souhaitez supprimer et cliquez sur le bouton Supprimer pour supprimer une base de données. Vous devriez voir la page suivante :

Cliquez sur le bouton OK pour confirmer et supprimer les bases de données sélectionnées.

Conclusion

Toutes nos félicitations! vous avez installé avec succès phpMyAdmin avec Nginx sur Alma Linux 8. Vous pouvez désormais gérer vos bases de données MySQL et MariaDB via un navigateur Web. N'hésitez pas à me demander si vous avez des questions.

Articles connexes: