无法找到在fastCGI apache服务器上安装Django时的错误日志

2 投票
3 回答
2431 浏览
提问于 2025-04-17 16:23

我在尝试在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]

mysite.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代码应该没问题,因为在命令行运行时一切正常。如果有人能帮我指明方向,那就太好了!

3 个回答

0

这可能是你的 .fcgi 文件出了问题,或者更有可能的是,你在配置 Django 网站时遇到了麻烦。

试着在命令行中直接运行你的 .fcgi 文件,输入 ./mysite.fcgi。这样应该会显示一些错误信息,这些信息可以帮助你找到问题所在。

2

试着换个角度来看问题:以apache用户的身份运行这个fcgi文件(我敢肯定会有一些有趣的信息显示出来)。

$ sudo su www-data
$ cd <fcgi directory>
$ ./mysite.fcgi
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模式。

撰写回答