* 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版が稼動するようになる。 ----- [[テンポラリ記憶]]