Bonjour,
Je recherche à utiliser le DokuWiKi avec une base de données MySQL dans le but de pouvoir faire interagir le wiki avec l’ensemble de mon site. L’idée est de pouvoir utiliser ma table d’utilisateurs de mon site (avec les mots passe qui sont encrypté en MD5) pour le Wiki.
Malheureusement hélas, DokuWiKi est très mal renseigné pour des personnes non anglophones.
Mais recherche m’ont apporté un lien qui semble en parler :
http://wiki.splitbrain.org/wiki:auth:mysql
Comprenant l’anglais que (grace) à internet je me retrouve confronté à l’incompréhension de ce lien.
Surtout que sur ce lien, il me semble être déjà pour des utilisateurs anglophones avancés.
Je vous explique tout de même les démarche que j’en ai compris, et ou j’en suis afin d’espéré avoir un éclaircissement sur la marche a suivre pour arrivé à bout de mes besoins.
Pour commencer j’ai rajouté :
require_once('mysql.conf.php');
Au fichier conf/local.php, renommé /conf/mysql.conf.php.example en /conf/mysql.conf.php et ensuite éditer en modifiant les lignes d’informations à la connexion de ma base SQL :
$conf['auth']['mysql']['server'] = 'localhost';
$conf['auth']['mysql']['user'] = 'root';
$conf['auth']['mysql']['password'] = '';
$conf['auth']['mysql']['database'] = 'testwikiauth';
Dans le fichier : /conf/dokuwiki.php j’ai remplacer la ligne :
$conf['authtype'] = 'plain'; //which authentication backend should be used
Par :
$conf['authtype'] = 'mysql'; //which authentication backend should be used
J’ai créé dans ma database testwikiauth avec l’exemple la table :
CREATE TABLE `users` (
`uid` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`login` varchar(20) NOT NULL DEFAULT '',
`pass` varchar(60) NOT NULL DEFAULT '',
`firstname` varchar(255) NOT NULL DEFAULT '',
`lastname` varchar(255) NOT NULL DEFAULT '',
`email` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`uid`),
UNIQUE KEY `login` (`login`)
) TYPE = MYISAM;
Je retourne sous mon DokuWiKi, une erreur surgit :
« L'authentification est temporairement indisponible. Si cela perdure, merci d'informer l'administrateur du Wiki. »
Alors a ce moment la, je me suis dis j’ai oublié quelque chose ?!
Je regarde donc à l’exemple :
http://wiki.splitbrain.org/wiki:auth:mysql#an_improved_example
Je me rends compte que j’ai peut être oublié de modifié dans mysql.conf.php :
$conf['auth']['mysql']['getUserInfo'] = "SELECT pass, CONCAT(firstname,' ',lastname) AS name, email AS mail
FROM users
WHERE login='%u'";
$conf['auth']['mysql']['addUser'] = "INSERT INTO users
(login, pass, email, firstname, lastname)
VALUES ('%u', '%p', '%e',
SUBSTRING('%n', 1, LOCATE(' ', '%n')),
SUBSTRING('%n', LOCATE(' ', '%n') + 1) )";
$conf['auth']['mysql']['FilterName'] = "CONCAT(firstname,' ',lastname) LIKE '%n'";
$conf['auth']['mysql']['UpdateName'] = "firstname=SUBSTRING_INDEX('%{name}',' ', 1),
lastname=SUBSTRING_INDEX('%{name}',' ', -1)";
Je retourne sous mon DokuWiKi, une erreur surgit (la même) :
« L'authentification est temporairement indisponible. Si cela perdure, merci d'informer l'administrateur du Wiki. »
J’arrive donc pas avec l’exemple… ce qui m’étonne pas j’ai sans doute du comprendre que la moitié. Quelqu’un peut répondre à mon poste de manière a ce que je sache ce qui ne va pas, et en même que les autres utilisateurs dans le même problème que moi, je puisse trouver une solution ici ?
Ou une traduction du document ?
Je vous remercie d’avance,
THANATOS