local.phpで認証方式をmysqlにする。
$conf['authtype'] = "mysql";
local.protected.phpでmysqlの設定ファイルを読み込む。
require_once('mysql.conf.php');
local.phpはdokuwikiの設定画面で書き換えられる。その際、設定項目にない変数は削除されるので、local.protected.phpに書く必要がある。
mysqlでDBおよびテーブルを作成する。
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; CREATE TABLE `groups` ( `gid` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL DEFAULT '', PRIMARY KEY (`gid`), UNIQUE KEY `name` (`name`) ) TYPE = MYISAM; CREATE TABLE `usergroup` ( `uid` int(10) UNSIGNED NOT NULL DEFAULT '0', `gid` int(10) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`uid`,`gid`) ) TYPE = MYISAM;
mysql.conf.php.exampleをmysql.conf.phpにリネームし、データベース情報などを編集する。
mysql.conf.phpテンプレートで用意されているSQLでは、グループテーブルを結合した上で、ユーザのパスワードを抽出する。その際、標準のグループに所属していなければならない。標準のグループに所属していなければ、認証は必ず失敗するため、手動でデータベースを編集する際は、標準グループに追加することを忘れないこと。
ユーザ管理画面では、ユーザ作成、更新ともに自動的に標準グループに追加されないので、必ずカンマ区切りで入っていることを確認すること。