Próbuję sprawić, aby Python działał z Apache, jednak nie udaje mi się ani CGI, ani mod_python.
Czy ktoś zna dobry tutorial czy coś takiego?
Dzięki.
mod_python
jest w zasadzie nieobsługiwany - powinieneś zajrzeć mod_wsgi
. Zainstaluj pakiet libapache2-mod-wsgi
, a następnie wydaj go, sudo a2enmod wsgi
aby go włączyć.
Jako szybki przykład uruchomienia, umieść coś takiego w swoim /etc/apache2/sites-enabled/default
:
WSGIScriptAlias /test /path/to/python/file.py
I w pliku /path/to/python/file.py
:
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
return "Hello World"
Po ponownym uruchomieniu Apache2 każde żądanie /test
zmieni się w wywołanie application()
w pliku Pythona.
W celu dalszego czytania zapoznaj się z WSGI (WebServer Gateway Interface), sposobem , w jaki Python integruje się z serwerami WWW.
Bonus / aktualizacja:
Python (co nie dziwi) ma mały serwer WSGI w standardowej bibliotece do testowania. Jeśli dodasz to na dole pliku, możesz uruchomić go jako dowolny stary plik wykonywalny do celów testowych, a następnie pozwolić Apache przejąć produkcję:
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
do'200 OK'
per python.org/dev/peps/pep-0333