BlueOnyx : mise à jour PhpMyAdmin

De wikiGite

PhpMyAdmin livré avec BlueOnyx (5.6 à ce jour) est une ancienne version (2.11). Le problème c'est que l'Apache et le PHP de l'interface web (qui ont été isolés si Apache/PHP ont été mis à jour sur le serveur) sont trop anciens pour une phpmyadmin 3.xx (PHP 5.2 minimum requis).

On installe donc un phpmyadmin qu'on déclarera en alias sur l'Apache/PHP "normal" (>5.3) du serveur. Il sera actif dès la création d'un premier virtualhost, puisque l'alias s'appliquera à tous les vhosts du système.

Installer éventuellement :

yum install php-mcrypt

requis par phpmyadmin (mais non-obligatoire).

Charger et décompresser PHPMyadmin (vérifier la dernière version sur http://sourceforge.net/projects/phpmyadmin/ !)

cd /root/install
VER=3.5.1
wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/$VER/phpMyAdmin-$VER-all-languages.tar.bz2
tar -xvjf phpMyAdmin-$VER-all-languages.tar.bz2

L'installer :

cd /usr/share
mv /root/install/phpMyAdmin-$VER-all-languages ./phpmyadmin

Attention au nom du répertoire de destination. Mettre tout en minuscule, pour ne pas écraser le phpmyadmin 2.11 de BlueOnyx, qui est dans le répertoire /usr/share/phpMyAdmin (avec des majuscules).

Initialiser la configuration

cd phpmyadmin
cp -p config.sample.inc.php config.inc.php
vi config.inc.php

Dans la configuration, modifier (voir + bas pour ce qui concerne l'utilsateur "pma") :

$cfg['blowfish_secret'] = '<METTRE ICI LA PASSPHRASE DE VOTRE CHOIX>';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = '<mot de passe utilisateur pma>';

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
$cfg['Servers'][$i]['recent'] = 'pma_recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';

$cfg['DefaultLang'] = 'fr';

Concernant l'utilisateur pma et la base pmadb, ils permettent depuis la version 3 d'utiliser des fonctions avancées, mais nécessite pour ça la création d'un base dédiée.

La base peut être crée simplement par

mysql -p < /usr/share/phpmyadmin/examples/create_tables.sql

Puis se connecter à mysql, créer un utilisateur pma qui a les droits sur cette base

mysql -p
grant all privileges on phpmyadmin.* to 'pma'@'localhost' identified by '<mot de passe utilisateur pma>';
exit

Créer un fichier de configuration pour l'alias

cd /etc/httpd/conf.d
vi phpmyadmin.conf

et y ajouter :

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin/>
php_admin_value safe_mode off
php_admin_value open_basedir /home/:/tmp/:/var/lib/php/session/:/usr/sausalito/configs/php/:/usr/share/phpmyadmin/
Options FollowSymLinks
AllowOverride All
</Directory>

Dès création d'un premier virtualhost (ou via l'IP su serveur pour les warriors :), on y accède par

http://<nom du virtualhost>/phpmyadmin

NOTE : on ne peut pas y accéder en mettant le nom du serveur dans l'URL, car dans ce cas on tombe sur le site par défaut ("preview") sur lequel PHP n'est pas activé.