Comment définissez-vous les scripts Python pour travailler dans Apache 2.0?

voix
17

J'ai essayé de suivre quelques tutoriels googlé sur la mise en place mod_python, mais a échoué à chaque fois. Avez-vous une bonne étape par étape, howto solide comme le roc?

Ma boîte de dev est OS X, la production - CentOS.

Créé 07/08/2008 à 17:24
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
12

Il y a deux façons principales de Python en cours d'exécution sur Apache. Le plus simple serait d'utiliser CGI et écrire des scripts Python normaux tandis que le second utilise un framework web comme Django ou Pylônes.

L' utilisation CGI est simple. Assurez - vous que votre fichier de configuration Apache a un cgi-bin mis en place. Sinon, suivez la documentation ( http://httpd.apache.org/docs/2.0/howto/cgi.html ). À ce moment - là tout ce que vous devez faire est de placer vos scripts Python dans le répertoire cgi-bin et la sortie standard deviendra la réponse HTTP. Reportez - vous à la documentation de Python pour plus d' infos ( https://docs.python.org/library/cgi.html ).

Si vous souhaitez utiliser un framework web , vous aurez besoin de mod_python d'installation ou FastCGI. Ces étapes dépendent quel cadre vous souhaitez utiliser. Django fournit des instructions claires sur la façon de mod_python de configuration et Django avec Apache ( http://www.djangoproject.com/documentation/modpython/ )

Créé 07/08/2008 à 17:40
source utilisateur

voix
8

Oui, mod_python est assez déroutant de mettre en place. Voici comment je l'ai fait.

En httpd.conf:

LoadModule python_module modules/mod_python.so

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

et dans votre répertoire d'applications:

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

Répétez la configuration pour chaque programme python vous souhaitez avoir en cours d'exécution sous mod_python.

Créé 07/08/2008 à 18:02
source utilisateur

voix
5

Courez-vous Python sous UNIX ou Windows?

Une alternative à Mod_python et FastCGI est mod_wsgi. Vous pouvez en savoir plus à modwsgi

Je l' ai construit et installé ce sous Solaris sans problème. J'avais déjà essayé mod_python mais rencontré des problèmes avec les bibliothèques partagées dans le cadre de la construction. Il y a de bonnes installer docs disponibles.

Créé 07/08/2008 à 18:05
source utilisateur

voix
0

Le problème pour moi était pas Apache mis en place, mais à comprendre comment mod_apache utilise réellement les fichiers .py. Relevés de module (y compris dans une if __name__=='__main__'section) sont pas exécutés - Je suppose que le stdout d'exécuter le script à la ligne de commande serait ce que le serveur serait sortie, mais ce n'est pas comment cela fonctionne.

Au lieu de cela, j'ai écrit une fonction au niveau du module appelé index(), et il avait le retour en tant que chaîne le code HTML de la page. Il est également possible d'avoir d' autres fonctions au niveau du module (par exemple otherFunction()) qui peuvent être accessibles que d' autres segments dans l'URI (par exemple, testScript/otherFunctionpour le fichier testScript.py.)

De toute évidence, cela fait plus de sens que ma conception stdout originale. Une meilleure capacité d'utiliser réellement Python comme langage de script et non un langage de balisage faramineux.

Créé 09/02/2013 à 18:05
source utilisateur

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