====== 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/]]//