Je ne peux plus me connecter en administrateur

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

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

Avec phpMyAdmin

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';

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';

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)

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 pour exécuter (par exemple) UPDATE utilisateurs SET password=md5('azerty'), salt='' where login='admin'; le code suivant (à copier/coller) :

<?php
include "secure/connect.inc.php";
$mysqli = new mysqli($dbHost, $dbUser, $dbPass, $dbDb);
// on place dans la ligne qui suit la requête à exécuter
$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);
?>

(attention, suivant la requête à exécuter il faut modifier $req="...";)

2. vous téléchargez ensuite le fichier requete.php à la racine du dossier Gepi (là où se trouve le fichier accueil.php), puis avec le navigateur vous vous connectez à 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 vous obtenez une page avec le message OK (sinon un message d'erreur est affiché)

4. et pour terminer, par sécurité, vous devez impérativement supprimer du dossier Gepi le fichier requete.php

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

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.)).

retour au menu