2

Я проверил конфигурацию на локальной коробке Gentoo, но на моем 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>

Скрипт 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]

Сценарий отображается только в виде простого текста. Журнал ошибок говорит это:

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

1 ответ1

1

Не то чтобы это решило вашу проблему, но вы должны иметь следующую строку:

SetHandler wsgi-script

Линия:

AddHandler wsgi-script .wsgi

уже гарантирует, что все с расширением .wsgi обрабатывается mod_wsgi. Добавление SetHandler только приведет к тому, что ваши сценарии .cgi больше не будут использоваться в качестве сценариев CGI. Кроме того, вы не сможете больше сервировать статические файлы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .