Estou tentando fazer com que o Python funcione com o Apache, no entanto, não consigo ter sucesso com o CGI ou o mod_python.
Alguém conhece um bom tutorial ou algo assim?
Obrigado.
mod_python
é basicamente não mantido - você deve analisar mod_wsgi
. Instale o pacote libapache2-mod-wsgi
e emita sudo a2enmod wsgi
para habilitá-lo.
Apenas como um exemplo rápido para fazê-lo funcionar, coloque algo como isto em seu /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"
Após reiniciar o Apache2, qualquer solicitação para /test
se transformará em uma chamada application()
no seu arquivo python.
Para uma leitura mais aprofundada, consulte o WSGI (WebServer Gateway Interface), a maneira como o Python se integra aos servidores da web.
Bônus / Atualização:
Python (sem surpresa) tem um pequeno servidor WSGI na biblioteca padrão para teste. Se você adicionar isso na parte inferior do arquivo, poderá executá-lo como qualquer executável antigo para fins de teste e deixar o Apache assumir 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()
200
para'200 OK'
por python.org/dev/peps/pep-0333