* [SAPI] CGI版PHPへの対応 [#l1729824]
-ページ: BugTrack
-投稿者: [[reimy]]
-優先順位: 普通
-状態: 完了
-カテゴリー: 本体バグ
-投稿日: 2002-07-03 (水) 17:43:54
-バージョン:
**メッセージ [#gf5416a7]
[[雑談]]及び[[tomix]]のページに書かれているように、CGI版PHPで動作させるための情報提供をよろしく。
どうも引数がうまく渡らないらしい。
----
** 原因 [#s97c5b0f]
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 として、インストレーションマニュアルに書いておいた方がよろしいかと。
**追加情報 [#i5fb4140]
一部のサーバーでは、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]] SIZE(1):2002-07-03 (水) 18:09:34
-「?cmd=read&page=SandBox」 ←こういう引数渡すと、えらいことになってますねぇ。。。 -- [[seagull]] SIZE(1):2002-07-03 (水) 18:22:39
-seagullさんの指摘、21行目はやってたんですけど、59行目はやってませんでした。でも動かない... -- [[tomix]] SIZE(1):2002-07-03 (水) 18:51:48
-修正箇所をまちがっていたみたい。でもリンクをクリックするといきなり編集モードへ移動しますね -- [[tomix]] SIZE(1):2002-07-03 (水) 18:54:49
-いま直りました!seagullさん みなさん 感謝感謝です! -- [[tomix]] SIZE(1):2002-07-03 (水) 19:09:30
-現在文字化けなどの修正中(って僕がなにもできないのが情けない...) -- [[tomix]] SIZE(1):2002-07-03 (水) 19:30:47
-ふむふむ。具体的にどこをどのように修正したら動くようになったかを報告していただければ、マニュアルに反映させますのでよろしく>[[tomix]] -- [[reimy]] SIZE(1):2002-07-03 (水) 20:21:10
-今のところ、www.kigou.com では、'http://www.kigou.com/'というCGIで'/p/index.php/' というExtraPathが渡ってるらしいので、その辺の対応と、 -- [[seagull]] SIZE(1):2002-07-03 (水) 20:42:48
-HTTP_SERVER_VARS で、QueryString がうまくとれないらしいので、昔懐かし getenv("QUERY_STRING") に変更したくらいです。 -- [[seagull]] SIZE(1):2002-07-03 (水) 20:44:38
-あと、内部リダイレクトで動かしてるらしくて、どこかの汚染検査だと思うけど、引数が化けてるくらいですかねぇ。 -- [[seagull]] SIZE(1):2002-07-03 (水) 20:45:35
-<A>が付いちゃう現象って、どっかで見た覚えがあるんだけどなぁ。 -- [[seagull]] SIZE(1):2002-07-03 (水) 21:30:04
-seagullさんのお力で無事動くようになりました。みなさんありがとう! -- [[tomix]] SIZE(1):2002-07-04 (木) 00:39:18
-&ref(20020704_1.patch); -- &new{2002-07-04 (木) 01:14:37};
-WinXp上でAnhttpdを利用してローカルで動かしています。同じバグが出たので、Win上でwikiを動かすためのマニュアルが欲しいかもしれません。 -- [[Takachin]] SIZE(1):2002-07-04 (木) 03:37:14
-とりあえず、WinXp+Anhttpd上ではinit.phpの$scriptの行に直接パスを指定して動かしています。 -- [[Takachin]] SIZE(1):2002-07-04 (木) 03:43:01
-情報ありがとうございます。[[seagull]]さん提供のパッチがCVSに反映されたら、情報をまとめてマニュアルに反映させます。 -- [[reimy]] SIZE(1):2002-07-04 (木) 05:18:50
-パッチ当てました。$scriptが適切に設定されていないときにエラーを出すようにしました。[[cvs:init.php]] -- [[ゆう]] SIZE(1):2002-07-04 (木) 15:02:52
- CGI 関連: [[BugTrack/68]], [[BugTrack/479]] -- &new{2009-08-25 (火) 13:26:34};
- 初期化関連: [[BugTrack/142]], [[BugTrack/411]], [[BugTrack/601]], [[BugTrack/610]], [[BugTrack/749]] -- &new{2009-08-25 (火) 13:26:34};
-- ポート関連: [[BugTrack/341]]([[BugTrack2/124]], [[BugTrack2/299]]), [[BugTrack/442]] -- &new{2009-08-25 (火) 13:26:34};
- [[BugTrack/481]], [[BugTrack/614]] -- &new{2010-10-05 (火) 20:13:45};
//#comment