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 -yEnsuite, installez le dépôt Remi PHP avec la commande suivante :
dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpmEnsuite, 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 -yUne fois tous les packages installés, éditez le fichier de configuration PHP-FPM :
nano /etc/php-fpm.d/www.confChangez 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 mariadbCré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_installationCe 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 :
mysqlUne 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.zipUne fois le téléchargement terminé, décompressez le fichier téléchargé avec la commande suivante :
unzip phpMyAdmin-5.1.3-all-languages.zipEnsuite, déplacez le répertoire extrait vers le répertoire racine Web de Nginx :
mv phpMyAdmin-5.1.3-all-languages /usr/share/nginx/phpmyadminEnsuite, copiez l'exemple de fichier de configuration à l'aide de la commande suivante :
cp /usr/share/nginx/phpmyadmin/config{.sample,}.inc.phpEnsuite, modifiez le fichier de configuration à l'aide de la commande suivante :
nano /usr/share/nginx/phpmyadmin/config.inc.phpDé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.confAjoutez 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-fpmVous pouvez maintenant vérifier l'état de Nginx à l'aide de la commande suivante :
systemctl status nginxVous 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 httpEnsuite, rechargez le pare-feu pour appliquer les modifications :
firewall-cmd --reloadAccé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.




