自前サーバでPukiWiki(Advance)をセットアップしたときのトラブルのメモ。
スペックWindows7(x86), Apache2.4, PHP 5.4.23, PukiWiki Advance v1.0.3
(PHP5.5でPukiWikiAdv1.0.3を動かそうとするとwarning:preg_replaceがログされる。PHP5.4を推奨)
設定確認に関する基本的な事項
- 必要なモジュールを公式ページでチェックし、正しくロードされているか確認する。
モジュール設定後、正しくロードされている場合はphpinfo()でモジュール名がついたテーブルが表示される。 - Apacheの/log/error.logを確認する。
- pukiwiki/webroot/index.phpをエディタで開き、DebugModeを有効にする。
index.phpを開いて、エラーがある場合は表示される。
index.php以外が表示されない
http://xxx/index.php は表示されるが、その他のページへのリンクでは、403やファイルの一覧が表示されてしまう。
次のようなパターンがある:
コマンドページが表示されない
たとえばログインページ(http://xxx/?cmd=login)に飛ぼうとして、403やDirectoryのファイル一覧が表示されてしまう場合は、はてなマーク以降のコマンド(cmd=login)がindex.phpに渡せていない。
解決法URLを"http://xxx/index.php?cmd=login"に手動で変更すると正しく表示される場合は、DirectoryIndexの問題。
httpd.confまたは.htaccessでwebrootディレクトリのDirectoryIndexをindex.phpに変更する(以下参照)。
<IfModule dir_module> DirectoryIndex index.php </IfModule>
他ページが表示されない
例えばトップページのURLが"http://xxx/FrontPage"と表示される場合。
解決法URLを"http://xxx/?FrontPage"(または"http://xxx/index.php?FrontPage)に手動で変更して正しく表示される場合は、wiki-data/pukiwiki.ini.phpファイルの設定が間違っている可能性がある。
- pukiwiki.ini.phpをエディタで開き、223行目あたりの$static_urlの値を0にする。
これによって、/FrontPageが/?FrontPageのように出力されるようになる。 - Apacheのconf/httpd.confをエディタで開き、rewrite.moduleのロードをコメントアウトする。
#LoadModule rewrite_module modules/mod_rewrite.so
その他
rewriteモジュール
mbstringモジュール
php.iniを開き、module_mbstringのコメントアウトをはずす。さらに下のほうにある[mbstring]以降の設定項目を適宜コメントアウトを外して有効にする。
php.iniが反映されない
php.iniを編集しても、Apache上で反映されないことがある。
以下の項目をチェックする:
・httpd.confのPHPIniDirの参照先
・httpd.confのphp5apache2_4.dllモジュール(モジュールの設置場所は利用するphpのディレクトリ、たまにモジュールに問題があり接続できない?)
0 件のコメント:
コメントを投稿