Apache executando Python com mod_wsgi

2

Preciso de ajuda para configurar um Apache2 local para executar o Python. Consegui trabalhar muito bem com html, php e mysql no meu Mac executando o Mountain Lion.

Python em execução. Instalou o mod_wsgi através do MacPorts e verificou que ele foi carregado pelo Apache depois de adicionar o seguinte ao 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>

Coloque meu arquivo index.py no 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]

Deu permissão ao chmod 777 para o caminho completo /opt/local/apache2/htdocs/index.py

Não importa o que eu faça, continuo recebendo o "Proibido. Você não tem permissão para acessar /index.py neste servidor." ao ir para localhost / index.py.

O log de erro do Apache diz:

[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/

Como posso resolver esse problema de permissão? O que é o Options ExecCGI?

    
por MartinR 30.08.2012 / 18:18

1 resposta

2

Tente usar a extensão .wsgi em vez de .py. Você provavelmente tem uma definição conflitante em sua configuração do Apache em algum lugar que diz que .py é um script CGI. Use também o WSGIScriptAlias de preferência ao método AddHandler para configurar o mod_wsgi. Veja a documentação:

link link

    
por 31.08.2012 / 01:02