Configurare Python su Windows / Apache?
-
19-08-2019 - |
Domanda
Voglio ottenere un semplice Python " ciao mondo " script di pagine Web da eseguire su Windows Vista / Apache ma su pareti diverse. Sto usando WAMP. Ho installato mod_python
e il modulo mostra, ma non sono sicuro di cosa dovrei fare ad es. http.conf (cose come AddHandler mod_python .py mi portano in un file non trovato, o in un proibito, o errori modulo non trovato quando si accede a http: //localhost/myfolder/index.py ). Posso far funzionare mod_python.publisher
, ma io " voglio " questo / bisogno di questo?
Qualcuno può aiutare?
Grazie!
Soluzione
Stai lontano da mod_python
. Un'idea fuorviante comune è che mod_python
è come mod_php
, ma per Python. Quello non è vero. Wsgi è lo standard per l'esecuzione di applicazioni Web Python, definito da PEP 333 . Quindi usa mod_wsgi
invece.
O in alternativa, utilizzare un framework Web con un server. quello di Cherrypy è particolarmente buono. Sarai in grado di eseguire la tua applicazione sia in modalità standalone sia attraverso mod_wsgi
.
Un esempio di applicazione Hello World che utilizza cherrypy:
import cherrypy
class HelloWorld(object):
def index(self):
return "Hello World!"
index.exposed = True
application = HelloWorld()
if __name__ == '__main__':
cherrypy.engine.start()
cherrypy.engine.block()
Molto facile eh? L'esecuzione di questa applicazione direttamente su Python avvierà un server web. La configurazione di mod_wsgi
lo farà funzionare all'interno di apache.
Altri suggerimenti
Non è NECESSARIO mod_python per eseguire il codice Python sul Web, è possibile utilizzare una semplice programmazione CGI per eseguire il codice Python, con le istruzioni nel seguente link: http://www.imladris.com/Scripts/PythonForWindows.html
Questo dovrebbe darti alcune delle opzioni di configurazione necessarie per abilitare Python con CGI, e una ricerca su Google dovrebbe darti risme di altre informazioni su come programmare in esso e simili.
Mod_python è utile se vuoi un po 'più "amichevole" interfaccia o un maggiore controllo sulla richiesta stessa. Puoi usarlo per creare filtri di richiesta e altre cose per il server Apache e con il gestore del publisher puoi ottenere un modo più semplice di gestire le richieste di pagine Web tramite Python.
Il gestore editore funziona mappando gli URL su oggetti / funzioni di Python. Ciò significa che puoi definire una funzione denominata 'foo' nel tuo file python e qualsiasi richiesta a http: // localhost / foo chiamerebbe quella funzione automaticamente. Maggiori informazioni qui: http: // www. modpython.org/live/current/doc-html/hand-pub-alg-trav.html
Per quanto riguarda la configurazione di Apache per far funzionare le cose, qualcosa del genere dovrebbe essere utile
<Directory /var/www/html/python/>
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
Se hai / var / www / html / impostato come root del tuo server web e hai un file chiamato index.py nella directory python /, allora qualsiasi richiesta a http: // localhost / python / foo dovrebbe chiamare la funzione foo () in index.py, o fallire con un 404 se non esiste.
AddHandler mod_python .py
Hai impostato 'PythonHandler'?
In questi giorni, considera l'utilizzo di WSGI invece delle interfacce mod-python native per opzioni di distribuzione più ampie. Tramite il supporto WSGI di mod-python o, forse meglio, mod-wsgi. (Anche CGI, ad es. Wsgiref, funzionerà bene ed è facile installarlo in un ambiente di sviluppo in cui non ti interessano le prestazioni della spazzatura.)