2008-12-21 89 views
0

Apache是​​随地吐痰的代码HTTP响应:400“错误的请求”,没有细节,每当我访问驱动被处理的页面通过FastCGI的脚本。阿帕奇给一个400错误在FastCGI的虚拟主机

  • 我已经安装了mod_fcgid模块和它的加载和配置Apache的配置文件
  • 我已经测试了FastCGI的脚本,它们都直接执行时运行。
  • 静态资源的服务适当。
  • Apache正在努力,因为当我重写URL到一个不存在的脚本

任何人有任何的想法有什么错我的Apache配置抱怨,启动脚本?

<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的被改写正确

+0

我从来没有找到解决方案,而是最终使用单个杂种实例来完成这项工作。 – 2010-06-05 22:54:18

回答

0

尝试删除DOCUMENT_ROOT重写COND。其次,检查mod_rewrite日志指令,它们的信息非常丰富,就像这样的奇怪问题。

+0

他们的信息非常丰富,我确实有一些错误。现在重写工作正常,但我仍然收到400错误。重写日志:的RewriteCond:输入= '/路径/到/应用程序/公共/' 图案= - =>匹配 重写 '/' - > 'dispatch.fcgi' 本地路径结果 'F!':dispatch.fcgi – 2008-12-21 07:04:58

0

好的,还有一件事要尝试。
http://httpd.apache.org/docs/2.2/mod/core.html#loglevel

设置日志级别进行调试,并确保这不是一个生产机器上,因为它会产生大量的每个单独的事件(GET /把)输出。

我认为如何你上面的例子FastCGI的是失去了一些东西,但我承认它已经有一段时间我做了什么,但PHP或者Python的FastCGI。
dispatch.fcgi是什么语言? 你能从命令行执行它并且Apache有执行文件的权限吗? (sudo su apacheaccount)。

更新: 知道你错过了一些东西:看看 - >http://fastcgi.coremail.cn/configuration.htm FCGIWrapper是告诉快速cgi执行你的dispatch.fcgi文件需要什么。

+0

由于尝试。我改变了LogLevel,但是错误日志是空的,访问日志是正常的,因为Apache并不认为它是我认为的错误。 这是红宝石,是的,dispatch.fcgi是可执行的,每个人都可以阅读。 – 2008-12-22 08:39:46