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


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

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



Υπάρχουν δύο βασικοί τρόποι λειτουργίας 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/> )

 

Ναι, 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.

 

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


Μια εναλλακτική λύση για mod\_python και FastCGI είναι mod\_wsgi. Μπορείτε να μάθετε περισσότερα στο [modwsgi](http://code.google.com/p/modwsgi/)


Έχω κατασκευαστεί και εγκατασταθεί αυτό στο Solaris χωρίς προβλήματα. Είχα ήδη δοκιμάσει mod\_python αλλά έτρεξε προβλήματα με κοινόχρηστες βιβλιοθήκες ως μέρος της κατασκευής. Υπάρχουν [καλές εγκατάσταση έγγραφα](http://code.google.com/p/modwsgi/wiki/InstallationInstructions) διαθέσιμα.

 

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


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


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

 