Python Apache · 4 min read · Nov 12, 2025
Intégration de Python dans Apache2 avec mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)
Intégration de Python dans Apache2 avec mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)
Version 1.0
Auteur : Falko Timme
Ce tutoriel montre comment installer et utiliser mod_python sur diverses distributions (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE) avec Apache2. mod_python est un module Apache qui intègre l’interpréteur Python au sein du serveur. Il vous permet d’écrire des applications web en Python qui s’exécuteront beaucoup plus rapidement que les CGI traditionnels et auront accès à des fonctionnalités avancées telles que la capacité de conserver des connexions à la base de données et d’autres données entre les requêtes et l’accès aux internals d’Apache.
Je ne donne aucune garantie que cela fonctionnera pour vous !
1 Remarque préliminaire
J’ai testé cela sur des systèmes avec l’adresse IP 192.168.0.100 où Apache2 est déjà installé.
2 Debian/Ubuntu
Pour Debian/Ubuntu, veuillez vous référer à ce tutoriel : Intégration de Python dans Apache2 avec mod_python (Debian Etch).
Pour les utilisateurs d’ISPConfig
Dans ce tutoriel, j’active mod_python dans le vhost par défaut, ce qui n’a aucun effet sur les autres vhosts, donc si vous utilisez ISPConfig (à partir de la version 2.2.24), vous pouvez utiliser cette configuration sans aucun changement et toujours activer/désactiver mod_python par site. ISPConfig utilise le Publisher Handler - il ne prend pas en charge le PSP Handler.
3 Fedora 9/CentOS 5.2
3.1 Installation de mod_python
Pour installer mod_python, il suffit de lancer :
yum install mod_python3.2 Configuration d’Apache
Nous devons maintenant configurer Apache afin qu’il puisse gérer les fichiers Python. Il existe deux façons de le faire. La première (et par défaut) consiste à utiliser le Publisher Handler. Cela vous permet d’écrire des scripts Python purs avec l’extension .py qui seront interprétés par Apache. La deuxième façon est le PSP Handler. PSP signifie Python Server Pages. Cela vous permet d’intégrer du code Python directement dans le code HTML, similaire à PHP. Les fichiers PSP ont l’extension .psp.
3.2.1 Le Publisher Handler
Pour activer le Publisher Handler, nous devons modifier la configuration de mod_python que vous pouvez trouver dans /etc/httpd/conf.d/python.conf. Ce fichier contient de nombreux exemples - nous en faisons une sauvegarde et créons ce fichier à nouveau à partir de zéro. J’utilise le répertoire racine par défaut de Fedora/CentOS /var/www/html ici dans la directive
cp /etc/httpd/conf.d/python.conf /etc/httpd/conf.d/python.conf_orig
cat /dev/null > /etc/httpd/conf.d/python.conf
vi /etc/httpd/conf.d/python.conf| LoadModule python_module modules/mod_python.so |
Veuillez noter : si vous utilisez ISPConfig (à partir de la version 2.2.24) sur le serveur, veuillez omettre la partie
Redémarrez Apache ensuite :
/etc/init.d/httpd restartMaintenant, nous créons un petit script de test Python (par exemple /var/www/html/test.py) avec du code Python pur à l’intérieur…
vi /var/www/html/test.py| def index(req): return "Test réussi"; |
… et l’appelons dans un navigateur (par exemple http://192.168.0.100/test.py). Si tout se passe bien, cela devrait afficher Test réussi dans votre navigateur.
3.2.2 Le PSP Handler
Pour activer le PSP Handler, nous devons modifier la configuration de mod_python que vous pouvez trouver dans /etc/httpd/conf.d/python.conf. Ce fichier contient de nombreux exemples - nous en faisons une sauvegarde et créons ce fichier à nouveau à partir de zéro. J’utilise le répertoire racine par défaut de Fedora/CentOS /var/www/html ici dans la directive
cp /etc/httpd/conf.d/python.conf /etc/httpd/conf.d/python.conf_orig
cat /dev/null > /etc/httpd/conf.d/python.conf
vi /etc/httpd/conf.d/python.conf| LoadModule python_module modules/mod_python.so |
Veuillez noter : si vous utilisez ISPConfig (à partir de la version 2.2.24) sur le serveur, veuillez omettre la partie
Redémarrez Apache ensuite :
/etc/init.d/httpd restartMaintenant, nous créons un petit script de test PSP (par exemple /var/www/html/test.psp) avec du code HTML et Python à l’intérieur…
vi /var/www/html/test.psp| |<% req.write("Bonjour !") %>
… et l’appelons dans un navigateur (par exemple http://192.168.0.100/test.psp). Si tout se passe bien, cela devrait afficher Bonjour ! dans votre navigateur.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.