Πώς μπορείτε να ρυθμίσετε τα σενάρια Python για να εργαστούν σε Apache 2.0;

ψήφοι
17

Προσπάθησα να ακολουθήσει ένα ζευγάρι στο google μέχρι σεμινάρια σχετικά με τη ρύθμιση mod_python, αλλά απέτυχε κάθε φορά. Έχετε μια καλή, βήμα προς βήμα, ροκ-στερεά howto;

κουτί dev μου είναι OS X, την παραγωγή - Centos.

Δημοσιεύθηκε 07/08/2008 στις 19:24
πηγή χρήστη
Σε άλλες γλώσσες...                            


4 απαντήσεις

ψήφοι
12

Υπάρχουν δύο βασικοί τρόποι λειτουργίας Python σε Apache. Το πιο απλό θα ήταν να χρησιμοποιήσετε CGI και να γράφουν κανονικό σενάρια Python, ενώ η δεύτερη χρησιμοποιεί ένα πλαίσιο web όπως το Django ή Πυλώνες.

Η χρήση CGI είναι απλή. Βεβαιωθείτε ότι το αρχείο ρυθμίσεων σας Apache έχει cgi-bin που έχει συσταθεί. Αν όχι, ακολουθήστε την τεκμηρίωσή τους ( http://httpd.apache.org/docs/2.0/howto/cgi.html ). Σε εκείνο το σημείο το μόνο που χρειάζεται να κάνετε είναι να τοποθετήσετε τα σενάρια Python σας στο cgi-bin directory και η τυπική έξοδος θα γίνει η απόκριση HTTP. Ανατρέξτε στην τεκμηρίωση της Python για περισσότερες πληροφορίες ( https://docs.python.org/library/cgi.html ).

Αν θέλετε να χρησιμοποιήσετε ένα πλαίσιο web θα πρέπει να mod_python ρύθμιση ή FastCGI. Τα βήματα αυτά εξαρτώνται από το ποια πλαίσιο που θέλετε να χρησιμοποιήσετε. Django παρέχει σαφείς οδηγίες για το πώς να mod_python εγκατάσταση και Django με Apache ( http://www.djangoproject.com/documentation/modpython/ )

Απαντήθηκε 07/08/2008 στις 19:40
πηγή χρήστη

ψήφοι
8

Ναι, mod_python είναι αρκετά συγκεχυμένη να δημιουργηθεί. Εδώ είναι πώς το έκανα.

Σε httpd.conf:

LoadModule python_module modules/mod_python.so

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

και στον κατάλογο της αίτησής σας:

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

Επαναλάβετε τη διαμόρφωση για κάθε πρόγραμμα Python που θέλετε να λειτουργεί υπό mod_python.

Απαντήθηκε 07/08/2008 στις 20:02
πηγή χρήστη

ψήφοι
5

Τρέχετε Python σε UNIX ή Windows;

Μια εναλλακτική λύση για mod_python και FastCGI είναι mod_wsgi. Μπορείτε να μάθετε περισσότερα στο modwsgi

Έχω κατασκευαστεί και εγκατασταθεί αυτό στο Solaris χωρίς προβλήματα. Είχα ήδη δοκιμάσει mod_python αλλά έτρεξε προβλήματα με κοινόχρηστες βιβλιοθήκες ως μέρος της κατασκευής. Υπάρχουν καλές εγκατάσταση έγγραφα διαθέσιμα.

Απαντήθηκε 07/08/2008 στις 20:05
πηγή χρήστη

ψήφοι
0

Το πρόβλημα για μένα δεν ήταν σε Apache που έχει συσταθεί, αλλά και στην κατανόηση του πώς mod_apache χρησιμοποιεί στην πραγματικότητα τα .py αρχεία. Δηλώσεις επίπεδο λειτουργικής μονάδας (συμπεριλαμβανομένων και εκείνων σε ένα if __name__=='__main__'τμήμα) είναι να μην εκτελεστεί - υπέθεσα ότι η κανονική έξοδο από τη λειτουργία του script στο εντολών θα ήταν ό, τι ο διακομιστής θα εξόδου, αλλά αυτό δεν είναι το πώς λειτουργεί.

Αντ 'αυτού, έγραψα μια λειτουργία μονάδας επιπέδου που ονομάζεται index(), και είχε επιστρέψει ως μια σειρά τον κώδικα HTML της σελίδας. Είναι επίσης δυνατό να έχουν και άλλες λειτουργίες μονάδας επιπέδου (π.χ. otherFunction()) που μπορεί να προσεγγιστεί ως περαιτέρω τμήματα του URI (π.χ., testScript/otherFunctionγια το αρχείο testScript.py.)

Προφανώς, αυτό έχει περισσότερο νόημα από την αρχική σύλληψη stdout μου. Καλύτερη δυνατότητα στην πραγματικότητα με τη χρήση Python ως scripting γλώσσα και όχι μια γιγαντιαία γλώσσα σήμανσης.

Απαντήθηκε 09/02/2013 στις 21:05
πηγή χρήστη

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