Admin pb connexion » Historique » Révision 7
Révision 6 (Marc Leygnac, 25/02/2014 18:35) → Révision 7/10 (Marc Leygnac, 03/02/2016 11:02)
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 NotePad) 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>
<?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]]