私はここで奇妙な問題を抱えています。私は(作業中の)サイトを私が直接アクセスすることができない新しいApacheサーバーに移動しています(私は2人で作業しなければなりません)。
このサイトでは、adframeというperlスクリプトを使用してhtmlテンプレートを解析しています。呼び出されたURLは/cgi-bin/adframe/index.html?x=something
、adframe
はスクリプトです。不足している接尾辞は実際の問題を引き起こしませんでした。しかし、この新しいUbuntuサーバーでは、$ENV{'QUERY_STRING'}
は常に空です。 $ENV{'REQUEST_METHOD'}
はGETとして正しく表示されますが、query_stringには何も表示されません。
通常の.cgiスクリプトでは問題なくquery_stringが表示されます。
ログから、サーバーがfastcgi、mod_fcgidを実行しているように見え、サーバーはスクリプトの拡張子として.plを受け入れないこともあります。私はサーバーソフトウェアでそれほど多くの経験はありませんが、サーバがcgiスクリプトとしてadframeを受け入れず、正しくquery_stringを渡していないという問題があると思いました...誰かに私に何かのヒントを教えてもらえますか?管理者または.htaccessで自分でできることを指摘することができますか?とにかく、adframe
はCGIスクリプトとして認識されます! (それが問題ならば...)
何か助けてください! トーマス
編集:私は詳細が見つかりました:サーバーは、ワニスキャッシュを実行しているようだ...私の通常の構成との主な違いは、thatsのだ... また、スクリプトが動作する方法があり、あなたが呼び出す場合/ $ ENV {PATH_INFO}はどのテンプレートを解析するかを示し、$ ENV {QUERY_STRING}はクエリ文字列です。今度はクエリ文字列は空ですが、/ cgi-bin/adframe?x = something(PATH_INFOなし)を呼び出すと、クエリ文字列が表示されます。 誰でもここで何が起こっているのか考えていますか?感謝! ありがとう!
実際に実行されますか? (たとえば、エラーを返すか、パラメータなしで呼び出されたかのように正しく実行されますか?)また、サーバーに一致するPOST要求を送信するとどうなりますか? – DVK
こんにちは、ヒントのおかげで。はい、パラメータが渡されなかったかのように実行されます。POSTはSTDINを介してスクリプトに到達します... – thomas
また、クエリ文字列を取得するために$ cgi-> param()を試しました。運がない。 – thomas