[SAPI] CGI版PHPへの対応†
- ページ: BugTrack
- 投稿者: reimy
- 優先順位: 普通
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2002-07-03 (水) 17:43:54
- バージョン:
メッセージ†
雑談及びtomixのページに書かれているように、CGI版PHPで動作させるための情報提供をよろしく。
どうも引数がうまく渡らないらしい。
tomixさんの使っているサーバは
http://www.kigou.com/ がCGIへマップされていて、/p/index.phpがエクストラパスとして起動する環境らしい。
その関係か、init.php で、 $script が正しく初期化されていないので、直接指定するようにした。pukiwiki.ini.phpで指定しても同じなので、これを指定する事を推奨した方がいいと思います。
また、CGIバージョンとして起動する時には、QUERY_STRINGが、HTTP_SERVER_VERSに入ってこない(内部リダイレクトの関係か?)ので、
init.php の、59行目付近を以下の様に変えた。
$arg = rawurldecode(getenv("QUERY_STRING"));
自分の動作モードを見て、自動判別するか、PukiWiki.ini.php で指定できるようにした方が良いと思います。
添付したパッチでは、環境を見て切り替わってくれるはず(多分)。
あと、pukiwiki.ini.phpの設定 FAQ として、インストレーションマニュアルに書いておいた方がよろしいかと。
追加情報†
一部のサーバーでは、CGI版PHPで動作させるためには、各スクリプトの先頭行で
#!/usr/local/bin/php
と記述し、スクリプトの拡張子をcgiに変更しなければならない場合があります。
また、suEXECが動作するサーバーでは、cgiが設置者のユーザー権限で動作するため、各ディレクトリのパーミッションを755→705、777→707に、各ファイルのパーミッションを644→600(604)、666→600(606)に変更しないとセキュリティチェック機能によりパーミッションエラーを起こす場合があります。
一部のサーバーでは、cgiが特定のディレクトリでしか動作しないように設定されている場合があります。
- page=XXX の時は通るのかな?単にcgi版だと、argv の内容がHTTP引数でないというだけでは無いでしょうか? -- seagull 2002-07-03 (水) 18:09:34
- 「?cmd=read&page=SandBox」 ←こういう引数渡すと、えらいことになってますねぇ。。。 -- seagull 2002-07-03 (水) 18:22:39
- seagullさんの指摘、21行目はやってたんですけど、59行目はやってませんでした。でも動かない... -- tomix 2002-07-03 (水) 18:51:48
- 修正箇所をまちがっていたみたい。でもリンクをクリックするといきなり編集モードへ移動しますね -- tomix 2002-07-03 (水) 18:54:49
- いま直りました!seagullさん みなさん 感謝感謝です! -- tomix 2002-07-03 (水) 19:09:30
- 現在文字化けなどの修正中(って僕がなにもできないのが情けない...) -- tomix 2002-07-03 (水) 19:30:47
- ふむふむ。具体的にどこをどのように修正したら動くようになったかを報告していただければ、マニュアルに反映させますのでよろしく>tomix -- reimy 2002-07-03 (水) 20:21:10
- 今のところ、www.kigou.com では、'http://www.kigou.com/'というCGIで'/p/index.php/' というExtraPathが渡ってるらしいので、その辺の対応と、 -- seagull 2002-07-03 (水) 20:42:48
- HTTP_SERVER_VARS で、QueryString がうまくとれないらしいので、昔懐かし getenv("QUERY_STRING") に変更したくらいです。 -- seagull 2002-07-03 (水) 20:44:38
- あと、内部リダイレクトで動かしてるらしくて、どこかの汚染検査だと思うけど、引数が化けてるくらいですかねぇ。 -- seagull 2002-07-03 (水) 20:45:35
- <A>が付いちゃう現象って、どっかで見た覚えがあるんだけどなぁ。 -- seagull 2002-07-03 (水) 21:30:04
- seagullさんのお力で無事動くようになりました。みなさんありがとう! -- tomix 2002-07-04 (木) 00:39:18
20020704_1.patch --
- WinXp上でAnhttpdを利用してローカルで動かしています。同じバグが出たので、Win上でwikiを動かすためのマニュアルが欲しいかもしれません。 -- Takachin 2002-07-04 (木) 03:37:14
- とりあえず、WinXp+Anhttpd上ではinit.phpの$scriptの行に直接パスを指定して動かしています。 -- Takachin 2002-07-04 (木) 03:43:01
- 情報ありがとうございます。seagullさん提供のパッチがCVSに反映されたら、情報をまとめてマニュアルに反映させます。 -- reimy 2002-07-04 (木) 05:18:50
- パッチ当てました。$scriptが適切に設定されていないときにエラーを出すようにしました。cvs:init.php -- ゆう 2002-07-04 (木) 15:02:52