Ubuntu Vserver (Strato): le script wsgi est affiché en texte brut

2

J'ai testé la configuration sur une boîte Gentoo locale, mais cela ne fonctionne pas sur mon Strato-vServer:

$ apache2 -M|grep wsgi
wsgi_module (shared)

# cat /etc/apache2/sites-enabled/000-default 
<VirtualHost *:80>

    DocumentRoot /var/www/vhosts/default/

    <Directory /var/www/vhosts/default/>
    Options Indexes FollowSymLinks MultiViews ExecCGI

    AddHandler cgi-script .cgi
    AddHandler wsgi-script .wsgi

    SetHandler wsgi-script
    Options ExecCGI

    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

ScriptAlias /cgi-bin/ "/var/www/vhosts/default/cgi-bin/"
<Directory "/var/www/vhosts/default/cgi-bin/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

Le script wsgi:

root@h1900160:/var/www/vhosts/default/cgi-bin# cat test.wsgi 
def application(environ, start_response):
    status = "200 OK"
    output = "Hello World!"

    response_headers = [('Content-type', 'text/plain'),
                ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

Le script est uniquement affiché en texte brut. Le journal des erreurs dit ceci:

[Fri May 13 12:54:02 2011] [info] mod_wsgi (pid=14311): Attach interpreter ''.
Tobias Kaminsky
la source

Réponses:

1

Non pas que cela résoudra votre problème, mais vous devriez avoir la ligne suivante:

SetHandler wsgi-script

La ligne:

AddHandler wsgi-script .wsgi

assure déjà que tout ce qui porte l'extension .wsgi est traité par mod_wsgi. L'ajout de SetHandler ne servira qu'à faire en sorte que les scripts .cgi ne soient plus servis en tant que scripts CGI. En outre, vous ne seriez plus en mesure de stocker des fichiers statiques.

Graham Dumpleton
la source