Назад | Перейти на главную страницу

Apache под управлением Python с mod_wsgi

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

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/

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

Попробуйте использовать расширение .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