Apache работает с Python с mod_wsgi

Мне нужна помощь в настройке локального Apache2 для запуска Python. На моем Mac под управлением Mountain Lion все отлично работает с html, php и mysql.

Python работает. Установил mod_wsgi через MacPorts и проверил, загрузился ли он Apache после добавления следующего в httpd.conf:

LoadModule wsgi_module modules/mod_wsgi.so
<Directory /opt/local/apache2/htdocs>
AddHandler wsgi-script .py
Options +ExecCGI
Order deny,allow
Allow from all
</Directory>

Поместите мой файл index.py в htdocs:

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]

Предоставил chmod 777 разрешение на весь путь /opt/local/apache2/htdocs/index.py

Независимо от того, что я делаю, я получаю "Запрещено. У вас нет разрешения на доступ к /index.py на этом сервере". при переходе на localhost/index.py.

Журнал ошибок Apache гласит:

[Thu Aug 30 17:46:46 2012] [error] [client 127.0.0.1] Options ExecCGI is off in this directory: /opt/local/apache2/htdocs/index.py, referer: http://localhost/

Как я могу решить эту проблему разрешения? Что такое параметры ExecCGI?

1 ответ

Решение

Попробуйте использовать расширение.wsgi вместо.py. Вероятно, в вашей настройке Apache есть противоречивое определение, в котором говорится, что.py - это CGI-скрипт. Также используйте WSGIScriptAlias ​​вместо метода AddHandler для настройки mod_wsgi. Смотрите документацию:

http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines

Другие вопросы по тегам