Hvordan du setter opp trenger Python-skript for å jobbe i Apache 2.0?

stemmer
18

Jeg prøvde å følge et par googled opp tutorials på å sette opp mod_python, men mislyktes hver gang. Har du en god, med trinnvis, bunnsolid howto?

Min dev merket OS X, produksjon - CentOS.

Publisert på 07/08/2008 klokken 18:24
kilden bruker
På andre språk...                            


4 svar

stemmer
12

Det er to hovedmåter å kjøre Python på Apache. Det enkleste ville være å bruke CGI og skrive normale Python-skript mens andre bruker en web rammeverk som Django eller Kjegler.

Ved hjelp av CGI er grei. Sørg for at Apache config filen har en cgi-bin satt opp. Hvis ikke, følger deres dokumentasjon ( http://httpd.apache.org/docs/2.0/howto/cgi.html ). På dette punktet alt du trenger å gjøre er å plassere Python-skript i cgi-bin katalogen og standard produksjonen vil bli HTTP respons. Se i Python dokumentasjon for ytterligere info ( https://docs.python.org/library/cgi.html ).

Hvis du ønsker å bruke en web-rammeverk må du setup mod_python eller FastCGI. Disse trinnene er avhengig av hvilken ramme du vil bruke. Django gir klare instruksjoner om hvordan du setter opp mod_python og Django med Apache ( http://www.djangoproject.com/documentation/modpython/ )

Svarte 07/08/2008 kl. 18:40
kilden bruker

stemmer
8

Ja, mod_python ganske forvirrende å sette opp. Her er hvordan jeg gjorde det.

I httpd.conf:

LoadModule python_module modules/mod_python.so

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

og i din søknad katalogen:

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

Gjenta konfigurasjonen for hver python program du ønsker å ha kjører under mod_python.

Svarte 07/08/2008 kl. 19:02
kilden bruker

stemmer
5

Kjører du Python på UNIX eller Windows?

Et alternativ til mod_python og FastCGI er mod_wsgi. Du kan finne ut mer på modwsgi

Jeg har bygget og installert dette på Solaris uten problemer. Jeg hadde tidligere prøvd mod_python men fikk problemer med delte biblioteker som en del av oppbyggingen. Det er gode installere docs tilgjengelig.

Svarte 07/08/2008 kl. 19:05
kilden bruker

stemmer
0

Problemet for meg var ikke i Apache satt opp, men for å forstå hvordan mod_apache faktisk bruker .py filer. Modul-nivå uttalelser (inkludert de i en if __name__=='__main__'seksjon) er ikke utført - Jeg antok at stdout fra å kjøre skriptet på kommandolinja vil være hva serveren ville utgang, men det er ikke slik det fungerer.

I stedet skrev jeg en modul-nivå funksjon som heter index(), og hadde det tilbake som en streng HTML på siden. Det er også mulig å ha andre modul-nivå funksjoner (for eksempel otherFunction()) som kan benyttes som ytterligere segmenter i URI (f.eks, testScript/otherFunctionfor filen testScript.py.)

Selvfølgelig, dette gjør mer fornuftig enn mitt opprinnelige stdout unnfangelsen. Bedre evne til å faktisk bruke Python som skriptspråk og ikke en humongous kodespråk.

Svarte 09/02/2013 kl. 20:05
kilden bruker

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