Red Hat 8, Alma Linux 8 : Installer phpMyAdmin
Table des matières
Suite à plusieurs demandes, voici un article pour installer phpMyAdmin sur son système.
Je tiens à signaler que phpMyAdmin n'est pas dans les dépôts de Red Hat et dérivées telles que Alma Linux, Rocky Linux (qui est plus réservée à des professionnels que Debian).
Je n'utilise pas phpMyAdmin à titre personnel, je préfère utiliser la console MySQL.
Evidemment, pour administrer votre base de données il faut avoir installé un serveur Apache, PHP et MariaDB comme indiqué ici : https://www.linuxtricks.fr/wiki/centos-installer-et-configurer-un-serveur-lamp-7-et-8
Un accès en HTTP est suffisant, même si HTTPS est recommandé !
On se rend sur le site de phpMyAdmin : https://www.phpmyadmin.net/downloads/ et on télécharge la dernière version.
On va installer phpMyAdmin dans /usr/share/phpmyadmin (je vais faire comme sous Debian)
Au moment où j'écris l'article, la dernière version est la 5.0.2, mais remplacer avec wget la bonne version :
On décompresse phpMyAdmin :
On renomme le répertoire en phpmyadmin (sans majuscules, sans numéro de version) :
On peut supprimer l'archive tar.gz ;
phpMyAdmin va avoir besoin d'un dossier pour placer ses fichiers temporaires, on va créer cela :
Et on affecte les bons droits à /var/lib/phpmyadmin (apache) :
On va ensuite créer le fichier de configuration principal en s'appuyant sur le modèle fourni :
On va l'éditer :
On aura besoin de compléter cette ligne :
Vous devez générer une passphrase de 32 caractères, je vous offre une commande vous sortant 32 caractères :
Chez moi, ça fait donc
On va aussi ajouter la ligne suivante (sinon vous aurez une erreur une fois phpMyAdmin lancé) pour configurer notre dossier temporaire, à mettre où vous voulez :
On va maintenant configurer un fichier spécifique pour phpMyAdmin :
On va définir un alias, /phpmyadmin pointant sur notre phpmyadmin (par sécurité, vous pouvez changer l'alias)
Au lieu de Require all granted vous pouvez mettre uniquement une IP ou un réseau autorisé à accéder à phpmyadmin, comme Require ip 192.168.21.0/24 ou Require ip 1.2.3.4 !
Vous pouvez vérifier que la config est bonne via
Si tout est OK, redémarrez apache :
Et voila on peut accéder à phpMyAdmin via
Si vous utilisez SELinux, il est possible que l'accès soit refusé à phpMyAdmin.
Il va donc falloir ajouter à l'arborescence /usr/share/phpmyadmin le contexte SELinux permettant à apache d'accéder au dossier :
Introduction
Suite à plusieurs demandes, voici un article pour installer phpMyAdmin sur son système.
Je tiens à signaler que phpMyAdmin n'est pas dans les dépôts de Red Hat et dérivées telles que Alma Linux, Rocky Linux (qui est plus réservée à des professionnels que Debian).
Je n'utilise pas phpMyAdmin à titre personnel, je préfère utiliser la console MySQL.
Prérequis
Evidemment, pour administrer votre base de données il faut avoir installé un serveur Apache, PHP et MariaDB comme indiqué ici : https://www.linuxtricks.fr/wiki/centos-installer-et-configurer-un-serveur-lamp-7-et-8
Un accès en HTTP est suffisant, même si HTTPS est recommandé !
Installer phpMyAdmin
On se rend sur le site de phpMyAdmin : https://www.phpmyadmin.net/downloads/ et on télécharge la dernière version.
On va installer phpMyAdmin dans /usr/share/phpmyadmin (je vais faire comme sous Debian)
Code BASH :
cd /usr/share
Au moment où j'écris l'article, la dernière version est la 5.0.2, mais remplacer avec wget la bonne version :
Code BASH :
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.tar.gz
On décompresse phpMyAdmin :
Code BASH :
tar -xf phpMyAdmin-*.tar.gz
On renomme le répertoire en phpmyadmin (sans majuscules, sans numéro de version) :
Code BASH :
mv phpMyAdmin-5.0.2-all-languages phpmyadmin
On peut supprimer l'archive tar.gz ;
Code BASH :
rm phpMyAdmin*.tar.gz
phpMyAdmin va avoir besoin d'un dossier pour placer ses fichiers temporaires, on va créer cela :
Code BASH :
mkdir -p /var/lib/phpmyadmin/tmp
Et on affecte les bons droits à /var/lib/phpmyadmin (apache) :
Code BASH :
chown -R apache:apache /var/lib/phpmyadmin
Configurer phpMyAdmin
On va ensuite créer le fichier de configuration principal en s'appuyant sur le modèle fourni :
Code BASH :
cd /usr/share/phpmyadmin/ cp config.sample.inc.php config.inc.php
On va l'éditer :
Code BASH :
vi config.inc.php
On aura besoin de compléter cette ligne :
Code PHP :
$cfg['blowfish_secret'] = '';
Vous devez générer une passphrase de 32 caractères, je vous offre une commande vous sortant 32 caractères :
Code BASH :
date +%s | sha256sum | base64 | head -c32
Chez moi, ça fait donc
Code PHP :
$cfg['blowfish_secret'] = 'ZWZhNWI5OTU1ZDAzNGRhMjYxM2FiYmEw';
On va aussi ajouter la ligne suivante (sinon vous aurez une erreur une fois phpMyAdmin lancé) pour configurer notre dossier temporaire, à mettre où vous voulez :
Code PHP :
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
Configurer Apache
On va maintenant configurer un fichier spécifique pour phpMyAdmin :
Code BASH :
vi /etc/httpd/conf.d/phpmyadmin.conf
On va définir un alias, /phpmyadmin pointant sur notre phpmyadmin (par sécurité, vous pouvez changer l'alias)
Code BASH :
Alias /phpmyadmin /usr/share/phpmyadmin/ <Directory /usr/share/phpmyadmin/> AddDefaultCharset UTF-8 Require all granted </Directory>
Au lieu de Require all granted vous pouvez mettre uniquement une IP ou un réseau autorisé à accéder à phpmyadmin, comme Require ip 192.168.21.0/24 ou Require ip 1.2.3.4 !
Vous pouvez vérifier que la config est bonne via
Code BASH :
apachectl configtest
Si tout est OK, redémarrez apache :
Code BASH :
systemctl restart httpd
Et voila on peut accéder à phpMyAdmin via
Code TEXT :
http://votreserveur/phpmyadmin
Bonus SELinux
Si vous utilisez SELinux, il est possible que l'accès soit refusé à phpMyAdmin.
Il va donc falloir ajouter à l'arborescence /usr/share/phpmyadmin le contexte SELinux permettant à apache d'accéder au dossier :
Code BASH :
semanage fcontext -a -t httpd_sys_content_t "/usr/share/phpmyadmin(/.*)?"