0

FastCGI スクリプトによって処理されるページ駆動型にアクセスするたびに、Apache はコード 400 "Bad Request" の HTTP 応答を詳細なしで吐き出しています。

  • mod_fcgid モジュールをインストールし、Apache 構成ファイルにロードして構成しました
  • いくつかの FastCGI スクリプトをテストしましたが、それらはすべて直接実行すると実行されます。
  • 静的リソースは適切に提供されます。
  • URLを存在しないスクリプトに書き換えるとエラーが発生するため、Apacheがスクリプトを起動しようとしています

私のApache Configの何が問題なのか、誰にも分かりますか?

<VirtualHost ip.ad.re.ss:80>
  ServerName   demo.domain.com:80 

  DocumentRoot /var/www/vhosts/domain.com/subdomains/demo/rails/public
  CustomLog  /var/www/vhosts/domain.com/statistics/logs/demo_access_log combined
  ErrorLog  /var/www/vhosts/domain.com/statistics/logs/demo_error_log
  LogLevel info
  Options +FollowSymLinks +ExecCGI -SymLinksIfOwnerMatch
  AddHandler fcgid-script .fcgi

  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
</VirtualHost>

編集 -- mod_rewrite ログを確認しましたが、URI は正しく書き換えられています

4

2 に答える 2

0

DOCUMENT_ROOT 書き換え条件を削除してみてください。次に、mod_rewrite ログ ディレクティブを確認してください。このような奇妙な問題に関しては、非常に有益です。

于 2008-12-21T04:43:40.327 に答える
0

よし、もう 1 つ試してみよう。
http://httpd.apache.org/docs/2.2/mod/core.html#loglevel .

ログ レベルを debug に設定し、個々のイベント (get/put) ごとに大量の出力が生成されるため、これが運用マシン上にないことを確認します。

上記のFastCGIの例には何かが欠けていると思いますが、phpまたはpython fastcgi以外のことをしてからしばらく経っていることを認めます。
dispatch.fcgi は何語ですか? コマンドラインから実行できますか? また、Apache にはファイルを実行する権限がありますか? ( sudo su apacheaccount )。

更新: 何かが足りないことに気付きました: チェックアウト -> http://fastcgi.coremail.cn/configuration.htm FCGIWrapper は、fast cgi に、dispatch.fcgi ファイルの実行に何を使用するかを伝えるために必要です。

于 2008-12-21T23:08:09.723 に答える