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_python

3.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 - ajustez cela selon vos besoins. Les lignes importantes sont AddHandler mod_python .py et PythonHandler mod_python.publisher :

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 Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AddHandler mod_python .py PythonHandler mod_python.publisher PythonDebug On |

Veuillez noter : si vous utilisez ISPConfig (à partir de la version 2.2.24) sur le serveur, veuillez omettre la partie dans le fichier ci-dessus car cela activerait mod_python globalement pour le répertoire en question. Dans ISPConfig, vous pouvez activer mod_python par site, ce qui vous donne plus de contrôle sur l’utilisation de mod_python par un site ou non.

Redémarrez Apache ensuite :

/etc/init.d/httpd restart

Maintenant, 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 - ajustez cela selon vos besoins. Les lignes importantes sont AddHandler mod_python .psp et PythonHandler mod_python.psp :

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 Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all AddHandler mod_python .psp PythonHandler mod_python.psp PythonDebug On |

Veuillez noter : si vous utilisez ISPConfig (à partir de la version 2.2.24) sur le serveur, veuillez omettre la partie dans le fichier ci-dessus car cela activerait mod_python globalement pour le répertoire en question. Dans ISPConfig, vous pouvez activer mod_python par site, ce qui vous donne plus de contrôle sur l’utilisation de mod_python par un site ou non. Veuillez également noter qu’ISPConfig ne prend pas en charge le PSP Handler - il utilise le Publisher Handler.

Redémarrez Apache ensuite :

/etc/init.d/httpd restart

Maintenant, 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.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.