Admin pb connexion » Historique » Révision 9
Révision 8 (Marc Leygnac, 03/02/2016 11:09) → Révision 9/10 (Stéphane Boireau, 03/02/2016 15:12)
h1. Je ne peux plus me connecter en administrateur h2. Généralités Il peut y avoir plusieurs causes: ** Erreur sur le mot de passe ** Le compte est désactivé ** auth_mode incorrect ** La base de données a souffert suite à une extinction brutale du serveur h2. Avec un deuxième administrateur Si vous disposez d'un deuxième compte administrateur, il peut vous permettre d'examiner la situation dans > Gestion des bases/Comptes d'utilisateurs/Personnels Vous pourrez modifier le mot de passe, rendre actif le compte, modifier le mode d'authentification si nécessaire. Sinon, vous devrez disposer d'un accès à une console MySQL ou à phpMyAdmin h2. Avec phpMyAdmin h3. Erreur sur le mot de passe Vous pouvez modifier le mot de passe à l'aide d'une requête à Exécuter dans dans l'onglet SQL: > UPDATE utilisateurs SET password=md5('azerty'), salt='' where login='admin'; Vous pouvez choisir autre chose qu'azerty comme mot de passe. Remarque : Vous pouvez aussi préciser si le compte devra changer de mot de passe à la première connexion: > UPDATE utilisateurs SET change_mdp='y' where login='admin'; h3. Le compte est désactivé Vous pouvez activer le compte à l'aide d'une requête à Exécuter dans dans l'onglet SQL: > UPDATE utilisateurs SET etat='actif' where login='admin'; h3. auth_mode incorrect L'authentification dans Gepi peut s'appuyer sur: ** la base MySQL de Gepi: auth_mode=gepi ** Un annuaire LDAP: auth_mode=gepi Le fichier secure/config_ldap.inc.php doit être renseigné ** Une authentification CAS: auth_mode=sso Le fichier secure/config_cas.inc.php doit être renseigné Vous pouvez modifier le mode d'authentification à l'aide d'une requête à Exécuter dans dans l'onglet SQL: > UPDATE utilisateurs SET auth_mode='gepi' where login='admin'; Remarques: ** Les fichiers secure/config_*.inc.php n'existent pas par défaut dans le dossier secure. Il faut les créer d'après les modèles situés dans secure/modeles/ et supprimer la chaine '-modele' dans le nom du fichier. secure/modeles/config_cas-modele.inc.php deviendra par exemple secure/config_cas.inc.php ** Dans le cas d'un Gepi module/plugin sur un serveur LCS, le auth_mode est sso, mais on n'utilise pas un serveur CAS. C'est un autre dispositif qui est utilisé. ** Pour qu'une authentification sur la base mysql fonctionne (auth_mode=gepi), il ne faut pas avoir désactivé ce mode d'authentification (cf le conseil plus bas) h3. et sans phpMyAdmin ? Si vous avez accès en écriture au dossier du serveur contenant Gepi vous pouvez exécuter l'une des requêtes précédentes de la façon suivante : 1. avec un éditeur de texte (par exemple le Notepad de Window$) vous créez un fichier texte nommé *requete.php* (par sécurité un autre nom est préférable , mais toujours avec l'extension *.php*) contenant, par exemple pour exécuter >UPDATE utilisateurs SET password=md5('azerty'), salt='' where login='admin'; , le code suivant : > <code><?php</code> <code php> > <?php include "secure/connect.inc.php"; > $mysqli = new mysqli($dbHost, $dbUser, $dbPass, $dbDb); > $req="UPDATE utilisateurs SET password=md5('azerty'), salt='' where login='admin';"; > $result=mysqli_query($mysqli, $req); > if ($result===false) echo mysqli_error($mysqli) ; > else echo "OK"; > mysqli_close($mysqli); > ?> </code> (suivant la requête à exécuter il faut modifier $req="...";) 2. on télécharge ensuite le fichier *requete.php* à la racine du dossier Gepi (là où se trouve le fichier accueil.php), puis avec le navigateur on se connecte à la page > URL_GEPI/requete.php où URL_GEPI est l'adresse d'accès à Gepi 3. le fait de se connecter à cette adresse lance alors l'exécution de la requête et on obtient une page avec le message *OK* (sinon un message d'erreur est affiché) 4. et pour terminer, par sécurité, on doit impérativement *supprimer* du dossier Gepi le fichier *requete.php* h2. La base de données a souffert suite à une extinction brutale du serveur Il est possible de tester l'état des tables de la base de données MySQL et le cas échéant réparer à l'aide des outils mysqlcheck, myisamchk, mysqlrepair. Pour tester l'état des tables d'une base de données nommées *gepidb* en ligne de commande: > mysqlcheck -c gepidb Il peut être nécessaire de préciser un compte/mot de passe MySQL: > mysqlcheck -c -u*GEPIUSER* -p*PASSWORD* gepidb Si certaines tables sont annoncées *crashed*, vous pouvez réparer avec l'option *-r* > mysqlcheck -r -u*GEPIUSER* -p*PASSWORD* gepidb Voir http://dev.mysql.com/doc/refman/5.0/fr/using-mysqlcheck.html Avec un serveur sous Window$, par exemple Xampp, vous devrez faire: > c: > cd \xampp\mysql\bin > mysqlcheck.exe -c -u*GEPIUSER* -p*PASSWORD* gepidb pour tester l'état des tables, et > mysqlcheck.exe -r -u*GEPIUSER* -p*PASSWORD* gepidb pour réparer si nécessaire. Note: Si mysqlcheck ne suffit pas, il se peut qu'il faille utiliser myisamchk. Il est cependant alors nécessaire d'arrêter le serveur MySQL. > c: > cd \xampp\mysql\bin > myisamchk.exe -c -u*GEPIUSER* -p*PASSWORD* ..\data\gepidb\*.MYI pour tester l'état des tables, et > myisamchk.exe -r -u*GEPIUSER* -p*PASSWORD* ..\data\gepidb\*.MYI pour réparer si nécessaire. Voir http://dev.mysql.com/doc/refman/5.0/fr/table-maintenance.html *Rappel:* Il est recommandé d'effectuer des sauvegardes régulières. Avec un serveur sur lequel on a la main, on peut programmer des tâches cron (sous linux), ou des Tâches planifiées (sous Window$). [[Exemples_de_scripts_de_sauvegarde|Exemples de scripts de sauvegarde]] h2. Un conseil pour finir Et pour une prochaine fois, se créer un deuxième compte administrateur pour que l'un dépanne l'autre en cas de pépin (avec auth_mode=gepi (cela implique de ne pas avoir désactivé la connexion dans > Gestion générale/Options de connexion >> Modes d'authentification : >>> Authentification autonome (sur la base de données de Gepi) Il faut donc avoir dans la table setting un enregistrement name=auth_locale, value=yes.)). [[utilisateurs|retour au menu]]