Como uso o Python com o apache2?

13

Estou tentando fazer com que o Python trabalhe com o Apache, mas não consigo ter sucesso nem com o CGI nem com o mod_python.

Alguém sabe um bom tutorial ou algo assim?

Obrigado.

    
por Vallery 05.03.2011 / 20:46

1 resposta

17

mod_python é basicamente não mantido - você deve procurar em mod_wsgi . Instale o pacote libapache2-mod-wsgi e, em seguida, emita sudo a2enmod wsgi para ativá-lo.

Apenas como um exemplo rápido para executá-lo, insira algo assim em /etc/apache2/sites-enabled/default :

WSGIScriptAlias /test /path/to/python/file.py

E no arquivo /path/to/python/file.py :

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/plain')])
    return "Hello World"

Depois de reiniciar o Apache2, qualquer solicitação para /test se transformará em uma chamada de application() em seu arquivo python.

Para ler mais, olhe para WSGI (WebServer Gateway Interface), o modo em que o Python se integra com servidores web.

Bônus / atualização:

O Python (sem surpresas) tem um pequeno servidor WSGI na biblioteca padrão para testes. Se você adicionar isso na parte inferior do arquivo, poderá executá-lo como qualquer executável antigo para fins de teste e, em seguida, permitirá que o Apache substitua a produção:

if __name__ == '__main__':
    from wsgiref.simple_server import make_server

    httpd = make_server('', 8080, application)
    print "Serving on http://localhost:8080"

    httpd.serve_forever()
    
por Morten Siebuhr 05.03.2011 / 21:51