- 追加された行はこの色です。
- 削除された行はこの色です。
#freeze
* PukiWikiをCGIで動かす方法 [#ede8bc93]
サーバによっては、PukiWikiがそのまま正常に動作しないことがある。その現象としては主に以下の通り。
- 閲覧はできるが、編集、更新が出来ない。
- 更新しようとすると、パーミッションエラーが発生する。
-- 「パーミッションが違うか、またはファイル名が長い」というようなエラー。
- chown でファイルオーナーを変更すると更新できる。
- ところが、一定時間経過後に更新しようとするとまた失敗する。
この主な原因は、以下の2つ。
- サーバが PHP に対応していない。
- サーバで [[suEXEC:http://httpd.apache.org/docs/2.0/ja/suexec.html]] が動作している為、ファイルオーナーがユーザに変更されている。
ファイルオーナーを chown で Webサーバ (apache) 変更すると更新が成功するようになる、という現象が確認できるサーバは suEXEC が原因と思って間違いない。
なぜなら、現に私がそうだったから!
これを解決するには、PukiWiki を CGI で動かすという方法がある。
*** 確認事項 [#m5c44feb]
まず、サーバに CGI版PHP がインストールされているかどうかが重要。
これがないとどうしようもない。
*** suEXEC って? [#k3154925]
suEXEC というものが私はよくわかっていないのだけど、
どうもこいつは、Webサーバの実行権限をユーザとして扱うプログラムのようで、
Webサーバが作ったり更新したりするファイルのオーナーは、
全てユーザになってしまうらしい。
つまり、“Webサーバはユーザである”と思い込むということ。
…であるクセに、Webサーバ自体は相変わらずWebサーバとして扱われ、
Webサーバがそのファイルをいじろうとすると、
「おまいのファイルじゃねぇyp!」と怒るわけで、わけわからん。
*** ファイルのパーミッション [#j42813e4]
[[公式サポートページ:http://pukiwiki.sourceforge.jp/?PukiWiki%2FCGI%E7%89%88PHP%E3%81%A7%E5%8B%95%E4%BD%9C%E3%81%95%E3%81%9B%E3%82%8B%E3%81%AB%E3%81%AF]]によると、ファイルやフォルダのパーミッションの設定を、
次のように設定しなおすようにとある。
フォルダ
- 755→705
- 777→707
ファイル
- 644→600(604)
- 666→600(606)
これは、グループの全ての権限を奪えということか。
そして、PHPで直接動く場合は *.php ファイルの実行権限は読み取りのみで良いのだけど、CGIで動かす場合は実行権限を与えなければならない。
つまり、 *.cgi などにそうするように 755 を設定する。ただ、suEXEC 対応で、この場合もやはり 705 となるか。
あと、同ページによると、pukiwiki.ini.php のスクリプトのパスの設定を明記するように、とあるけど、これを有効にしてもしなくても、私の場合は動いた。
*** .htaccess の設定 [#u1da0584]
PukiWiki を入れているフォルダの .htaccess に次の記述を追加する。
RemoveType .php
AddHandler cgi-script .php
以上で、とりあえずCGI版が稼動するようになる。
*** 制限 [#w7ff09fa]
モジュール版PHP(mod_php)でなくCGI版で動作させる場合、
PHPのhead()を使用するBasic認証が使用できない。
つまり、次のユーザ認証の設定が使えない。
$auth_users
$auth_read
$auth_edit
$auth_search
''参考''
- [[質問箱3/506/$edit_auth のBasic認証ができない:http://pukiwiki.sourceforge.jp/?%E8%B3%AA%E5%95%8F%E7%AE%B13%2F506]]
- [[PukiWiki/CGI版PHPで動作させるには:http://pukiwiki.sourceforge.jp/?PukiWiki%2FCGI%E7%89%88PHP%E3%81%A7%E5%8B%95%E4%BD%9C%E3%81%95%E3%81%9B%E3%82%8B%E3%81%AB%E3%81%AF]]
- [[続・質問箱/198/CGI版PHPでheader()関数が使えないのでBasic認証が通らない:http://pukiwiki.sourceforge.jp/?%E7%B6%9A%E3%83%BB%E8%B3%AA%E5%95%8F%E7%AE%B1%2F198]]
- [[Use PukiWiki/ユーザ認証:http://pukiwiki.sourceforge.jp/?Use%20PukiWiki%2F%E3%83%A6%E3%83%BC%E3%82%B6%E8%AA%8D%E8%A8%BC]]
-----
[[テンポラリ記憶]]