如果我浏览到我的站点,我会收到 500“内部服务器错误”。但是,如果我通过 SSH 连接到我的服务器并转到我的站点文件夹并运行“python mysite.fcgi”,我会看到 HTML 渲染得很好。显然,出了点问题,但我不确定是什么。
这是我的 .htaccess 文件:
AddHandler fastcgi-script .fcgi
RewriteEngine On
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(static/.*)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]
这是我的 mysite.fcgi 文件:
#!/usr/bin/python2.5
import sys, os
sys.path.insert(0, "/kunden/homepages/34/[mydir]/htdocs/projects/django")
sys.path.insert(1, "/kunden/homepages/34/[mydir]/lib/python/site-packages")
os.chdir("/kunden/homepages/34/[mydir]/htdocs/projects/django/mysite")
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
from django.core.servers.fastcgi import runfastcgi
runfastcgi(["method=threaded", "daemonize=false"])
我在 1and1 上进行设置。这很痛苦,但我想我已经接近了。
对于 CGI,500 服务器错误通常是由 CGI 在 HTML 代码之前输出的错误标头数据引起的。您应该在 html 开始之前输出内容类型和两个回车符“\n”。 任何意外的输出都会导致 500 错误。
我不是 Python 人,所以这里有一个 Perl 示例。;-)
您可以在服务器日志中找到确切的原因。当您看到 500 错误时,请务必先检查那里。
尝试:
然后 chmod 777 那个文件夹。
如果您可以将其作为 ssh 运行,并且 apache 以 www-data(或您的其他 UID)运行,则它可能正在尝试写入 eggcache 并获得拒绝权限。