Bien utiliser phpMyAdmin
Index de la page
- Introduction & Pré-requis
- Installation
- Configuration
- Introduction & Pré-requis :
PhpMyAdmin est un outils web pour administrer / tuner / gérer un ou des servers de bases de données mysql. Les servers de bases de données distants (les servers peuvent être plusieurs ou unique) ou sur le même que le server mysql : server local . Il est développé par l'équipe : http://www.phpmyadmin.net . Ce logiciel vous permet de sauvegarder , restaurer, vos bases, vos data de vos bases, sauvegarder des requêtes que vous créez de les mettres en format php pour les intégrer directement dans vos codes php par exemple.... Pour installer phpMyAdmin il vous faut :
- un server web, j'utilise un server apache version 2.2.11 sous Debian
- php5 package : php5
- php5 avec le mod mysql package : php5-mysql
- php5 avec le module mcrypt package : php5-mcrypt
En option vous pouvez ajouter :
- php5 avec le module gd package php5-gd
Haut
- Installation
Téléchargez toujours la dernière version stable ou en développement sur le site : http://www.phpmyadmin.net/home_page/downloads.php , pensez à visiter le site pour mettre à jour votre version la communauté est très active.
- Créez un répertoire ou se trouve vôtre site ayant un nom différent de phpmyadmin ( pour éviter les robots d'attaques) dans l'exemple je prends : /racine/admin/dbadm/ .
/racine est le root du site soit dans la configuration d'apache : DocumentRoot /racine /racine/admin est le répertoire contenant toutes les applications d'administration (phpMyAdmin , webmin, phpnewsletter, phppgadmin, ...) /racine/admin/dbadm est le répertoire contenant le contenu de phpMyAdmin.
- Décompressé le fichier de la forme phpMyAdmin-version-all-languages.type-compression (ex : phpMyAdmin-3.1.2-rc1-all-languages.tar.gz) dans un répertoire temporaire.
- Entrez dans le répertoire créé par la décompression ( cd phpMyAdmin-version-all-languages )
- Déplacez le contenu dans le répertoire d'hébergement, dans nôtre exemple cela correspond à la commande :
mv .* /racine/admin/dbadm
- Supprimez le répertoire setup ( rm -R /racine/admin/dbadmin/setup/ )
Pour bénéficier pleinement de toutes les possibilités et puissance de phpMyAdmin il faut créer une base de données pour l'application, et affecter les droits (voir plus bas pour la partie authentification). Pour l'exemple je nome la base phpmyadmin.
- Création de la base phpmyadmin :
- Utilisez la commande : mysqladmin -h server.mysql -u root -p CREATE phpmyadmin
- Explication de la commande :
- -h server.mysql correspond au nom du server mysql ici server.mysql si phpMyAdmin est exécuté en local ce switch n'est pas obligatoire.
- -u root mettre le nom de l'utilisateur administrateur des bases de données ici root (le switch -u pour user)
- -p le switch -p pour password si vous n'avez pas de mot de passe vous n'êtes pas obligé de mettre l'options dans la commande. Cependant il est fortement conseillé de mettre un mot de passe.....
- CREATE phpmyadmin : crée la base de donnée phpmyadmin
- Création des tables nécessaires :
- Positionnez vous dans le répertoire scripts (cd /racine/admin/dbadm/scripts)
- Utilisez la commande : mysql -h server.mysql -u root -p -D phpmyadmin < create_tables.sql
- Explication de la commande :
- -h , -u -p comme ci-dessus
- -D phpmyadmin le switch -D permet de déterminer la base de donnée impliquée ici : phpmyadmin
- < create_tables.sql signifie exécuter le script sql (création de tables, procédures stockées, de données) dans la base de donnée.
- Supression du répertoire scripts (rm -R /racine/admin/dbadm/scripts)
- Créez les répertoires :
- tmp (mkdir /racine/admin/bdadm/tmp) sert de répertoire temporaire
- save (mkdir /racine/admin/bdadm/save) sert pour sauvegarder les résultats de requetes sur le server web (menu exportation)
- docSQL (mkdir /racine/admin/bdadm/docSQL) sert à mettre les document sql
- Une alternative : création ou lien symbolique :
- upload (mkdir /racine/admin/bdadm/upload ou ln -sf /racine/admin/dbadm/save upload) sert à "uploader" vos requêtes sql que vous voulez exécuter sur le server (menu importation). Si vous voulez pouvoir exécuter les requêtes que vous exporter sur le server pour les réimporter à partir du server vous devez choisir le lien symbolique.
Il faut biensur répéter l'opération pour tous les servers pris en charge par phpMyAdmin (aussi bien la création de la base que les droits utilisateurs.
Haut
- Configuration
La configuration du logiciel se fait par un unique fichier de configuration nommé : config.inc.php qui comporte un grand nombre de variable. Il faut avoir conscience que si l'outil est mal configuré l'intégrité des bases de données et des sites webs hébergé sur le server web voir le système du server peut être compromis. C'est pourquoi je fait un petit chapritre sur la sécurité.
- Sécurité
Vous pouvez agir sur deux niveaux pour la sécurité sur :
- "configuration apache" : mettre la partie en ssl, puis plus particulièrement la partie vhost verrouillé par authentification apache pour en savoir plus cliquer ici
- "configuration mysql" : accès aux bases
- Authentifications
- Apache définition du login / passwd :
- Il faut mettre / activer le module authentification dbm
- Exemple de protection :
<Directory /racine/admin/dbadm> AuthType Basic AuthName "mettre du blabla" AuthBasicProvider dbm AuthDBMUserFile /lieux/du/fichier/de/passwd/a/mettre/hors/du/site Require valid-user </Directory>
- Sécurisé l'accès aux servers mysqls :
Il est risquer de laisser des comptes de mysql sans mot de passe (globalement après l'installation le login est root sans mot de passe : cas de Debian), donc commercer par mettre des mots de passe. Il est aussi important de ne pas donner tous les droits à tous les comptes. phpMyAdmin utilise un système d'authentification croisé : l'application utilise un login / mot de passe (de façon transparente pour l'utilisateur) à la base de donnée mysql, l'utilisateur lui s'authentifie avec un login / mot de passe pour accéder à ses bases de données qu'il administre. Par mesure de sécurité le login de phpMyAdmin ne peut agir uniquement sur quelques colonnes la table user de la base de donnée mysql en consultation seul (voir la commande cliquez ici) . Cette précaution est du au fait que le login / mot de passe est écrit en clair dans le fichier de configuration de phpMyAdmin : config.inc.php
- Accès à la base de donnée :
- mysql -h savesrv -u root -p
- Création du compte spécifique pour phpMyAdmin :
- Création du compte par exemple : "compte" avec le mot de passe : "mot de passe" en donnant les droits de lecture, ecriture, de modification, de suppression de données à la base phpmyadmin :
- GRANT SELECT,INSERT,UPDATE,DELETE ON phpmyadmin.* to 'compte'@'server.web' IDENTIFIED BY 'mot de passe';
- Droits spécifiques au compte "compte" pour la connexion de phpMyAdmin à la base de donnée mysql :
- GRANT SELECT (Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,Create_priv, Drop_priv, Reload_priv,Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv) ON mysql.user TO 'compte'@'server.web';
Il faut biensur répéter l'opération pour tous les servers pris en charge par phpMyAdmin (aussi bien la création de la base que les droits utilisateurs.
Haut
La suite de la configuration : Cliquez ici pour télécharger mon fichier de configuration. Vous trouverez les lignes à modifier pour les mettre selon vos configurations systèmes et réseaux (nom dns / nombre de servers mysql / le server web) qui seront mises entre # en début de ligne. Vous trouverez des informations complémentaires sur http://www.phpmyadmin.net/pma_localized_docs/fr/Documentation.fr.html#config .
Haut
navigation : Home Page >> Autre >> Vous êtes ici La page a été visitée 587 fois Auteur : wormcs
|