インストール
DokuWiki のインストールはとても簡単です。展開して、パーミッションを適切に設定することさえ注意すれば問題ありません。以下では、いろいろな条件に応じた詳細な説明を行います。
- Step 1: 最新のリリースを Download Page からダウンロードする。これは、 どなたも おなじです
- Step 2: 使用するプラットホームに応じて、以降で説明する指示に従う
- Step 3: トラブル解決のヒント に目を通す。ここには、設定の際の注意点なども書かれています
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
- パーミッションを適切に設定する
- 通常、ウェブサーバは、
nobody
やwww-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時間もかかってしまいましたよ
.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 の unstable と testing に含まれています。インストールにあたっては、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 は初インストールです)。
- Enable PHP on Mac OS X 〔PHP を Mac OS X で使えるようにする〕(パーソナル Web 共有を開始することも含む)
- dokuwiki-2005-07-13.tgz をダウンロード (~/Desktop へ)
- コマンドラインから
$ 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
- アクセス管理を使う場合 (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
- 次のように設定するのが重要
$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)
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-YYYY-MM-DD
フォルダをdokuwiki
へ名前を変える。次に、- ウェブサーバのドキュメントルート下のどこか、
c:\inetpub\dokuwiki
など、へ移動する - または、マシンのどこでも良いが、その場所へ Virtual Directory マッピングを設定する
dokuwiki/data/
フォルダ内に空のchanges.log
という名前のファイルを新規作成する。さらに、attic/, meta/, locks/ および cache/ フォルダを作成する。2006-03-09 のバージョン (おそらくそれ以降も) では、これは必要ない
前の fixme の記述は誤っている。2006/05/01 の時点で、changes.log と meta/ フォルダを手動で作った。このファイルとフォルダは dokuwiki のオリジナルの .tar.gz ファイルにはない
「誤っている」というのは言い過ぎだろう。「これは」という単語が誤解されてるのだろう。changes.log
ファイルはやっぱり作成しないといけないが、フォルダは自動的にできるよ
おなじ問題にぶちあたった。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 だけでなく、Nagios や Double 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 ディレクトリを作成し、そこをセッションディレクトリとして使用するように設定を変更する
- dokiwiki ディレクトリに tmp ディレクトリを新しく作成する
- その新しいディレクトリを 777 へ chmod する
- 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 ページが表示されたら
、
check
オプションを次のようにつけて、設定のチェックを行う。 http://www.example.com/dokuwiki/doku.php?do=check - 赤い警告が表示されたら、FTP プログラムを使ってパーミッションの修正が必要かもしれない
開発版
トラブル解決のヒント
説明どおりにインストールすれば、基本的に 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 を参照)
(上記の問題(ディレクトリやファイルがないとか、アクセス権が不十分であるとか))はきっと今後のリリースで修正させるだろう)提案だが、それらの今無いファイルやディレクトリをアーカイブに含められないか?空白文字ひとつのファイルを使うとか。また、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 ファイルを変更してある場合、前の版のファイルで上書きする
-
- これらのファイルは 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
動いたら次に行う事
すべてが完了して動作したら、次も行うと良いでしょう。
- security ページをチェックして緊急修正 hotfixes の情報を得る
- modrewrite を有効にする
- コンテンツに適用するライセンスを検討する。dokuwiki/lib/tpl/default ディレクトリにある
footer.html
を編集して適切なライセンスにする - Apache を使っているなら、
.htaccess
の URL 書き換え規則を有効にし、適切な設定を行う style.css
を好みにあわせて変更する- freshmeat.net で、DokuWiki を subscribe し、アップデート情報を得たり、セキュリティ情報が発生した際にメールを受けるようにする
複数 Wiki 1
複数 wiki や wiki ファームについては、 freelists.org archives で、 このスレッド や このスレッド、 それに ここ で簡単ですが示されています。 さらに Andi は、$conf['title'] を利用してインストールごとに異なるクッキーが生成されるように変更を行ったと述べています。
名前空間は、ひとつのインストール内でコンテンツを分割するためにものです。複数インストールとは、それぞれが別個にアップグレードが必要であるということです。複数のインスタンスで、コードを共有するものではありません、debian 等のパッケージによるインストールは複数インストールを処理できません。しかし、こういう手間はかける価値のあるものです。Apache を使った GNU/Linux インストールに適用できるアプローチを紹介します。他の状況でも適用できるでしょう。
- 通常にインストールし、テストする
- conf/local.php を生成して、タイトル行その他変更したい行を記述する
- “dokuwiki”フォルダをコピーして、内容にあった名称を与える
- 新しいフォルダの $conf[’title’] を設定し、インストールごとに異なるタイトルとする
- 新しいフォルダが“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', '&');
の次に挿入する。
そして、好きにコピーを行う。シンプルです。
翻訳について
english version: 2006-08-17 20:33.
Add your email here if you created translated or modified whole or part of this page. このページを作成・変更した方は、次にメールアドレスを追記してください。