Come si fa a impostare script Python per lavorare in Apache 2.0?

voti
17

Ho provato a seguire un paio di tutorial su Google fino sull'impostazione mod_python, ma non è riuscito ogni volta. Avete un buon passo, passo, rock-solid howto?

La mia casella di dev è OS X, la produzione - CentOS.

È pubblicato 07/08/2008 alle 17:24
fonte dall'utente
In altre lingue...                            


4 risposte

voti
12

Ci sono due modi principali di esecuzione Python su Apache. La più semplice sarebbe quella di utilizzare CGI e scrivere normali script Python mentre il secondo utilizza un framework web come Django o Piloni.

Utilizzando CGI è semplice. Assicurati che il tuo file di configurazione di Apache ha un cgi-bin istituito. In caso contrario, seguire la loro documentazione ( http://httpd.apache.org/docs/2.0/howto/cgi.html ). A quel punto tutto quello che dovete fare è inserire il vostro script Python nella directory cgi-bin e l'output standard diventerà la risposta HTTP. Fare riferimento alla documentazione di Python per ulteriori informazioni ( https://docs.python.org/library/cgi.html ).

Se si desidera utilizzare un framework web avrete bisogno di mod_python installazione o FastCGI. Questi passaggi sono dipende da quale quadro si desidera utilizzare. Django fornisce istruzioni chiare su come mod_python Django e la configurazione con Apache ( http://www.djangoproject.com/documentation/modpython/ )

Risposto il 07/08/2008 a 17:40
fonte dall'utente

voti
8

Sì, mod_python è piuttosto confusa da configurare. Ecco come ho fatto io.

In httpd.conf:

LoadModule python_module modules/mod_python.so

<Directory "/serverbase/htdocs/myapp">
  AddHandler mod_python .py
  PythonHandler myapp
  PythonDebug On

e nella directory dell'applicazione:

$ /serverbase/htdocs/myapp$ ls -l
total 16
-r-xr-xr-x 1 root sys        6484 May 21 15:54 myapp.py

Ripetere la configurazione per ogni programma Python che si desidera avere in esecuzione sotto mod_python.

Risposto il 07/08/2008 a 18:02
fonte dall'utente

voti
5

Sei in esecuzione Python su UNIX o Windows?

Un'alternativa al mod_python e FastCGI è mod_wsgi. Potete saperne di più al modwsgi

Ho costruito ed installato questo su Solaris senza problemi. In precedenza avevo provato mod_python ma ha incontrato problemi con le librerie condivise come parte della costruzione. Ci sono buone installare documenti disponibili.

Risposto il 07/08/2008 a 18:05
fonte dall'utente

voti
0

Il problema per me non era in Apache istituito, ma nella comprensione di come mod_apache utilizza effettivamente il file .py. Dichiarazioni a livello di modulo (compresi quelli in una if __name__=='__main__'sezione) sono non eseguiti - ho pensato che lo stdout l'esecuzione dello script a linea di comando sarebbe quello che il server sarebbe in uscita, ma non è così che funziona.

Invece, ho scritto una funzione a livello di modulo chiamato index(), e è tornato come una stringa il codice HTML della pagina. E 'anche possibile avere altre funzioni a livello di modulo (ad esempio, otherFunction()) che possono essere accessibili come ulteriori segmenti nel URI (ad esempio, testScript/otherFunctionper il file testScript.py.)

Ovviamente, questo ha più senso che la mia concezione stdout originale. Meglio capacità di realtà usando Python come linguaggio di scripting e non un linguaggio di markup humongous.

Risposto il 09/02/2013 a 18:05
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more