====== 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 default Apache configuration
Alias /phpmyadmin /var/www/phpmyadmin
#Options FollowSymLinks
#DirectoryIndex index.php
Options ExecCGI Indexes FollowSymLinks MultiViews
AllowOverride All
AuthType Basic
AuthName "phpMyAdmin"
AuthUserFile /etc/apache2/htpasswd.phpmyadmin
Require valid-user
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 .
# Authorize for setup
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/apache2/htpasswd.phpmyadmin
Require valid-user
# Disallow web access to directories that don't need it
Order Deny,Allow
Deny from All
Order Deny,Allow
Deny from All
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 =
Peut être même rajouter cette ligne dans la config phpmyadmin d'Apache dans la section ****
php_admin_value session.gc_maxlifetime
--- //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/]]//