Pages - Menu

2013-12-25

PukiWiki Advance セットアッップのメモ

自前サーバで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ファイルの設定が間違っている可能性がある。

  1. pukiwiki.ini.phpをエディタで開き、223行目あたりの$static_urlの値を0にする。
    これによって、/FrontPageが/?FrontPageのように出力されるようになる。
  2. Apacheのconf/httpd.confをエディタで開き、rewrite.moduleのロードをコメントアウトする。
    #LoadModule rewrite_module modules/mod_rewrite.so

その他

正しく表示されない場合、関係があるかもしれない設定項目。

rewriteモジュール

URLrewrite機能を利用しないならば(しないほうが無難だと思う)、rewriteモジュールはロードしないようにする(webroot/.htaccess内のIfModule rewrite.cで呼び出されるため)。

mbstringモジュール

php.iniを開き、module_mbstringのコメントアウトをはずす。さらに下のほうにある[mbstring]以降の設定項目を適宜コメントアウトを外して有効にする。

php.iniが反映されない

php.iniを編集しても、Apache上で反映されないことがある。
以下の項目をチェックする:
・httpd.confのPHPIniDirの参照先
・httpd.confのphp5apache2_4.dllモジュール(モジュールの設置場所は利用するphpのディレクトリ、たまにモジュールに問題があり接続できない?)

0 件のコメント:

コメントを投稿