无法找到在fastCGI apache服务器上安装Django时的错误日志
我在尝试在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模式。