Python est un langage de script qui fonctionne à l’aide d’un interpréteur. Il est donc facilement utilisable pour réaliser des scripts qui seront intégrés à un site WEB par le biais d’un module Apache. Mod_python est un module pour Apache qui permet d’interpréter des scripts python qui se trouvent directement sur le serveur Web. Ce qui permet de créer des pages Web dyanmiques et mêmes des applications Web sans passer par les scripts CGI ou d’autres framework. En utilisant mod-python on a accès à tout les modules de python et sans oublier la portabilité du code puisque Python lui même est portable
Mais, et pour des raisons de sécurité il faut bien encadrer son application.
http://en.wikipedia.org/wiki/Mod_python
"Trop d’ouverture nuit à l’efficacité"
Utilisation
Mod_Python propose deux types de fonctionnement :
- Le mode standard CGI
- Le mode cgihandler
- Le mode PSP – Python Server Pages – propose le même mode de fonctionnement que PHP, ASP ou JSP. Du code python est inséré entre des balises
<% et %>, pour générer une page contenant du texte HTML. (cette partie sera traité dans la parie 2 de l’article)
- Le mode Publisher propose une méthode totalement différente, et plutôt sympathique à utiliser
Performances
- Standard CGI: 23 requests/s
- Mod_python cgihandler: 385 requests/s
- Mod_python publisher: 476 requests/s
- Mod_python handler: 1203 requests/s
source: http://www.modpython.org/
Installation
mod_python il faut avoir Python 1.5.2 ou supérieure
Sur les machines linux à base de Debian/Ubuntu/Kubuntu il suffit d’installer le module par cette commande
sudo apt-get install libapache2-mod-python
Configuration d’Apache
Le modules est prêt, il ne reste plus qu’à configurer Apache pour qu’il le charge au démarrage. Pour cela, il suffit d’éditer le fichier httpd.conf ou apache2.conf et de placer la ligne suivante dans la bonne section :
LoadModule python_module libexec/mod_python.so
Redémarrons Apache :
/etc/init.d/httpd restart
ou
/etc/init.d/apache2 restart
Et vérifions tout de suite que mod_python a bien été chargé :
tail -f /var/log/apache2/error.log
Si tout est bon alors une ligne comme celle ci s’affiche à l’écran
[Thu Jul 26 12:33:17 2007] [notice] Apache/2.2.3 (Ubuntu) mod_python/3.2.10 Python/2.5.1 PHP/4.4.4-8+etch4
Hello World!
Nous allons indiquer à Apache un répertoire dans lequel il devra exécuter les scripts Python qui y seront demandés. Pour cela, éditons le fichier httpd.conf ou apache2.conf pour y ajouter la section suivante :
<Directory /var/www/python/>
AddHandler python-program .py
PythonHandler index
PythonDebug On
</Directory>
Pour prendre en compte cette configuration, il faut bien sûr redémarrer Apache. Il faut ensuite créer le script /var/www/python/index.py
from mod_python import apache
def handler(req):
req.content_type="text/html"
req.send_http_header()
req.write("<h1>Hello World!</h1>")
return apache.OK
Enfin, il ne reste que de vérifier les droits d’accès et de lancer pour la première fois un fichier .py directement dans le navigateur
http://localhost/python/index.py
Ressources:
Conclusion
Bonne Lecture et je pense que maintenant vous n’avez plus d’excuses pour ne pas utiliser Python
Tags :
Apache,
Python