Table des matières

PhpMyAdmin

PhpMyAdmin est une interface web permettant de gérer nos bases de données. Debian nous permet de l’installer directement via ses paquets mais malheureusement la version proposé n’est jamais la dernière et c’est un peu décevant de ne pas profiter des dernières amélioration.

Nous allons donc résoudre ce problème.

Installation

Désinstallez le paquet debian phpmyadmin si vous ne l’avez pas encore fait via la commande

aptitude remove phpmyadmin
Lors de la désinstallation, le gestionnaire de paquet vous pose une question importante !!
Répondez non
Une grosse doc explique comment configurer phpmyadmin ;)
https://phpmyadmin-french.readthedocs.org/en/latest/setup.html

Télécharger la dernière version de phpmyadmin sur www.phpmyadmin.net

Décompresser le fichier phpMyAdmin-4.0.4-all-languages.tar.gz dans un répertoire (/var/www/phpmyadmin dans l’exemple).

Donnez les droits pour apache2

chown -R www-data.www-data /var/www/phpmyadmin

Créer un répertoire /var/www/phpmyadmin/config et lui donner les droits d’accès 777.

cd phpmyadmin
mkdir config
chmod o+rw config

Créez un fichier contenant cotre mot de passe

htpasswd /etc/apache2/htpasswd.phpmyadmin admin
chmod 644 /etc/apache2/htpasswd.phpmyadmin

Créons la config dans apache2

vi /etc/apache2/sites-available/phpmyadmin
phpmyadmin
# phpMyAdmin default Apache configuration
 
Alias /phpmyadmin /var/www/phpmyadmin
 
<Directory /var/www/phpmyadmin>
        #Options FollowSymLinks
        #DirectoryIndex index.php
        Options ExecCGI Indexes FollowSymLinks MultiViews
        AllowOverride All
 
 
            <IfModule mod_authn_file.c>
            AuthType Basic
            AuthName "phpMyAdmin"
            AuthUserFile /etc/apache2/htpasswd.phpmyadmin
            </IfModule>
            Require valid-user
 
 
        <IfModule mod_php5.c>
                AddType application/x-httpd-php .php
 
                php_flag magic_quotes_gpc Off
                php_flag track_vars On
                php_flag register_globals Off
                php_value include_path .
        </IfModule>
 
</Directory>
 
# Authorize for setup
<Directory /var/www/phpmyadmin/setup>
    <IfModule mod_authn_file.c>
    AuthType Basic
    AuthName "phpMyAdmin Setup"
    AuthUserFile /etc/apache2/htpasswd.phpmyadmin
    </IfModule>
    Require valid-user
</Directory>
 
# Disallow web access to directories that don't need it
<Directory /var/www/phpmyadmin/libraries>
    Order Deny,Allow
    Deny from All
</Directory>
<Directory /var/www/phpmyadmin/setup/lib>
    Order Deny,Allow
    Deny from All
</Directory>

Activez phpmyadmin dans apache

a2ensite phpmyadmin
service apache2 reload

Dans le navigateur de votre choix, utiliser l’URL suivante pour configurer phpMyAdmin :

http://url_ou_ip_du_serveur/phpmyadmin/setup

Une fois votre config sauvegardé, vous n’utiliserez probablement plus ce setup. Soit vous sécurisez l’accès à ce répertoire, soit vous le supprimez.

rm -fr /var/www/phpmyadmin/setup

Copiez le fichier de config que le setup vous a généré et supprimez le répertoire config.

cp config/config.inc.php .
chown www-data.www-data config.inc.php
chmod o-rw config.inc.php
rm -fr config/

Activer le stockage de vos paramètres

Copiez collez la partie suivante du fichier config.sample.inc.php dans votre config.inc.php

/*
 * phpMyAdmin configuration storage settings.
 */
 
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
 
/* Storage database and tables */
// $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';
/* Contrib / Swekey authentication */
// $cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';

Et dé-commentez toutes les lignes commençant par un double slash sauf la dernière

Créé un utilisateur pma et renseignez le bon mot de passe.

Allez dans le répertoire examples et exécutez les commandes suivantes.

cd examples
# mysql -u root -p < create_tables.sql
# mysql -u root -p < upgrade_tables_mysql_4_1_2+.sql

N’oubliez pas de vous déconnecter de phpmyadmin, au mieux de supprimer les cookies et de vous reconnecter pour que votre config soit prise en compte.

Fichier de config

Si vous avez installé php avec suhosin et que vous voulez désactivez le message d’avertissement, ajoutez ceci

$cfg['SuhosinDisableWarning'] = true;

Si vous utilisez des Vues (ou Views) dans vos bases de données, phpmyadmin peut devenir très lent à l’ouverture car il cherche à savoir le nombre de données disponible dans une vue.
Pour éviter ce calcul qui selon moi est inutile, ajoutez ceci

$cfg['MaxExactCountViews'] = 0;

Pour activer l’historique des requêtes SQL, ajoutez ceci

$cfg['QueryHistoryDB'] = true;
// La longueur de l'historique. Par défaut = 25
$cfg['QueryHistoryMax'] = 100;

Tous les paramètres sont disponibles en français par là ⇒ https://phpmyadmin-french.readthedocs.org/fr/latest/config.html#generic-settings

Prolonger le temps de session

Après une installation fraiche de phpMyAdmin, voilà à quoi on est confronté à longueur de journée :

Aucune activité depuis 1440 secondes ou plus, veuillez vous reconnecter.

Très énervant.

phpMyAdmin vous déconnecte toutes les 1440 secondes, soit 24min, soit très rapidement.

Donc pour aller vite, trouvez votre config.inc.php et ajoutez ces lignes :

  $sessionDuration = 60*60*24*7;
  ini_set('session.gc_maxlifetime', $sessionDuration);
  $cfg['LoginCookieValidity'] = $sessionDuration;

Ici on définit une durée d’une semaine.
On affecte cette durée au paramètre d’expiration de session de PHP.
On affecte cette durée au paramètre d’expiration de session de phpMyAdmin.

Parfois ça ne suffit pas… Il faut ajouter ou modifier la ligne suivante dans votre php.ini

session.gc_maxlifetime = <seconds>

Peut être même rajouter cette ligne dans la config phpmyadmin d’Apache dans la section <Directory>

php_admin_value session.gc_maxlifetime <seconds>

source : http://rorto.wordpress.com/2013/05/29/augmenter-la-duree-de-vie-dune-session-phpmyadmin/
source : http://www.joho.se/2011/11/07/increasing-the-phpmyadmin-session-timeout/