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