目次

FreeBSD7.1RにDokuWikiをインストール

FreeBSD7.1RにDokuWikiをインストールする手順。

インストール環境の例

OSFreeBSD 7.1R
HTTPDApache 2.2.9 ( mod_rewrite インストール済み )
PHPVersion 5.2.6 ( GD Library & ZLIB support インストール済み )

事前に使えるようにしておくツール

wget ( /usr/ports/ftp/wget )

サンプルにおけるディレクトリ構造の例(あくまでも例)

サイトのURLの例http://www.vdobv.com/
このサイトを管理するユーザ名webmaster
このユーザのカレントディレクトリ~/
ブラウザで http://www.vdobv.com/ にアクセスした時に表示するサーバ上のディレクトリ~/public_html

インストール手順

パソコンで、ダウンロード⇒解凍⇒FAT転送⇒パーミッション変更⇒設定をするのはとても面倒なので、サーバコンソール、もしくは、パソコンから TeraTerm を利用して行うと楽。

本家サイト ( http://www.dokuwiki.org/ ) にアクセスして、右上の言語選択 ( Translations of this page ? ) から ja を選択する。 すると日本語で記述されたドキュメントが開く。 このページにおおよそのことが記載されている。 ここでは、とりあえず動かすための方法を記録する。

ダウンロード

今回は、dokuwiki-2008-05-05.tgz を使う。

ファイルをダウンロードする場所は、ユーザ ( ここでは webmaster ) のカレントディレクトリとする。 実際の設置先は、~/public_html とする。

wget が使えないときはインストールする。

# su - webmaster
Password:
%cd ~/
%wget -c http://www.splitbrain.org/_media/projects/dokuwiki/dokuwiki-2008-05-05.tgz
%tar zxvfp dokuwiki-2008-05-05.tgz
%cp -R dokuwiki-2008-05-05/ ~/public_html
              ↑dokuwiki-2008-05-05/ の末尾の / を忘れずに。

インストール

ブラウザで、http://www.vdobv.com/ にアクセスしてみると、

などと表示されるが、そのまま run the installer というリンクをクリックする。が、なんか怒られた。

画面右上の Choose your language で ja を選択して [Update] を押すと、日本語表記になるので分かりやすいかもしれない。

なお、私の場合は、表示されるエラーの内容がすべて、次のようなものだった。

■英語メッセージ
/usr{DOCUMENT_ROOT}/public_html/conf/ is not writable by DokuWiki. 
You need to fix the permission settings of this directory!
■日本語メッセージ
/usr{DOCUMENT_ROOT}/public_html/conf/ に書き込みできません。
このディレクトリの権限を確認して下さい。

1つ1つクリアしていくことにする。

%cd ~/public_html
%chmod 777 conf
%chmod 777 data
%chmod 777 data/pages
%chmod 777 data/attic
%chmod 777 data/media
%chmod 777 data/meta
%chmod 777 data/cache
%chmod 777 data/locks
%chmod 777 data/index
%chmod 777 data/tmp

[再試行] をクリックしてエラーがなくなると、DokuWiki Installer というページが表示される。

初期設定

Wiki名サイトのタイトル
ACLを使用する(推奨)ACL ( Access Control List ) はユーザのアクセス管理をするかどうか。
スーパーユーザー全権限をもつ管理者の名前。半角がよい【重要】
フルネームふるね~む。
メールアドレス自分のメールアドレス
パスワードスーパーユーザ用のパスワード【重要】
確認もっかい同じパスワード【重要】
ACL初期設定パブリックWiki ( 閲覧は全ての人が可能、書き込み・アップロードは登録ユーザーのみ ) でも選でおく。

んで、[保存] ボタンをクリック。

「install.php を削除してください」という文章があるので 今すぐ 消すべし。

%cd ~/public_html
%rm install.php

ここで、ブラウザで、http://www.vdobv.com/ にアクセスしてみる。

トップページ ( start ) が表示された。OKだ。

英語のページが表示されちゃったって場合は、後で設定できる。

そうそう、ダウンロードしたファイルは、もう不要だからサクッと削除しておこう。

%cd ~/
%rm -fr dokuwiki-2008-05-05
%rm dokuwiki-2008-05-05.tgz

設定

まずは、全権限を持つ管理者で [Login] する。

英語版を日本語版にする

英語版の DokuWiki が表示されても、あわてないこと。

[Admin] ボタンを押して、Configuration Settings をクリック。

Language を、ja に変更して、ページ最下部の [Save] ボタンを押すと、おお、きたきた。

とりあえず全ページ変更不可にする

画面下部の [管理] ボタンを押した後「アクセスコントロール管理」を押す。

「現在のACLルール」を図のように、@ALL @user 共に「読取」に変更して [更新] ボタンを押しておく。

特定ページをユーザが編集できるように開放する

とりあえず全ページ変更不可にする という項目で、DokuWiki の全ページを管理者以外が編集できないようにした。

ところが、Pukiwiki などにおける SandBag は、DokuWiki の場合、PlayGround のようで、Wiki構文の「練習の場」だ。

ここでは PlayGround のアクセス権をユーザに開放してみる。

「管理」⇒「アクセスコントロール管理」の順に押し、次に様にする。

アクセス権限を変更したいファイル(またはフォルダ)を選択して、「権限を追加」のランで「@user」を選ぶ。

「新規エントリ」で、「作成」または「アップロード」あたりをチェックし[保存]を押す。

これで、PlayGround: 配下がユーザに開放されたはずだ。

図では、PlayGround:* を設定したが、PlayGround:PlayGround の1ページのみを開放したい場合は、画面左上で該当のファイルを選択してから権限設定すればよい。

ここで、実際に「PlayGround:PlayGround」を編集しようと思うと、次の様にしかられる場合がある

この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。
もし変更したい場合は管理者に連絡してください。

通常は、DokuWiki のみでアクセス権を設定することができる。

ところが、インストール時にサイト管理のユーザ名 ( 例では webmaster ) でファイルをコピーした為に、はじめから存在する playground ( ディレクトリ ) のファイル所有者は、ユーザ名 ( 例では webmaster ) になっている。これは、www ( HTTPD のユーザ名 ) からしたら有効でない。

こんな場合は、ファイルの所有者を www にするか、あるいは、パーミッションを変更する。下記のどちらか一方でよい。

%cd ~/public_html/data/pages/
%chown -R www playground

あるいは、

%cd ~/public_html/data/pages/
%chmod -R 666 playground

トップページは start でよいか?

DokuWiki の場合のトップページは、start となっている。これを変更する場合は、

あらかじめ新しいスタートページを作成しておいてから、

[管理] ⇒「サイト設定」の順に押し、「基本」 ⇒「スタートページ名」を変更する。 [保存] ボタンを押すことを忘れずに。

もろもろ設定

その他、設定管理の画面で変更しておくとよいもの(いずれも使い方次第だが)。

「基本」⇒「ベースURL」にトップページのアドレス(末尾のスラッシュは付けない)を入力。(例では http://www.vdovb.com

「表示」⇒「現在位置を表示」をON。

「表示」⇒「最初の見出しをページ名とする」をON。

「認証」⇒「新規ユーザー登録を通知するメールアドレス」に自分のメアド。

「リンク」⇒「外部リンクの表示先」を「_blank」。

高度な設定

アドレスのリダイレクト

たとえば、http://www.vdobv.com/doku.php?id=wikis:dokuwiki ( このページ ) のアドレスが、

http://www.vdobv.com/wikis/dokuwiki となったら、いろんな意味:-Oでとっても嬉しいかもしれない。

ただし、この機能は、Apache と共に mod_rewrite がインストールされていることが必要。

設定管理の画面で、「高度な設定」⇒「URLの書き換え」を「.htaccess」とする。

さらに、 .htaccess.dist を .htaccess にコピーして編集する( vi が嫌いな人は、慣れたものを使えばよい。ee など。)。

%cd ~/public_html
%cp .htaccess.dist .htaccess
%vi .htaccess

書き換える部分は、次に示す行番号の # をとる。

空行も含めてカウントした、5行目、16行目、26行目、27行目、29行目~36行目。

下記のソースは見本で、便宜上、行番号を付ける。

0001:## Enable this to restrict editing to logged in users only
0002:
0003:## You should disable Indexes and MultiViews either here or in the
0004:## global config. Symlinks maybe needed for URL rewriting.
0005:Options -Indexes -MultiViews +FollowSymLinks
0006:
0007:## make sure nobody gets the htaccess files
0008:<Files ~ "^[\._]ht">
0009:    Order allow,deny
0010:    Deny from all
0011:    Satisfy All
0012:</Files>
0013:
0014:## Uncomment these rules if you want to have nice URLs using
0015:## $conf['userewrite'] = 1 - not needed for rewrite mode 2
0016:RewriteEngine on
0017:#
0018:## Not all installations will require the following line.  If you do,
0019:## change "/dokuwiki" to the path to your dokuwiki directory relative
0020:## to your document root.
0021:#RewriteBase /dokuwiki
0022:#
0023:## If you enable DokuWikis XML-RPC interface, you should consider to
0024:## restrict access to it over HTTPS only! Uncomment the following two
0025:## rules if your server setup allows HTTPS.
0026:RewriteCond %{HTTPS} !=on
0027:RewriteRule ^lib/exe/xmlrpc.php$      https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
0028:#
0029:RewriteRule ^_media/(.*)              lib/exe/fetch.php?media=$1  [QSA,L]
0030:RewriteRule ^_detail/(.*)             lib/exe/detail.php?media=$1  [QSA,L]
0031:RewriteRule ^_export/([^/]+)/(.*)     doku.php?do=export_$1&id=$2  [QSA,L]
0032:RewriteRule ^$                        doku.php  [L]
0033:RewriteCond %{REQUEST_FILENAME}       !-f
0034:RewriteCond %{REQUEST_FILENAME}       !-d
0035:RewriteRule (.*)                      doku.php?id=$1  [QSA,L]
0036:RewriteRule ^index.php$               doku.php

Google Sitemap を作る設定

DokuWiki は Google, Yahoo, Microsoft などのサーチエンジンに向けた XLS 形式の sitemap を自動生成することができる。

「高度な設定」⇒「アーカイブの圧縮方法」を「gzip」にする。

「高度な設定」⇒「Googleサイトマップ作成頻度(日数)」に適当な数字を入れる。

さらに、次のようにして、空の sitemap.xml.gz ファイルを用意しておく。

%cd ~/public_html
%touch sitemap.xml.gz
%chmod 666 sitemap.xml.gz

試しに sitemap を作ってみたい場合は、次のアドレスをブラウザで表示する。

http://yourserver/lib/exe/indexer.php?debug=1

ファイルが作られない場合は、ZLIB support を入れること。

なお、圧縮形式ではなく、テキストXML形式のsitemapを作りたい場合は、「アーカイブの圧縮方法」を「圧縮しない」に変更する。もちろん、sitemap.xml の作成とパーミッションを書き込み可能にしておくことを忘れずに。

参考:DokuWik で sitemap を自動生成(日本語訳)

その他

使い方次第で設定をするとよい。

「高度な設定」⇒「URLの名前空間の区切りにスラッシュを使用」をON。

「高度な設定」⇒「canonical URL(正準)を使用」をON。

スタイルシートの変更

背景色、文字色などの変更

背景色、文字色を変更したい場合は、~/public_html/lib/tpl/default/style.ini を編集する。

見出しの変更

見出し(H1~H5)に下線を付けたり変更したい場合は、~/public_html/lib/tpl/default/design.css を編集する。

Formatting Syntax ( Wiki構文の説明 ) を日本語版に差し替える

文書の編集画面で、「Formatting Syntax」をクリックすると、英文のWiki構文の説明が表示される。これを、本家サイトにある日本語版に差し替えたいと思う。

しかし、実際に「Formatiign Syntax」を編集しようと思うと次の様に、しかられる。

この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。
もし変更したい場合は管理者に連絡してください。

これは、次の様にすることで編集が可能となる。

%cd ~/public_html/data/pages/wiki
%chmod 666 syntax.txt

DokuWiki 上でページを差し替えたら、パーミッションを戻しておく。

%cd ~/public_html/data/pages/wiki
%chmod 644 syntax.txt

Fatal error: Call to undefined function: preg_match()

Fatal error: Call to undefined function: preg_match()

PHPをバージョンアップした後に、PCRE関連のインストールを忘れたことがあった。

今となっては、どれが原因だったのかわからないので、関連しそうなものを列挙しておく。

/usr/posts/devel/pcre/ /usr/posts/devel/php5-pcre/

これらがバージョンアップされていたら make reinstall した後、アパッチを再起動してみる。

最後に

DokuWiki の日本語マニュアルが公式サイトにある。何か困ったことがあったら閲覧するとよい。

DokuWiki