Red Hat et dérivées version SERVEUR

Red Hat 8, Alma Linux 8 : Installer phpMyAdmin

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

phpmyadmin-logo



Introduction



Suite à plusieurs demandes, voici un article pour installer phpMyAdmin sur CentOS.

Je tiens à signaler que phpMyAdmin n'est pas dans les dépôts de CentOS (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(/.*)?"