Мне нужна помощь в настройке локального 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