インストール

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

  • Step 1: 最新のリリースを Download Page からダウンロードする。これは、 どなたも おなじです
  • Step 2: 使用するプラットホームに応じて、以降で説明する指示に従う

Linux/Unix と Apache

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

  • Apache と PHP が適切にインストールされていることを確認する (たいていの GNU/Linux ディストリビューションには、 Apache や PHP のパッケージがあります)。 バージョンが DokuWiki に適切 かも確認してください
  • tarball をウェブサーバのドキュメントルートのどこかに展開する。例、
#> cd /var/www
#> tar -xzvf /path/to/downloaded/dokuwiki-YYYY-MM-DD.tgz
  • ディレクトリをお好みでリネームする
#> mv dokuwiki-YYYY-MM-DD dokuwiki
  • 空のログファイルを作成する
#> touch dokuwiki/data/changes.log
  • アクセス管理機能 (ACL) を使うなら、users.auth.php と acl.auth.php ファイルを作成する
#> cp dokuwiki/conf/users.auth.php.dist dokuwiki/conf/users.auth.php
#> cp dokuwiki/conf/acl.auth.php.dist dokuwiki/conf/acl.auth.php
  • アクセス管理の管理者ユーザを登録する
    • ログイン可能にするには、users.auth.php に管理者ユーザを追加します。パスワードの md5 値が必要です。グループは admin にします。user グループにも所属させても良いでしょう。次のような構成の行を追加することになります
#> myUsername:myMD5password:myRealname:myEmail:admin,user
  • パーミッションを適切に設定する
    • 通常、ウェブサーバは、nobodywww-data, apache というユーザ権限で動作します
    • ウェブサーバから書き込み可能としなければいけないファイルやディレクトリがあります(次の chown nobody のところは、自身の設定に合わせて chown apache などと変えてください)
    • アクセス管理を使う場合、グループ所有権の変更が必要なファイルがあります。ウェブサーバの所属するグループから書き込み可能にしてください(グループ所有権を使うのは、ユーザ管理者・サイト管理者として、それらのファイルを直接編集する必要があるからです)。そうしなければ、ウェブインターフェイスからのユーザの登録やアクセス管理の変更はできず、エラーメッセージが表示されます。筆者も、アクセス管理を使う際にしばしばこのステップを飛ばしてしまうこともあり、ここに説明を追加しました
    • ウェブサーバのグループ名は、ユーザ名と同じであることが多いです。ただし、“nobody/nogroup” や “wwwrun/www” という組み合わせの場合もあります。サーバの設定をチェックしてください
#> 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 
  • dokuwiki/conf/dokuwiki.php (設定オプション 参照) を編集し、お好みに設定する。なお、dokuwiki/conf/local.php を作成し、dokuwiki.php から変更したい部分を持ってくるのが良いやり方です。こうすると、新リリースで dokuwiki.php ファイルが上書きされても、加えた変更は保持されます。次のコマンドで生成し、変更する必要のない行をすべて削除します
#> cp dokuwiki/conf/dokuwiki.php dokuwiki/conf/local.php
  • アクセス管理機能 (ACL) を使う場合(上記参照)は、スーパーユーザとして 'admin' グループか特定ユーザを指定する。それには、local.php ファイルを編集し、次の行を変更します
$conf['useacl']      = 1;                //Use Access Control Lists to restrict access?
$conf['superuser']   = '@admin';         //The admin can be user or @group 
  • “ログイン” が表示され、(ログインすると)“Admin” ボタンが表示され、全体設定が可能となる
  • 最後に、設定が正しくなされているかチェックする。URL 中に check オプションを次のように指定して、ブラウザに入力します。http://127.0.0.1/dokuwiki/doku.php?do=check
  • アクセス管理機能 (ACL) を使う場合、ログイン後 “admin” ボタンが表示されるか調べるために、あなた自身も管理者ユーザとして登録する必要があるでしょう(つまり、あなたのユーザアカウントを dokuwiki.php や local.php file で直接適切に設定するか、デフォルト設定の通り admin グループに所属させるかします)

注意

  • ファイルの所有権の変更ができない場合もあります。使用するサーバ上の他のユーザのファイルの所有権は変更できません。data ディレクトリのパーミッションを chmod するようにします
  • .htaccess ファイルに指定されているオプションがエラーになることもあるようです。たとえば、'Internal Server Error 500' などを見かけます。この簡単なエラーは、PHP のコードが実行できないということを示しています。.htaccess 中の <Files> のセクションをコメントアウトして、.ht* ファイルが読み込まれるようサーバの httpd.conf (や他の設定ファイル)で指定されているかチェックしてみましょう
  • Ubuntu を使用する場合(筆者は Ubuntu や Debian を使ってます。Ubuntu は Debian ベースです)、ファイルとディレクトリの所有権は www-data (ユーザ名もグループ名も同じ)にする必要があります。筆者はこれがわかるのに2時間もかかってしまいましたよ  :-?
    • サーバで PHP が実行されるユーザ名とグループは次のようにすると判ります。
      <?php echo "<pre>User: " . exec("whoami") . "\nGroups: " . exec("groups") . "</pre>"; ?>
  • .htaccess 中の RewriteEngine のルールが 500 エラーを発生する場合は、 /path をあなたのサイトの URL から doku.php へのパスとして、RewriteBase /path を追加してください
  • Apache が mod_rewrite モジュールを読み込んでいない場合もまた、RewriteEngine のルールが 500 エラーを発生します。http.conf をチェックして、LoadModule rewrite_module modules/mod_rewrite.so がコメントアウトされていないかどうか調べてください

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 ルールでは効率的にそれを行っています。

  • 第1および第2行目は、通常の rewrite
  • 第3行目は、ファイルへのリクエストを変更なしで許可している
  • 第4行目は、ここに挙げられたディレクトリへの URL を許可している。この行は、/lib ツリー以下にある CSS ファイルを用いるために必要となる。左辺の方へ、他のディレクトリを “/(lib|other|dirs)/” のように追加できる
  • 第5行目は、インデックスのシミュレーション
  • 第6行目は、特殊機能を有効にするためのもの。ページのボタンが押されたなど。それらの場合、URL の最後が wiki:syntax?do=index のようになる

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

Windows

Apache を使う

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

  • Apache と PHP がインストールされているのを確認する1)
  • tarball を次のようなツールで展開する。 WinZIP, WinRAR, オープンソースの圧縮展開ツール 7-Zip など。ファイルの展開については ファイルの展開の項 をご覧ください
  • dokuwiki-YYYY-MM-DD フォルダをウェブサーバのドキュメントルート以下のどこかへ移動する。例、c:\xampp\htdocs\ 。 そして dokuwiki へ名前を変更する
  • dokuwiki/data/ フォルダ内に空のファイルを新規作成し、changes.log へ名前を変更する (右クリック、 新規作成 → テキストファイル, 名前の変更)
  • conf フォルダにある dokuwiki.php ファイルを編集し、自分の wiki を設定する (設定オプション 参照)。または、新しく conf/local.php ファイルを作成し、 dokuwiki.php から変更したい部分を持ってくる (こちらの方法を推奨) 。後者の方法だと、新リリースがでたときに dokuwiki.php ファイルが上書きされても、変更したところが無くなることはない
  • 最新のバージョン (2006-03-09) では、data/meta フォルダも作成しないといけない。古いバージョンでは、data/cache, data/meta, data/locks を作成しないといけない (これに注意)
  • 新しい Wiki は http://127.0.0.1/dokuwiki/doku.php から利用できる

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

IIS を使う

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

  • PHP がインストールされているのを確認する。インストーラやコンプリートパッケージについては PHP のサイト を見てください。PHP は、CGI アプリとしても ISAPI 拡張としても実行できます
  • DokuWiki のアーカイブを、 WinZIP やオープンソースのアーカイバ 7-Zip を使って展開します。ファイルの展開については ファイルの展開の項 をご覧ください
  • dokuwiki-YYYY-MM-DD フォルダを dokuwiki へ名前を変える。次に、
    • ウェブサーバのドキュメントルート下のどこか、c:\inetpub\dokuwiki など、へ移動する
    • または、マシンのどこでも良いが、その場所へ Virtual Directory マッピングを設定する
  • dokuwiki/data/ フォルダ内に空の changes.log という名前のファイルを新規作成する。さらに、attic/, meta/, locks/ および cache/ フォルダを作成する。FIXME 2006-03-09 のバージョン (おそらくそれ以降も) では、これは必要ない

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

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

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

  • conf フォルダにある dokuwiki.php ファイルを編集し、自分の wiki を設定する (設定オプション 参照)。または、新しく conf/local.php ファイルを作成し、 dokuwiki.php から変更したい部分を持ってくる (こちらの方法を推奨) 。後者の方法だと、新リリースがでたときに dokuwiki.php ファイルが上書きされても、変更したところが無くなることはない
  • dokuwiki/ フォルダをエクスプローラで開き、data/ フォルダのプロパティをチェックする。インターネットゲストアカウント (IUSR_computername) もしくはウェブサーバに対応するアカウントが、data/ フォルダについて書き込み権限を持っているか確認してください
  • 新しい Wiki は http://localhost/dokuwiki/doku.php から利用できる

:!: だれもがアクセスできる環境では 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 を使うとうまく行きます。

展開プログラム

  • Windows zip 系圧縮プログラム WinZIP
  • Windows 圧縮プログラム WinRAR
  • Windows 圧縮プログラム WinACE
  • Opensource のアーカイバ 7-Zip
  • Windows やその他のプラットフォームでも free Ultimate Zip は、dokuwiki.tgz の展開に使える
  • TotalCommander を使って見ては。tgz や FTP を完璧に扱える

NanoWeb ウェブサーバ

NanoWeb は PHP で作成されたウェブサーバです。メモリ使用量が 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 もご覧いただけます。

設定の変更

  • tarball を〔ローカルの〕ハードディスクのどこかに展開する 2)
  • dokuwiki-YYYY-MM-DD/data ディレクトリに、 空のファイル changes.log を作成する
    • Windows ユーザは、右クリック、 新規作成 → テキストファイル, 名前の変更
    • Linux ユーザは、ターミナルウィンドウで、data ディレクトリに移動し、“touch changes.log”
  • conf フォルダにある dokuwiki.php ファイルを編集し、自分の wiki を設定する (設定オプション 参照)。または、新しく conf/local.php ファイルを作成し、 dokuwiki.php から変更したい部分を持ってくる (こちらの方法を推奨) 。後者の方法だと、新リリースがでたときに dokuwiki.php ファイルが上書きされても、変更したところが無くなることはない
  • /data/ ディレクトリに新規ディレクトリを作成し、 meta という名前にリネームする

アップロードとテスト

  • dokuwiki-YYYY-MM-DD 内をすべて、好みのFTPツールを使って ウェブホストにアップロードする
  • http://www.example.com/dokuwiki/doku.php を〔ブラウザで〕開く
  • dokuwiki のページが現れたら、check オプションを次のようにつけて、設定のチェックを行う。 http://www.example.com/dokuwiki/doku.php?do=check
  • Dokuwiki の準備ができた

トラブルシュート

  • ウェブスペースで、ファイルの権限が制限されていると問題が発生する
  • ウェブホストで 'chmod' コマンドが使えるかどうか確認する

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

sessions フォルダ

  • 次のような PHP の Warning メッセージが出る場合、

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

  • sessions フォルダをあなたの ユーザ のルートディレクトリに作成する (dokuwiki のルートではない)
  • または、 /tmp ディレクトリを作成し、そこをセッションディレクトリとして使用するように設定を変更する
  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 ディレクトリに書き込みできない場合

  • metadir does not exist or isn't writable. Check config! と表示される
  • chmod コマンドが使えるなら、dokuwiki/data/ ディレクトリ下のファイルとディレクトリの権限をすべて rwxrwx— つまり 770 に変更するのが簡単
  • さらに、dokuwiki/data/attic, cache, locks, meta, media というサブディレクトリ群を作成する (設定オプション も参照)

設定のチェック

  • dokuwiki ページが表示されたら ^_^check オプションを次のようにつけて、設定のチェックを行う。 http://www.example.com/dokuwiki/doku.php?do=check
  • 赤い警告が表示されたら、FTP プログラムを使ってパーミッションの修正が必要かもしれない

開発版

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

トラブル解決のヒント

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

  • 動かない!“changelog does not exist or isn't writable” というエラーが表示されるなら、“changes.log” という名の空のテキストファイルを /data 内に作成し、書き込み権限をあたえます
  • 他のディレクトリもおかしい!“metadir does not exist or isn't writable. Check config!” や “mediadir does not exist or isn't writable. Check config!” と表示されるなら、対応するサブディレクトリ(media か meta)を/data 内に作成します。その他のディレクトリ名については '/inc/init.php' を見てください
  • ページの読み込みが非常に遅い 3) 。しかし、エラーメッセージは何も表示されない。これは、パーミッションの問題が原因かもしれません。/data 下のディレクトリに書き込み権限が適切に設定されているか確認してください。ディレクトリのアクセスが制限されている(たとえば、ホストサーバに FTP を使ってインストールした)場合、/data と その下のすべてのサブディレクトリ のパーミッションを 775 または 777 に設定してください。さらに、 PHP のセーフモードが影響していないかも確認しましょう。詳細は、wiki:safemodehack を見てください。$conf['dmode'] = 0777; set directory creation mode とする必要もあるかもしれません。
  • アクセス管理が動かない (Authentication Options を参照)
  • だれでも、読み、編集、更新できてしまう (Permissionlevels を参照)
  • FIXME (上記の問題(ディレクトリやファイルがないとか、アクセス権が不十分であるとか))はきっと今後のリリースで修正させるだろう)提案だが、それらの今無いファイルやディレクトリをアーカイブに含められないか?空白文字ひとつのファイルを使うとか。また、do=check を行うと、/data のすべてのディレクトリの書き込み・読み込み権限をチェックさせるようにしないか?
  • ページが真っ白になる。拡張子が .conf の設定ファイルは、UTF-8 エンコードで保存しなければならない。そうしないと、一部のサーバを除き、wiki は上手く動作しない。Free Crimson Editor などの UTF-8 対応のエディタを使って再保存してください。これが原因なら、これで正常動作するはずです。
  • 助けてください。上記はすべて試しましたが、いつも私 (xtravert[]wp.pl) のところでは次のように表示されます。
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
  • Plesk 7.5.4 を CentOS で走らせているのだが、問題が起き、次の手順をとることが必要だった。ファイルは作成し、PHP は 'apache:apache' というユーザ権限で、CHOWN をしても何も変化なかった。そこで、すべてを chmod することにした。tarballの展開後に必要だったのは、次のリストの通り。
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 をインストールしているユーザも多いと思うので

  • 共有ホストでは、任意のテンプレートシステムの読み込みに関して問題がある。一般的な解決法は?
  • php.ini の設定によっては動作に影響する場合がある。たとえば、ファイルアップロードが可能かどうか、アップロード可能なメディアファイルの最大ファイルサイズ、GD ライブラリが有効か、セキュリティを厳しくしているか、などです。DokuWiki のための PHP の設定 を参照してください

アップグレード

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

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

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

  • 古いのを、バックアップディレクトリに移動する
  • 新バージョンを上記の説明の通りインストールする
  • changes.log ファイルと data/, attic/ および media/ ディレクトリの中身をバックアップから新しくインストールしたディレクトリへコピーする
    • 2005-07-01 版以降 …
    • … (ルートディレクトリにあった) changes.logは、 data/ ディレクトリ内に置く
    • … ユーザにより作成されたコンテンツは data/ ディレクトリにある。data/pages/ ディレクトリではない
    • … ルートディレクトリにあった attic/ および media/ ディレクトリは、data/ 内に置く
  • バックアップから元の conf/local.php を新しいディレクトリにコピーする
    • “きれいな URL” を得るために、ルートディレクトリの .htaccess ファイルを変更してある場合、前の版のファイルで上書きする
  • アクセス管理機能 を使っている場合は、 conf/ 内の users.auth.phpacl.auth.php をコピーする
    • これらのファイルは 2005-07-13 版であたらしく作成されたのもので、users.auth の内容は users.auth.php に、acl.auth の内容は acl.auth.php にそれぞれコピーする
  • doku.php?do=check として、パーミッションが変わっていないかチェックする。次のエラーメッセージが出るのは、ファイルもしくはディレクトリに対する chmod を行っていないからだろう。
    • Changelog is not writable
    • Datadir is not writable
      • data/pages/ ディレクトリは 2005-07-01 版で導入されたので
    • Attic is not writable
    • Mediadir is not writable
    • Cachedir is not writable

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