2

尝试在 FastCGI apache 服务器上安装 Django 时,我从错误日志中收到此错误。

[Tue Feb 19 10:28:54 2013] [warn] [client 74.59.229.207] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Tue Feb 19 10:28:54 2013] [error] [client 74.59.229.207] Premature end of script headers: mysite.fcgi
[Tue Feb 19 10:28:54 2013] [error] [client 74.59.229.207] Premature end of script headers: 500.php

我不明白问题是来自服务器设置还是我的 .fcgi 代码。

.htaccess

AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(adminmedia/.*)$ - [L]
RewriteCond %{REQUEST_URI} !(mysite.fcgi)
RewriteRule ^(.*)$ mysite.fcgi/$1 [L]

我的网站.fcgi

#!/usr/bin/python
import sys, os

sys.path.insert(0, "/home2/lacliniq/opt/python27/bin/python")
sys.path.insert(1, "/home2/lacliniq/opt/python27/lib")

os.chdir("/home2/lacliniq/public_html/checkupappdev")

os.environ['DJANGO_SETTINGS_MODULE'] = "firstaid.settings"

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")

我觉得 .fcgi 代码没问题,因为它在从 shell 运行时按预期运行。如果有人可以帮助我走上正确的道路,那真的会有所帮助!

4

3 回答 3

4

正如乔丹所说,这是fcgi文件的问题。

我在尝试让 Django 在 bluehost 上工作时遇到了同样的问题。首先要检查的几件事是 fcgi 文件设置为 755,并使用以下命令确保您的设置文件格式正确:

python manage.py runserver

如果一切正常,请尝试我在https://my.hostmonster.com/cgi/help/585找到的解决方案。从那里的方向:

cd <fcgi directory>
unset PYTHONPATH
./mysite.fcgi

如果您收到如下错误:

bad interpreter: No such file or directory

这意味着 shebang (#!) 行指向一个不存在的文件或目录,或者 fcgi 是通过 ftp 以二进制模式而不是 ascii 上传的。

于 2013-04-21T19:47:11.450 回答
2

尝试改变“观点”:以 apache 用户身份运行 fcgi 文件(我相信会显示一些有趣的消息)。例如

$ sudo su www-data
$ cd <fcgi directory>
$ ./mysite.fcgi
于 2013-10-18T19:20:37.770 回答
0

这可能是您的 .fcgi 文件有问题,或者更有可能是配置 django 站点时出现问题。

尝试使用 ./mysite.fcgi 在 shell 中直接运行您的 .fcgi。它应该会吐出一些错误,这将为您提供一些解决问题的方法。

于 2013-02-19T18:42:46.583 回答