* 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]]
 
 
 -----
 [[テンポラリ記憶]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS