Ceci est une ancienne révision du document !



phpMyAdmin

phpMyAdmin est une interface d'administration pour le SGBD MySQL. Il est écrit en langage PHP et s'appuie sur le serveur HTTP Apache.

Il permet d'administrer les éléments suivants :

  • les bases de données
  • les tables et leurs champs (ajout, suppression, définition du type)
  • les index, les clés primaires et étrangères
  • les utilisateurs de la base et leurs permissions
  • exporter les données dans divers formats (CSV, XML, PDF, OpenDocument, Word, Excel et LaTeX)

Pré-requis

Avoir installé les paquets suivants :

Installation via les dépôts

Installer le paquet phpmyadmin.

Lors de l'installation, il vous sera demandé de préciser quelle version d'Apache vous utilisez (théoriquement la plus récente) afin que ce dernier soit configuré pour s'adapter à phpMyAdmin.

Pour protéger phpMyAdmin, pensez à modifier le mot de passe d'administration. Par défaut celui ci est vide.

sudo htpasswd /etc/phpmyadmin/htpasswd.setup admin

Vous pouvez essayer d'y accéder à l'adresse http://localhost/phpmyadmin. Si la page n'est pas accessible, essayer de lancer

sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin

afin de lier phpmyadmin et votre serveur apache. (Il y a peut être une méthode plus propre ?)

phpMyAdmin est accessible à l'adresse http://localhost/phpmyadmin.

Pour vous connecter, utilisez votre login / mot de passe utilisé avec MySQL. Si aucun nouvel utilisateur n'est créé, vous pouvez utiliser le compte root pour les créer :

  • Utilisateur : root
  • Mot de passe : celui que vous avez défini à l'installation de MySQL

Concernant les problèmes de non accessibilité de PHPMyAdmin, s'assurer auparavant que, lors de l'installation du paquet phpmyadmin, le serveur web souhaité (généralement Apache) a bien été sélectionné lorsque la question a été posée. Sinon, utiliser la commande suivante pour pouvoir répondre à la question à nouveau :

sudo dpkg-reconfigure phpmyadmin

Le paquet crée le lien dans /etc/apache2/conf.d.

Page phpmyadmin non accessible

Il se peut que la page http://localhost/phpmyadmin ne soit pas accessible. Ce problème peut être dû à une mauvaise configuration de votre serveur Apache ou du paquet phpmyadmin. Après chacune des solutions suivantes FIXME , redémarrez le serveur Apache avec cette ligne de commande:

sudo /etc/init.d/apache2 restart

Si le problème persiste, le forum est à votre disposition.

Problème possible : apache cherche par défaut dans "/var/www/phpmyadmin". Il se peut que ce fichier n'existe pas. Solution : sachant que l'installation s'est faite dans "/usr/share/phpmyadmin", il suffit de créer un lien symbolique :

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
Sinon vous pouvez peut être en tous cas ca marche LOL modifier le fichier dans etc/apache2/site enabled trouvez le fichier ooo-default (y en a que un :-) puis vous rajoutez cela allow from localhost après cela Deny from all vous devriez avoir en première ligne donc ceci
            <Directory />
            Deny from all  
              allow from localhost
        </Directory>
        

Ensuite vous redémarrez votre server par un sudo /etc/init.d/apache2 restart voilà ça marche !

Page phpmyadmin non accessible (2)

La configuration de base de phpmyadmin, sous apache, peut se trouver sous /etc/apache2/conf.d/ par lien symbolique à /etc/phpmyadmin/apache.conf

  • Si le lien n'existe pas, le créer
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
  • Il est préférable de modifier l'Alias, par un nom moins commun que phpmyadmin, très fréquemment attaqué, par les robots pirates (bad_bot)
  • Renseigner explicitement (Order) les autorisations (Allow) et/ou les interdictions (Deny), sinon Apache interdira par défaut si rien est précisé.

Exemple à adapter: Avec les droits d'administration, éditez le fichier /etc/apache2/conf.d/phpmyadmin.conf

 gksudo gedit /etc/apache2/conf.d/phpmyadmin.conf 
phpmyadmin.conf
Alias /elephant-bleu /usr/share/phpmyadmin
 
<Directory /usr/share/phpmyadmin>
 
SetEnvIfNoCase User-Agent "^ZmEu" bad_bot
SetEnvIfNoCase User-Agent "^BackDoorBot" bad_bot
SetEnvIfNoCase user-agent "^BlackWidow" bad_bot 
SetEnvIfNoCase User-Agent "^BotALot" bad_bot
SetEnvIfNoCase User-Agent "^Cegbfeieh" bad_bot
SetEnvIfNoCase user-agent "^ChinaClaw" bad_bot 
SetEnvIfNoCase User-Agent "^CopyRightCheck" bad_bot
SetEnvIfNoCase user-agent "^Custo" bad_bot 
SetEnvIfNoCase user-agent "^DISCo" bad_bot 
SetEnvIfNoCase user-agent "^Download\ Demon" bad_bot 
SetEnvIfNoCase user-agent "^eCatch" bad_bot 
SetEnvIfNoCase user-agent "^EirGrabber" bad_bot 
SetEnvIfNoCase user-agent "^EmailSiphon" bad_bot 
SetEnvIfNoCase user-agent "^EmailWolf" bad_bot 
SetEnvIfNoCase user-agent "^Express\ WebPictures" bad_bot 
SetEnvIfNoCase user-agent "^ExtractorPro" bad_bot 
SetEnvIfNoCase user-agent "^EyeNetIE" bad_bot 
SetEnvIfNoCase user-agent "^FlashGet" bad_bot 
SetEnvIfNoCase user-agent "^GetRight" bad_bot 
SetEnvIfNoCase user-agent "^GetWeb!" bad_bot 
SetEnvIfNoCase user-agent "^Go!Zilla" bad_bot 
SetEnvIfNoCase user-agent "^Go-Ahead-Got-It" bad_bot 
SetEnvIfNoCase user-agent "^GrabNet" bad_bot 
SetEnvIfNoCase user-agent "^Grafula" bad_bot 
SetEnvIfNoCase user-agent "^HMView" bad_bot 
SetEnvIfNoCase user-agent "HTTrack" bad_bot 
SetEnvIfNoCase user-agent "^Image\ Stripper" bad_bot 
SetEnvIfNoCase user-agent "Indy\ Library" [NC,OR] 
SetEnvIfNoCase user-agent "^InterGET" bad_bot 
SetEnvIfNoCase user-agent "^Internet\ Ninja" bad_bot 
SetEnvIfNoCase user-agent "^JetCar" bad_bot 
SetEnvIfNoCase user-agent "^JOC\ Web\ Spider" bad_bot 
SetEnvIfNoCase user-agent "^larbin" bad_bot 
SetEnvIfNoCase user-agent "^LeechFTP" bad_bot 
SetEnvIfNoCase User-Agent "^libwww-perl" bad_bot
SetEnvIfNoCase user-agent "^Mass\ Downloader" bad_bot 
SetEnvIfNoCase user-agent "^MIDown\ tool" bad_bot 
SetEnvIfNoCase user-agent "^Mister\ PiX" bad_bot 
SetEnvIfNoCase user-agent "^Navroad" bad_bot 
SetEnvIfNoCase user-agent "^NearSite" bad_bot 
SetEnvIfNoCase user-agent "^NetAnts" bad_bot 
SetEnvIfNoCase user-agent "^NetSpider" bad_bot 
SetEnvIfNoCase user-agent "^Net\ Vampire" bad_bot 
SetEnvIfNoCase user-agent "^NetZIP" bad_bot 
SetEnvIfNoCase user-agent "^Octopus" bad_bot 
SetEnvIfNoCase user-agent "^Offline\ Explorer" bad_bot 
SetEnvIfNoCase user-agent "^Offline\ Navigator" bad_bot 
SetEnvIfNoCase User-Agent "^Openfind" bad_bot
SetEnvIfNoCase user-agent "^PageGrabber" bad_bot 
SetEnvIfNoCase user-agent "^Papa\ Foto" bad_bot 
SetEnvIfNoCase user-agent "^pavuk" bad_bot 
SetEnvIfNoCase user-agent "^pcBrowser" bad_bot 
SetEnvIfNoCase user-agent "^RealDownload" bad_bot 
SetEnvIfNoCase user-agent "^ReGet" bad_bot 
SetEnvIfNoCase user-agent "^SiteSnagger" bad_bot 
SetEnvIfNoCase user-agent "^SmartDownload" bad_bot 
SetEnvIfNoCase User-Agent "^SpankBot" bad_bot
SetEnvIfNoCase user-agent "^SuperBot" bad_bot 
SetEnvIfNoCase user-agent "^SuperHTTP" bad_bot 
SetEnvIfNoCase user-agent "^Surfbot" bad_bot 
SetEnvIfNoCase user-agent "^tAkeOut" bad_bot 
SetEnvIfNoCase user-agent "^Teleport\ Pro" bad_bot 
SetEnvIfNoCase User-Agent "^Titan" bad_bot
SetEnvIfNoCase user-agent "^VoidEYE" bad_bot 
SetEnvIfNoCase user-agent "^Web\ Image\ Collector" bad_bot 
SetEnvIfNoCase user-agent "^Web\ Sucker" bad_bot 
SetEnvIfNoCase user-agent "^WebAuto" bad_bot 
SetEnvIfNoCase User-Agent "^WebBandit" bad_bot
SetEnvIfNoCase user-agent "^WebCopier" bad_bot 
SetEnvIfNoCase user-agent "^WebFetch" bad_bot 
SetEnvIfNoCase user-agent "^WebGo\ IS" bad_bot 
SetEnvIfNoCase user-agent "^WebLeacher" bad_bot 
SetEnvIfNoCase user-agent "^WebReaper" bad_bot 
SetEnvIfNoCase user-agent "^WebSauger" bad_bot 
SetEnvIfNoCase user-agent "^Website\ eXtractor" bad_bot 
SetEnvIfNoCase user-agent "^Website\ Quester" bad_bot 
SetEnvIfNoCase User-Agent "^Webster Pro" bad_bot
SetEnvIfNoCase user-agent "^WebStripper" bad_bot 
SetEnvIfNoCase user-agent "^WebWhacker" bad_bot 
SetEnvIfNoCase user-agent "^WebZIP" bad_bot 
SetEnvIfNoCase user-agent "^Wget" bad_bot 
SetEnvIfNoCase user-agent "^Widow" bad_bot 
SetEnvIfNoCase user-agent "^WWWOFFLE" bad_bot 
SetEnvIfNoCase user-agent "^Xaldon\ WebSpider" bad_bot 
SetEnvIfNoCase user-agent "^Zeus" bad_bot 	
 
  	#Order Allow,Deny
	#Allow from all
	#Deny from env=bad_bot

        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
 
        Options +Indexes +FollowSymLinks -ExecCGI
        AllowOverride None
 
	#basculer en https si virtualhost en 443 existe
        #RewriteEngine on
	#RewriteCond %{HTTPS} off
	#RewriteRule (.*) https://%{HTTP_HOST}/elephant-bleu/index.php [NC,R,L]

	<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 /usr/share/phpmyadmin/setup>
    <IfModule mod_authn_file.c>
    AuthType Basic
    AuthName "phpMyAdmin Setup"
    AuthUserFile /etc/phpmyadmin/htpasswd.setup
    </IfModule>
    Require valid-user
</Directory>
 
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
    Order Deny,Allow
    Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Order Deny,Allow
    Deny from All
</Directory>

Pour recharger la configuration Apache

sudo apache2ctl configtest && sudo service apache2 reload && sudo service apache2 status

http://127.0.0.1/elephant-bleu

Certains préfèreront intégrer directement l'Alias dans le Virtualhost. Dans ce cas là, le lien symbolique ne sert à rien.

Fonctionnalités sur les tables reliées désactivées

Si vous avez le message d'erreur suivant

Certaines fonctionnalités ayant trait aux tables reliées sont désactivées. Pour une analyse du problème, cliquez ici.
  1. Ouvrez le fichier /etc/phpmyadmin/config.inc.php ;
  2. Cherchez la ligne
        $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
  3. Ajoutez la ligne
        $cfg['Servers'][$i]['tracking'] = 'pma_tracking';
  4. Déconnectez puis reconnectez vous de phpMyAdmin.

> Impossible d'ajouter un utilisateur

Si le compte root ne peut pas ajouter de nouveaux utilisateurs ou si vous obtenez un message d'erreur similaire :

ERROR 1290 (HY000): The MySQL server is running with the –skip-grant-tables option so it cannot execute this statement

Il est possible que vous ayez fait une installation incomplète ou partielle.

  1. Supprimez le paquet (et sa configuration) mysql-server-5.1 ;
  2. Redémarrez ;
  3. Réinstallez MySQL ;
  4. Réinstallez phpMyAdmin.

FIXME, ne disposant pas de connaissances MySQL avancées, c'est la seule façon que j'ai trouvé pour résoudre. Si vous connaissez une solution moins radicale, veuillez remplacer ce que j'ai indiqué.

Créer un lien vers phpmyadmin

Il se peut que l'installation n'ait pas créé le lien symbolique permettant d'accéder à phpmyadmin, il faut alors le créer manuellement :

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

Reconfigurer le paquet phpmyadmin

Ouvrez un terminal, entrez

sudo dpkg-reconfigure phpmyadmin

et veillez à sélectionner la version de votre serveur HTTP (apache2 normalement).

Il faut impérativement le faire en utilisant la barre d'espace avant de faire "Enter", sans quoi cela ne marche pas. Une astérisque apparait alors dans le rectangle rouge à côté de "apache2".

Paramétrez le serveur apache2

Il se peut que l'installation du paquet phpMyAdmin n'ait pas inclus son en-tête de configuration pour le serveur apache. Rajoutez la ligne nécessaire pour qu'il soit pris en compte :

sudo echo -e '\n#phpmyadmin\nInclude /etc/phpmyadmin/apache.conf' >> /etc/apache2/apache2.conf

Redémarrez le serveur apache et réessayez.

Pour supprimer cette application, il suffit de supprimer son paquet. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.

Vous pouvez consulter les sites suivants pour obtenir un complément d'information…


Contributeurs : Guigouz, McPeter

  • phpmyadmin.1395167499.txt.gz
  • Dernière modification: Le 18/03/2014, 19:31
  • par 0ol