Python Apache · 3 min read · Nov 12, 2025

Incorporando Python no Apache2 Com mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)

Incorporando Python no Apache2 Com mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE)

Versão 1.0
Autor: Falko Timme

Este tutorial mostra como instalar e usar mod_python em várias distribuições (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE) com Apache2. mod_python é um módulo do Apache que incorpora o interpretador Python dentro do servidor. Ele permite que você escreva aplicações baseadas na web em Python que rodarão muitas vezes mais rápido do que o CGI tradicional e terão acesso a recursos avançados, como a capacidade de manter conexões de banco de dados e outros dados entre acessos e acesso aos internos do Apache.

Não dou nenhuma garantia de que isso funcionará para você!

1 Nota Preliminar

Eu testei isso em sistemas com o endereço IP 192.168.0.100 onde o Apache2 já está instalado.

2 Debian/Ubuntu

Para Debian/Ubuntu, consulte este tutorial: Incorporando Python no Apache2 Com mod_python (Debian Etch).

Para Usuários do ISPConfig

Nesse tutorial, eu habilito o mod_python no vhost padrão, o que não tem efeito sobre outros vhosts, então, se você estiver usando o ISPConfig (a partir da versão 2.2.24), pode usar essa configuração sem alterações e ainda habilitar/desabilitar o mod_python por site. O ISPConfig usa o Publisher Handler - ele não suporta o PSP Handler.

3 Fedora 9/CentOS 5.2

3.1 Instalando mod_python

Para instalar o mod_python, simplesmente execute:

yum install mod_python

3.2 Configurando o Apache

Agora devemos configurar o Apache para que ele possa lidar com arquivos Python. Existem duas maneiras de fazer isso. A primeira (e padrão) é usar o Publisher Handler. Ele permite que você escreva scripts Python puros com a extensão .py que serão interpretados pelo Apache. A segunda maneira é o PSP Handler. PSP significa Python Server Pages. Ele permite que você incorpore código Python diretamente no código HTML, semelhante ao PHP. Os arquivos PSP têm a extensão .psp.

3.2.1 O Publisher Handler

Para habilitar o Publisher Handler, devemos editar a configuração do mod_python que você pode encontrar em /etc/httpd/conf.d/python.conf. Este arquivo contém muitos exemplos - fazemos um backup dele e criamos esse arquivo novamente do zero. Estou usando o diretório raiz padrão do Fedora/CentOS /var/www/html aqui na diretiva - ajuste isso conforme suas necessidades. As linhas importantes são 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 |

Por favor, note: se você usar o ISPConfig (a partir da versão 2.2.24) no servidor, por favor, deixe de fora a parte no arquivo acima, pois isso habilitaria o mod_python globalmente para o diretório em questão. No ISPConfig, você pode habilitar o mod_python por site, o que lhe dá mais controle sobre se um site pode usar mod_python ou não.

Reinicie o Apache depois:

/etc/init.d/httpd restart

Agora criamos um pequeno script de teste em Python (por exemplo, /var/www/html/test.py) com código Python puro nele…

vi /var/www/html/test.py

| def index(req): return "Teste bem-sucedido"; |

… e chamá-lo em um navegador (por exemplo, http://192.168.0.100/test.py). Se tudo correr bem, deve exibir Teste bem-sucedido no seu navegador.

3.2.2 O PSP Handler

Para habilitar o PSP Handler, devemos editar a configuração do mod_python que você pode encontrar em /etc/httpd/conf.d/python.conf. Este arquivo contém muitos exemplos - fazemos um backup dele e criamos esse arquivo novamente do zero. Estou usando o diretório raiz padrão do Fedora/CentOS /var/www/html aqui na diretiva - ajuste isso conforme suas necessidades. As linhas importantes são 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 |

Por favor, note: se você usar o ISPConfig (a partir da versão 2.2.24) no servidor, por favor, deixe de fora a parte no arquivo acima, pois isso habilitaria o mod_python globalmente para o diretório em questão. No ISPConfig, você pode habilitar o mod_python por site, o que lhe dá mais controle sobre se um site pode usar mod_python ou não. Também note que o ISPConfig não suporta o PSP Handler - ele usa o Publisher Handler.

Reinicie o Apache depois:

/etc/init.d/httpd restart

Agora criamos um pequeno script de teste PSP (por exemplo, /var/www/html/test.psp) com código HTML e Python nele…

vi /var/www/html/test.psp

|

<% req.write("Olá!") %>

|

… e chamá-lo em um navegador (por exemplo, http://192.168.0.100/test.psp). Se tudo correr bem, deve exibir Olá! no seu navegador.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.