PukiWiki INSTALL $Id: INSTALL.txt,v 1.9 2007/02/11 05:53:30 henoheno Exp $ インストール ============ 概要 PukiWikiはPHPスクリプトであるため、PHP(PHP 4.1.2 - PHP 5.x)が動作するWe bサーバーであれば容易に設置でき、軽快に動作します。(例えばPerlのように) スクリプトに実行権をつける必要はありません。PHPがCGI起動でないのであれ ば、スクリプトの一行目を修正する必要もありません。 一般的なUnix環境向けにアクセス権限(パーミッション)を設定した状態でパッ ケージが作成されているため、Webサーバー上でパッケージを展開できるのであ れば、インストールの際にアクセス権限を修正する必要はありません。 インストール手順 1. PHP (PHP 4.1.2 - PHP 5.x) が動作するWebサーバーを用意する 2. 不明であれば、PHPの動作と設定を確認する 事前に、ごく簡単なPHPスクリプトが動作するか確認して下さい。 例: _test.php というファイルを用意して、中身を とする (動作を確認次第、このファイルは必ず削除して下さい) 3. Webブラウザからアクセスできる位置にパッケージを展開する Unixのコンソールが動作する環境の場合 (pオプションは必須): $ tar pzxf pukiwiki-X.X.X.tar.gz Windwos OSの場合: 何らかのツールでtarまたはzipパッケージを展開する 4. Webブラウザから最低限の動作を確認する 通常は pukiwiki-X.X.X(バージョン番号) というディレクトリが作成されて おり、 http://example.org/path/to/your/pukiwiki-X.X.X/ にアクセスするだけで PukiWikiが動作します。 Webサーバーの設定によっては pukiwiki-X.X.X/index.php にアクセスする 必要があります。 何らかの作業がきっかけで動作不能となり、手詰まりとなった場合 別の場所に新しくPukiWikiを設置し、それが動作するかどうかを確認し、動作 するならば、二つの間で何が異なるのかを追究して下さい。 場合によっては、(DATA_DIR などの)データを保存しているディレクトリと設定 だけを、動作する側へ移植する事により問題を回避する事を検討して下さい。 index.phpにアクセスできたが、何も表示されない(真っ白な画面)場合 1. Webサーバーの管理者に、PukiWikiを設置した場所、アクセスした日時をな るべく正確に伝え、エラーログに何か記述されていないか、あるならばその 内容を聞き取ってさい。 2. index.php の先頭にある以下の行のコメント("//")を外し、再びWebブラウ ザからアクセスし、エラーが表示されていないか確認して下さい。 エラーが解消された後は、必ずこの行を元に戻して下さい。 この行を //error_reporting(E_ALL); // Debug purpose このようにする error_reporting(E_ALL); // Debug purpose エラーが表示される場合: Parse error "Parse error: parse error, unexpected XXXX in .... on line NNN" PHPスクリプトに矛盾がある場合、このようなメッセージが表示されます。指定 されているファイルの、指定された行の付近をチェックし、問題があれば修正し て下さい。複数箇所に矛盾がある場合、一つづつエラーが表示されます。理由と しては以下のようなケースが考えられます。 1. ファイルを編集した結果、行末にあったセミコロン(";")を消してしまった 2. ファイルを編集した結果、文字列をシングルクォートかダブルクォートで 囲むはずが、片方を消してしまった / 文字列の中に(文字列を囲んでいる のと同じ)シングルクォートやダブルクォートがある OK: $var = "foo's " . 'bar' . " is 'foobar'"; NG: $var = "foo's ' . "bar' . " is 'foobar 3. ファイルを一切編集していないのに Parse error となる場合、ファイル が適切に(ファイル名の大文字小文字、文字コード、改行コードなどが変 更されずに)転送されているか確認して下さい。 エラーが表示される場合: Runtime error "Error message : Directory is not found or not writable (xxx_DIR)" データを書き込むディレクトリ(やファイル)に書き込み権限が無い場合、このよ うなメッセージを表示します。xxx_DIR がどこにあたるかは、設定ファイルで同 名の定数を定義している部分を参照して下さい。 Unix上の権限設定については下記の注意点も参照して下さい。 エラーが表示される場合: Server API "CGI" phpinfo() が表示する項目のうち "Server API" が "CGI" となっているサーバ ーでは、PHPがCGIプログラムとして起動される構成になっています。 CGI版のPHPが設置されたサーバー(特にsuExecと組み合わされている環境)で動作 させようとした場合に "Internal Server Error" などと表示される場合がありま す。詳しくはサーバー管理者がPHPスクリプト向けに提供している情報を確認して 下さい。 1. 実行するPHPスクリプト(PukiWikiの場合 index.php か pukiwiki.php)の 一行目に、PHPバイナリへのパスを追加する必要があるかもしれません。 (例: #!/usr/local/bin/php)この値はサーバーにより異なります。 2. たいていの場合、より厳密なパーミッションが求められます。 エラーが表示される場合: .htaccessファイル PukiWiki 1.4.4 から .htaccess ファイルを添付する様になっていますが、 Apache Web サーバーの設定によっては "Internal Server Error" の原因とな る場合があります。 具体例: Webブラウザに "Internal Server Error" と表示され Webサーバーのエラーログには "order not allowed here" というエラーが記 録される これはPukiWikiを設置したい場所で .htaccess による設定変更が許可されてい ない(特に "AllowOverride Limit" でない)のが原因です。 回避策: .htaccess、および skin/.htaccess を削除する 解決策: Apache設定ファイル(httpd.conf)の、PukiWikiを設置したいディレクトリに 関する部分に "AllowOverride Limit" を追加する エラーが表示される場合: CSSが動作しない (デザインがおかしい) skin/pukiwiki.css.php は単独のPHPプログラムであるため、CGI起動が必要な 環境であったり、mod_layout による広告挿入回避を行う場合はこのファイルに ついても index.php と同様の対応を行う必要があります。 FTPなどでファイルを個別に転送する場合の注意点 基本的に何の変換も行わず、「そのまま」転送して下さい ・ファイル名や、ファイル名の大文字小文字などを変更しないで下さい ・FTPの転送モードは「バイナリ(bin)」を使用して下さい 補足: ディレクトリおよびファイルの権限(パーミッション)について(Unixの場合) 概要 一般的なUnixシステムでは、ファイル/ディレクトリに対するユーザーのア クセス権を三つの単位で設定します。 User: 所有者に対するもの Group: ファイル/ディレクトリが属するグループ(に属するユーザー) に対するもの Other: それ以外のユーザーに対するもの それぞれに与えるアクセス権についても三つの単位で設定します。 Read: ファイルの読み取り / ディレクトリ内部の閲覧 Write: ファイルの書き込み / ディレクトリ内へのファイルの作成、 ディレクトリ内にあるファイルの削除 X(Execute): ファイルの実行 / ディレクトリ内への移動 結果として、 'どのようなユーザーに、何を許可するのか' という指定は ファイル/ディレクトリごとに 3種類のユーザー x 3種類のアクセス権 = 9個の設定 によって行います。 アクセス権は、0から7までの数値でも表現することができます。 Read Write Execute 7(rwx) 許可 許可 許可 6(rw-) 許可 許可 ---- 5(r-x) 許可 ---- 許可 4(r--) 許可 ---- ---- 3(-wx) ---- 許可 許可 2(-w-) ---- 許可 ---- 1(--x) ---- ---- 許可 0(---) ---- ---- ---- これを使い、アクセス権を短く表現する事ができます。 例: 777 = "所有者"、"ファイル/ディレクトリが所属するグループ"、"そ れ以外の全てのユーザー" について、全ての許可を与える 644 = 誰でも読みとりが可能、所有者は書き込みも可能 PukiWikiやWebサーバーが要求するパーミッション パッケージから展開した直後のファイルは、このように設定されて います。 ディレクトリ パーミッション attach 777 添付ファイル格納ディレクトリ backup 777 バックアップファイル格納ディレクトリ cache 777 キャッシュファイル格納ディレクトリ counter 777 カウンタファイル格納ディレクトリ diff 777 差分ファイル格納ディレクトリ image 755 画像ファイル image/face 755 (画像ファイル)フェイスマーク lib 755 ライブラリ plugin 755 プラグイン skin 755 スキン、CSS、JavaScirptファイル wiki 777 データの格納ディレクトリ ファイル パーミッション データの種類(参考) .htaccess 644 ASCII .htpasswd 644 ASCII */.htaccess 644 ASCII ファイル パーミッション データの種類(参考) *.php 644 ASCII */*.php 644 ASCII attach/* 666 BINARY (はじめは存在せず) backup/*.gz 666 BINARY (インストール時は存在せず) backup/*.txt 666 ASCII (多くの環境では存在せず) cache/* 666 ASCII (一部のプラグインはバイナリファイルを保存します) counter/* 666 ASCII (はじめは存在せず) diff/*.txt 666 ASCII (はじめは存在せず) wiki/*.txt 666 ASCII image/* 644 BINARY image/face/* 644 BINARY lib/* 644 ASCII plugin/* 644 ASCII skin/* 644 ASCII バックアップとリストア ページの最新データを収めているディレクトリ(デフォルトの名前は wiki)以下 を、また必要に応じて他のデータを収めているディレクトリ以下をバックアップし て下さい。(同 attach, backup, cache, counter, diff) cacheディレクトリもバックアップすることをお薦めします。 1. cache/*.rel ファイルと cache/*.ref ファイルは linksプラグイン で再生 成可能ですが、この処理は非常に重く、環境によっては処理が必ず失敗する (中断する)場合があります。 2. cache/*.rel ファイルがPukiWikiに全くない時に既存のページを編集すると、 linksプラグインを実行した状態とほぼ同等の負荷がかかります。 (詳細:BugTrack2/56) 3. amazonプラグインはここに画像(のキャッシュ)を保存します。 データを配置した時は、ファイルのパーミッションが期待されている通りかどう か、また実際に動作するかどうかを確認して下さい。(例: 配置したページの更新 を試みる) PukiWiki 1.4.5 以降では、添付されている dumpプラグイン で、wiki/attach/ backup ディレクトリのリモートバックアップ(*.tar.gzないし*.tar形式)が可能で す。 起動の例: index.php?plugin=dump dumpプラグインにはdumpプラグインで取得したファイルの中身をPukiWikiに展開す る機能(リモートリストア)も用意されています。ただしファイルに含まれていない データをPukiWikiから削除する機能はありません(常に上書きになります)し、Web サーバーやPHPのアップロードファイルサイズ制限を越えるファイルを利用するこ とはできません。またこの機能はデフォルトで無効になっています。 その他、PukiWikiの更新内容をメールで通知する機能は、既存のデータを失わない ための機能としてとらえる事ができるでしょう。