No Djano, por que recebo um erro de 500 servidores ao navegar, mas o “python mysite.fcgi” do SSH funciona bem?

2

Se eu navegar para o meu site, recebo um erro de 500 "no servidor interno". No entanto, se eu SSH no meu servidor e ir para a pasta do meu site e executar "python mysite.fcgi" eu vejo o HTML processado bem. Obviamente, algo está errado, mas não sei o que.

Aqui está o meu arquivo .htaccess:

AddHandler fastcgi-script .fcgi
RewriteEngine On
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(static/.*)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]

Aqui está o meu arquivo 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"])

Estou configurando isso no 1and1. Tem sido uma dor, mas acho que estou perto.

    
por Jim 26.02.2010 / 23:02

3 respostas

1

Com CGIs, um erro de 500 servidores é geralmente causado pela saída de dados incorretos de cabeçalho pelo seu CGI antes do código HTML. Você deve enviar o tipo de conteúdo e os retornos de carro TWO "\ n" antes do início do html. Qualquer saída inesperada causará o erro 500.

Eu não sou um cara do Python, então aqui está um exemplo do Perl. ; -)

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, World.";

Você pode encontrar a causa exata nos registros do seu servidor. Sempre verifique primeiro quando você vir 500 erros.

    
por 26.02.2010 / 23:40
0

Tente:

os.environ['PYTHON_EGG_CACHE'] = '/path/to/writeable/folder'

E então chmod 777 essa pasta.

Se você pode executá-lo como ssh, e o apache está rodando como www-data (ou algum UID diferente do seu), é possível que ele esteja tentando gravar na eggcache e ter uma permissão negada.

    
por 02.04.2010 / 02:24
0
AddHandler fastcgi-script .fcgi

<IfModule mod_fcgid.c>
    AddHandler fcgid-script .fcgi
    <Files ~ (\.fcgi)>
        SetHandler fcgid-script
        Options +FollowSymLinks +ExecCGI
    </Files>
</IfModule>

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /mysite.fcgi/$1 [QSA,L]
    
por 14.11.2015 / 08:00