目次

インストール

DokuWiki のインストールはとても簡単です。展開して、パーミッションを適切に設定することさえ注意すれば問題ありません。以下では、いろいろな条件に応じた詳細な説明を行います。

Linux/Unix と Apache

会社で DokuWiki を使ったり、自分のサーバにインストールする際には、Linux/Unix と Apache の組み合わせで使うのがもっとも良くあるケースだと思います。

#> cd /var/www
#> tar -xzvf /path/to/downloaded/dokuwiki-YYYY-MM-DD.tgz
#> mv dokuwiki-YYYY-MM-DD dokuwiki
#> touch dokuwiki/data/changes.log
#> cp dokuwiki/conf/users.auth.php.dist dokuwiki/conf/users.auth.php
#> cp dokuwiki/conf/acl.auth.php.dist dokuwiki/conf/acl.auth.php
#> myUsername:myMD5password:myRealname:myEmail:admin,user
#> chgrp nogroup dokuwiki/conf/users.auth.php
#> chgrp nogroup dokuwiki/conf/acl.auth.php
#> chmod 664 dokuwiki/conf/users.auth.php
#> chmod 664 dokuwiki/conf/acl.auth.php
#> chown -R nobody dokuwiki/data
#> chmod -R g=rwx dokuwiki/data 
#> cp dokuwiki/conf/dokuwiki.php dokuwiki/conf/local.php
$conf['useacl']      = 1;                //Use Access Control Lists to restrict access?
$conf['superuser']   = '@admin';         //The admin can be user or @group 

注意

Debian GNU/Linux

現在のところ、DokuWiki は Debian の unstabletesting に含まれています。インストールにあたっては、Debian の標準の方法を使います。

#> apt-get update
#> apt-get install dokuwiki

展開後、Debian の設定システムの debconf が、お好みの設定について質問がいくつか行われます。

DokuWiki パッケージに関するバグ報告は、Debian のバグトラッキングシステム http://www.debian.org/Bugs/ を使ってください。 Debian ポリシー にしたがって、DokuWiki のディレクトリ構造が変更されていますので注意してください。たとえば、設定ファイルは /etc/dokuwiki/ にあります。

FreeBSD

FreeBSD の ports ツリーを使って、dokuwiki を次のようにインストールできます。

#> cd /usr/ports/www/dokuwiki
#> make install clean

デフォルトの DokuWiki ディレクトリは /usr/local/www/data/dokuwiki です。
– もちろん、このディレクトリは変更できますし、シンボリックリンクを張ることもできます。 :-)
dokuwiki の設定を行うには、/usr/local/www/data/dokuwiki/conf/dokuwiki.php から変更したいオプションを /usr/local/www/data/dokuwiki/conf/local.php にコピーします。
この様にしないと、portupgrade 後、設定がデフォルトに戻されてしまいます。

アップグレードも、ports ツリーを使います。

#> portupgrade dokuwiki

何も起きない場合は、ports ツリーがちゃんと更新されているかどうか確認してください。

Gentoo

dokuwiki を Gentoo にインストールするには次のようにします。

$> emerge --sync
$> emerge -a dokuwiki 

dokuwiki は /var/www/localhost/htdocs/dokuwiki にインストールされます。

Apache (ウェブサーバ)で PHP が実行できるよう設定することを忘れないように。 http://gentoo-wiki.com/Apache_Modules_mod_php を参照。

Mac OS X と Apache

詳細な説明は HOWTO for DokuWiki on Tiger を参照してください。

この HOWTO は更新されていないようです(が、役には立ちます)。

筆者は Tiger に次のようにインストールしました(DokuWiki は初インストールです)。

  1. Enable PHP on Mac OS X 〔PHP を Mac OS X で使えるようにする〕(パーソナル Web 共有を開始することも含む)
  2. コマンドラインから
    $ cd ~/Desktop && tar -zxvf dokuwiki-2005-07-13.tgz
    $ mv dokuwiki-2005-07-13 ~/Sites/dokuwiki
    $ cd ~/Sites/dokuwiki
    $ touch data/changes.log
    $ sudo chown -R www data
  3. アクセス管理を使う場合 (conf/local.php 中の useacl を変更した上で)、コマンドラインから
    $ cp conf/users.auth.php.dist conf/users.auth.php
    $ sudo chown www conf/users.auth.php
    $ cp conf/acl.auth.php.dist conf/acl.auth.php
    $ sudo chown www conf/acl.auth.php
  4. 次のように設定するのが重要
    $conf['basedir']     = '/~user/dokuwiki/';

    conf/local.php での自動認識が動作しない

## 10.4.3 のクライアント版では Apache と組みあわせて動作するものの、(サーバを乗っ取るべく) /Library/Webserver/Documents を 'basedir' に追加すると上手くいかない

## サードパーティの Apache2 パッケージは、'www' ではなく 'nobody' で動作します。chown コマンドを適当に変更してください

Panther (10.3) へのインストールも、筆者の環境では、ここに書いた Tiger へのやり方どおりで上手くいっています。ただ、dokuwiki-2006-03-09 をインストールしたのですが、auto-detection の行の変更を行わなくても、ちゃんと動作しているようです(ローカルのマシンだけでしか試してませんが)。


[他のユーザから]

dokuwiki を Tiger で動かそうとしたのですが、上記の OSX と apache のやり方は私のところでは上手くいきませんでした。どうやっても、datadir が存在しないか書き込み不可となっている旨のエラーメッセージから先にすすめませんでした。何時間かこの Tiger へのインストール方法で上手くいかないか格闘したのですが、最終手段として、“Linux/Unix と Apache” のところの方法をためしたところ上手く動作しました。basedir の自動認識もです。というわけで、皆さんには、一般的な設定をまず試してみて、それから Tiger 専用の方法を行ってみるのをお勧めしたいと思います。

壊れてないかもしれないものは、直さないでも良いかもしれない! ;-)


Lighttpd と Linux

Lighttpd, php5-fastcgi に DokuWiki をインストールしてみたところ、動作しました。ただし、rewrite ルールに修正が必要です。

PHP-FastCGI をソースから、またはディストリビューションのパッケージからインストールします。後者の方が容易です。インストールが完了したら、http://trac.lighttpd.net/trac/wiki/TutorialLighttpdAndPHP の “Configuration” のところの指示にしたがいます。必要もないのに FastCGI の設定を弄くるのはお勧めしません。

筆者の設定は次の通りです。

fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "socket" => "/tmp/php-fastcgi.socket",
                                   "bin-path" => "/usr/bin/php5-fcgi"
                                 )
                               )
                            )

rewrite ルールをカスタマイズする必要があります。

url.rewrite = (                 "^/wiki/_media/(.*)\?(.*)" => "/wiki/lib/exe/fetch.php?media=$1",
                                "^/wiki/_detail/(.*)\?(.*)" => "/wiki/lib/exe/detail.php?media=$1",
                                "/(.*)\.(.*)" => "$0",
                                "/(lib)/" => "$0",
                                "$^" => "/wiki/doku.php",
                                "/wiki/(.*)\?(.*)" => "/wiki/doku.php?id=$1&$2",
                                "/wiki/(.*)" => "/wiki/doku.php?id=$1",
				)

順を追って説明します。Lighttpd では、ディレクトリごとの .htaccess ファイルのようなものはありません。そこで、ディレクトリへのアクセス禁止は、上のレベルで設定する必要があります。この rewrite ルールでは効率的にそれを行っています。

以上が、筆者は現時点でのやりかたです。訂正があれば、お気軽に指摘ください。筆者も何かうまく動かないのをみつけたら修正します。

Windows

Apache を使う

DokuWiki をデスクトップ機で使いたい人のための説明です。

data フォルダに attic/ フォルダの作成が必要な場合があるようです。oak さん、指摘ありがとう。

IIS を使う

DokuWiki を Windows の IIS ウェブサーバ (Windows 2000, Windows XP or Windows Server 2003) で使いたい人のための説明です。

FIXME 前の fixme の記述は誤っている。2006/05/01 の時点で、changes.log と meta/ フォルダを手動で作った。このファイルとフォルダは dokuwiki のオリジナルの .tar.gz ファイルにはない

「誤っている」というのは言い過ぎだろう。「これは」という単語が誤解されてるのだろう。 changes.log ファイルはやっぱり作成しないといけないが、フォルダは自動的にできるよ  ;-)

FIXME おなじ問題にぶちあたった。meta/ フォルダがない。

:!: だれもがアクセスできる環境では IIS で実行させようと考えないほうがよいかもしれない。IIS は .htaccess ファイルをサポートしないので、data/pages フォルダは、ファイル名やパス名が推測できると、だれでも見られることになります。また、上の説明では、このフォルダに IUSR への書き込み権限があたえられますが、これはあまり良くない事です。一般的には、IUSR への書き込み権限をあたえたフォルダやファイルは、WEB ルート外へ移動させるべきです。そうすれば、簡単にはアクセスできなくなりますから。ただ、パスを変えると DokuWiki がどうなるかはよく判っていないのですが。 :!:


ファイルの展開

Windows ユーザは、ファイル名をdokuwiki-YYYY-MM-DD.tgz から dokuwiki-YYYY-MM-DD.tar.gz へ変更しないと、展開ツールがファイル形式を正しく認識しないいかもしれません (209 参照)。

windows のファイル拡張子が .tar となっても、名前を変更して winzip を使うとうまく行きます。

展開プログラム

NanoWeb ウェブサーバ

NanoWebPHP で作成されたウェブサーバです。メモリ使用量が Apache などとくらべて軽くなっています。 DokuWiki だけでなく、NagiosDouble Choco Latte も正常に動作します。

ただし、上記の Apache ウェブサーバ を使う方法の説明どおりにやった後に、dokuwiki.php を修正する必要があります。というのも、ウェブサーバの場所 (URL) を自動では認識 しない からです。

URL の自動認識は、すべての環境で有効となるわけではありません。特に、URL の rewriting を激しく行っている場合や、フォーワード機能が使われている際にはだめです。さらに、”relative dir” (相対ディレクトリ)という言葉がすこし紛らわしいです。というのも、絶対 パスをここに書く必要があるからです。つまり、次の例のように、スラッシュではじめてスラッシュで終わる必要があります。 – Doogie - 27. May 2005

次の行を、

$conf['basedir'] = '';           //relative dir to serveroot - blank for autodetection

このように変更する。

$conf['basedir'] = '/dokuwiki/'; //relative dir to serveroot - blank for autodetection

末尾のスラッシュは絶対 必要です!! 注意してください。

FTP 接続して使うホストサーバ

次の事項は、WEB サーバをレンタルしている人のほとんどに当てはまります。

Screencast もご覧いただけます。

設定の変更

アップロードとテスト

トラブルシュート

ウェブホストの設定ページ(たとえば、free.fr )に行って設定するか、コマンドラインの FTP や Filezilla の右クリックでもって CHMOD を行う

sessions フォルダ

Warning: session_start(): open(/tmp/php-ses/sess_215aaa2a389d6a10eee8c57939b486b6, O_RDWR) failed: No such file or directory (2) in /nfs/cust/6/36/44/644636/web/decuong/inc/init.php on line 53

  1. dokiwiki ディレクトリに tmp ディレクトリを新しく作成する
    1. その新しいディレクトリを 777 へ chmod する
    2. doku.php を編集する
  // 次の行のあとに
  if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__)).'/');
  // 以下を加える
  session_save_path(DOKU_INC.'tmp');
 

data ディレクトリに書き込みできない場合

設定のチェック

開発版

darcs を使って最新の開発版をチェックアウトできます。くわしくは、darcs のページをご覧ください。

トラブル解決のヒント

説明どおりにインストールすれば、基本的に DokuWiki は そのまま で動作します。

Warning: include() [function.include]: Unable to access /home/s/o/s/sosml/www/lib/tpl/default/main.php in /home/s/o/s/sosml/www/inc/actions.php on line 103
Warning: include(/home/s/o/s/sosml/www/lib/tpl/default/main.php) [function.include]: failed to open stream: No such file or directory in /home/s/o/s/sosml/www/inc/actions.php on line 103
Warning: include() [function.include]: Failed opening '/home/s/o/s/sosml/www/lib/tpl/default/main.php' for inclusion (include_path='.:/usr/local/php5/lib/php') in /home/s/o/s/sosml/www/inc/actions.php on line 103
touch data/changes.log
chmod 777 data/changes.log
chmod 777 conf/acl.auth.php
chmod 777 conf/users.auth.php
mkdir data/meta
chmod 777 data
chmod 777 data/attic
chmod 777 data/cache
chmod 777 data/locks
chmod 777 data/media
chmod 777 data/meta
chmod 777 data/pages

Sergio - 13.06.2006 共有サーバでは、これは必要なステップのようです。セキュリティ問題やこの問題を解決する別の方法について何かあれば追加してください。共有サーバに dokuwiki をインストールしているユーザも多いと思うので

アップグレード

アップグレードを行う前には、チェンジログ を参照して、アップグレードに当たって注意する点が無いかどうか確認するようにしてください。実行中の dokuwiki のバージョンを調べるには、DokuWiki が生成したページの HTML のソースの <meta name=“generator” content=“DokuWiki 2005-02-06” /> のようなところを見てください 4)

Windows ユーザは注意。UTF-8 の Unix 形式で保存できるエディタを使うこと。 Crimson Editor Textpad など。

アップグレードのもっとも簡単な方法は、次の通り。

interwiki やスマイリーの設定に変更を加えているなら、アップグレード後再設定します。

2005-02-06 以前版をアップグレードした場合は、データを UTF8 へ変換 する必要があります。

アップグレード後、DokuWiki の動作におかしい点が見られたら、data/.cache/ および media/.cache/ ディレクトリ内のキャッシュファイルを削除してみてください。また、ブラウザが古い CSS をキャッししていないかも確認してください。

覚え書きです。2005-05-17 から 2005-07-13 へアップグレードしたところアクセス管理機能に問題が起きました。http://wiki.splitbrain.org/wiki:discussion:acl?s=users%5C.auth#user_registration_-_can_t_register で報告しています。2005-05-13へ戻してから、もう一度やってみたところ、上手くいったようです。ヒントは2つ。(a) アップグレードした側へファイルを移動する際、chmod で 777 になっているか確認する。そうでないと、書き込みできない。 (Windows では、ファイルやフォルダの読み取り専用のフラグが無しになっていることに相当する。エクスプローラおよび IIS の read/write/full アクセスが適切なユーザやグループに設定されているかどうかも確認する。 (b) 設定ファイルの更新にあたっては、UTF-8 対応のエディタを使うこと ( Crimson Editor Textpad など)。 {David Ing, 2005/07/17}

アップグレードプロセスの例

簡単容易なアップグレード方法

この方法は非公式なやりかたです。私 (redeeman, visitor) は、2005-07-01 から 2005-07-13 へアップグレードするのに使った方法を、ここに発表したいと思います。

私のやりかたは、diff つまりパッチをつくるコマンドを使います。このコマンドはどの unix システムにもあります。ググれば、win32 バージョンを見つけることもできると思います。

パッチをつくるには、まず、2つのバージョンを展開します。”dokuwiki-2005-07-01” と “dokuwiki-2005-07-13” ができました(これは、私がバージョン変更したもので、皆さんがアップグレードする版とは違うかもしれません)。そして、diff コマンドを実施して、パッチを作ります。

diff -Naur dokuwiki-2005-07-01 dokuwiki-2005-07-13 > doku.diff

パッチができました。これには、2つのディレクトリの差異だけを示しています(たとえば、wiki ページについては何も示していませんが、これで良いのです)。そして、パッチを適用します。何かと干渉することはありません。しかし、注意しないといけないのは、conf/ ディレクトリのファイルを変更してある場合には、それらファイルのバックアップをして、古い版の元のファイルをコピーしておかないと、パッチが上手くいかないかもしれません。パッチがあたったら、変更点をもとどおりに編集します。ただし、これは、dokuwiki 標準版の php ファイルが変更されている場合だけです。

どのファイルにパッチがあたるのかチェックするには、 –dry-run をつけて実行します。dukuwiki がインストールされているディレクトリに移動しておき、次を実行します。

patch -p1 --dry-run </path/to/doku.diff 

問題ないようであれば、–dry-run をつけないで実行します。

patch -p1 </path/to/doku.diff

これに必要なものの例

動いたら次に行う事

すべてが完了して動作したら、次も行うと良いでしょう。

複数 Wiki 1

複数 wiki や wiki ファームについては、 freelists.org archives で、 このスレッドこのスレッド、 それに ここ で簡単ですが示されています。 さらに Andi は、$conf['title'] を利用してインストールごとに異なるクッキーが生成されるように変更を行ったと述べています。

名前空間は、ひとつのインストール内でコンテンツを分割するためにものです。複数インストールとは、それぞれが別個にアップグレードが必要であるということです。複数のインスタンスで、コードを共有するものではありません、debian 等のパッケージによるインストールは複数インストールを処理できません。しかし、こういう手間はかける価値のあるものです。Apache を使った GNU/Linux インストールに適用できるアプローチを紹介します。他の状況でも適用できるでしょう。

  1. 通常にインストールし、テストする
  2. conf/local.php を生成して、タイトル行その他変更したい行を記述する
  3. “dokuwiki”フォルダをコピーして、内容にあった名称を与える
  4. 新しいフォルダの $conf[’title’] を設定し、インストールごとに異なるタイトルとする
  5. 新しいフォルダが“newwiki”とすると、http://localhost/newwiki に接続する

はじめの2行は1度だけ、あとの3行はインストールごと複数回繰り返します。

whoo5) のよる複数 wiki の別の方法。

@ini_set("session.cookie_path", DOKU_BASE);

を init.php(inc\init.php) の

 @ini_set('arg_separator.output', '&amp;');

の次に挿入する。

そして、好きにコピーを行う。シンプルです。

翻訳について

english version: 2006-08-17 20:33.

Add your email here if you created translated or modified whole or part of this page. このページを作成・変更した方は、次にメールアドレスを追記してください。

1) 一番簡単な方法は、次のようなインストーラパッケージを使うことです。 Uniserver, XAMPP, AppServ, EasyPHPその他入手可能なもの
2) Windows ユーザは 7-Zip などのツールが使える
3) 私の経験ですが、ページの上部があらわれて、5秒停止し、wikiページ本文が表示され、また5秒停止し、Web Bug が表示されるまで 20秒ほど掛かったのをみたことがあります
4) 2005-01-14 版以降
5) whoo@ishoo.com