尝试在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代码没问题,因为它从shell运行时按预期运行。 如果有人可以帮助我走上正确的道路,那真的会有所帮助!
答案 0 :(得分: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上传的。
答案 1 :(得分:2)
尝试更改“观点”:以apache用户身份运行fcgi文件(我确定会显示一些有趣的消息)。 E.g。
$ sudo su www-data
$ cd <fcgi directory>
$ ./mysite.fcgi
答案 2 :(得分:0)
您的.fcgi文件可能存在问题,甚至更有可能在配置django网站时遇到问题。
尝试使用./mysite.fcgi直接在shell中运行.fcgi。它应该吐出一些错误,这将给你一些解决问题的方法。