Mediawiki
セキュリティ
LocalSettings.php を変更する。
編集のためにログインを必須とする
$wgGroupPermissions['*']['edit'] = false;
新しいユーザを登録できないようにする
$wgGroupPermissions['*']['createaccount'] = false;
上記2つを両方を設定すると,すでに登録されている人以外は編集できない.つまり,他人は勝手に編集できない.
このように設定しても,管理者アカウント(WikiSysopなど)でログインすれば, Special:Userlogin から新規ユーザを登録することができる.
匿名ユーザのアクセスできるページを制限する
$wgGroupPermissions['*']['read'] = false; $wgWhitelistRead = array ("Main Page", "Special:Userlogin");
こうすると、匿名ユーザはこの array に書かれたページしかアクセスできなくなる.この例では、Main Page,Special:Userlogin の二つのページ以外は読むことすらできなくなる.
日本語でインストールした場合には,以下のように日本語でのページ名前に合わせること.
$wgWhitelistRead = array ("メインページ", "特別:ユーザログイン");
短いURL
インストールした直後は、wiki の記事の URL が https://fukudat.net/wiki/index.php/ページタイトル と indexl.php が見えてかっこ悪い。 短く https://fukudat.net/wiki/ページタイトル と表示するための方法。
詳細は https://www.mediawiki.org/wiki/Manual:Short_URL に書かれているのだが、正直めんどくさいが、実は簡単なツールが用意されている。
[1] にアクセスして、自分の wiki のアドレス (例: https://fukudat.net/wiki/index.php) を入力。 root アクセスの有無を答えると、web server の設定ファイルや、wiki の LocalSettings.php を変更すべき点を教えてkくれる。
私のケースでは、root アクセスがあるので、/etc/apache2/sites-enabled/ のしたの VirtualHost 定義中に
<Directory /var/www/html> RewriteEngine On RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L] RewriteRule ^/?$ %{DOCUMENT_ROOT}/w/index.php [L] </Directory>
LocalSettings.php に
$wgScriptPath = "/w"; $wgScriptExtension = ".php"; $wgArticlePath = "/wiki/$1";
を追加すれば良いことがわかった。