Python Apache · 3 min read · Nov 12, 2025

Incorporare Python In Apache2 Con mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)

Incorporare Python In Apache2 Con mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)

Versione 1.0
Autore: Falko Timme

Questo tutorial mostra come installare e utilizzare mod_python su varie distribuzioni (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE) con Apache2. mod_python è un modulo Apache che incorpora l’interprete Python all’interno del server. Ti consente di scrivere applicazioni web in Python che verranno eseguite molte volte più velocemente rispetto ai tradizionali CGI e avranno accesso a funzionalità avanzate come la possibilità di mantenere le connessioni al database e altri dati tra le richieste e l’accesso agli interni di Apache.

Non rilascio alcuna garanzia che questo funzionerà per te!

1 Nota Preliminare

Ho testato questo su sistemi con l’indirizzo IP 192.168.0.100 dove Apache2 è già installato.

2 Debian/Ubuntu

Per Debian/Ubuntu, si prega di fare riferimento a questo tutorial: Incorporare Python In Apache2 Con mod_python (Debian Etch).

Per gli Utenti di ISPConfig

In quel tutorial abilito mod_python nel vhost predefinito che non ha effetto su altri vhost, quindi se stai utilizzando ISPConfig (dalla versione 2.2.24 in poi) puoi utilizzare quella configurazione senza alcuna modifica e abilitare/disabilitare mod_python su base per sito web. ISPConfig utilizza il Publisher Handler - non supporta il PSP Handler.

3 Fedora 9/CentOS 5.2

3.1 Installazione di mod_python

Per installare mod_python, eseguiamo semplicemente:

yum install mod_python

3.2 Configurazione di Apache

Ora dobbiamo configurare Apache in modo che possa gestire i file Python. Ci sono due modi per farlo. Il primo (e predefinito) è utilizzare il Publisher Handler. Ti consente di scrivere script Python puri con l’estensione .py che verranno interpretati da Apache. Il secondo modo è il PSP Handler. PSP sta per Python Server Pages. Ti consente di incorporare codice Python direttamente nel codice HTML, simile a PHP. I file PSP hanno l’estensione .psp.

3.2.1 Il Publisher Handler

Per abilitare il Publisher Handler, dobbiamo modificare la configurazione di mod_python che puoi trovare in /etc/httpd/conf.d/python.conf. Questo file contiene molti esempi - facciamo un backup di esso e creiamo di nuovo quel file da zero. Sto usando la root del documento predefinita di Fedora/CentOS /var/www/html qui nella direttiva - adatta questo alle tue esigenze. Le righe importanti sono AddHandler mod_python .py e 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 |

Si prega di notare: se utilizzi ISPConfig (dalla versione 2.2.24 in poi) sul server, si prega di escludere la parte nel file sopra poiché ciò abiliterebbe mod_python globalmente per la directory in questione. In ISPConfig puoi abilitare mod_python su base per sito web, il che ti dà più controllo su se un sito web può utilizzare mod_python o meno.

Riavvia Apache successivamente:

/etc/init.d/httpd restart

Ora creiamo un piccolo script di test Python (ad es. /var/www/html/test.py) con codice Python puro in esso…

vi /var/www/html/test.py

| def index(req): return "Test riuscito"; |

… e chiamalo in un browser (ad es. http://192.168.0.100/test.py). Se tutto va bene, dovrebbe visualizzare Test riuscito nel tuo browser.

3.2.2 Il PSP Handler

Per abilitare il PSP Handler, dobbiamo modificare la configurazione di mod_python che puoi trovare in /etc/httpd/conf.d/python.conf. Questo file contiene molti esempi - facciamo un backup di esso e creiamo di nuovo quel file da zero. Sto usando la root del documento predefinita di Fedora/CentOS /var/www/html qui nella direttiva - adatta questo alle tue esigenze. Le righe importanti sono AddHandler mod_python .psp e 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 |

Si prega di notare: se utilizzi ISPConfig (dalla versione 2.2.24 in poi) sul server, si prega di escludere la parte nel file sopra poiché ciò abiliterebbe mod_python globalmente per la directory in questione. In ISPConfig puoi abilitare mod_python su base per sito web, il che ti dà più controllo su se un sito web può utilizzare mod_python o meno. Si prega di notare inoltre che ISPConfig non supporta il PSP Handler - utilizza il Publisher Handler.

Riavvia Apache successivamente:

/etc/init.d/httpd restart

Ora creiamo un piccolo script di test PSP (ad es. /var/www/html/test.psp) con codice HTML e Python in esso…

vi /var/www/html/test.psp

|

<% req.write("Ciao!") %>

|

… e chiamalo in un browser (ad es. http://192.168.0.100/test.psp). Se tutto va bene, dovrebbe visualizzare Ciao! nel tuo browser.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.