Python Apache · 3 min read · Nov 12, 2025

Incorporando Python no Apache2 Com mod_python (Debian/Ubuntu, Fedora/CentOS, Mandriva, OpenSUSE) - Página 2

4 Mandriva 2008 Spring (2008.1)

4.1 Instalando mod_python

Antes de podermos instalar o mod_python, devemos habilitar os repositórios main, main_updates, contrib e contrib_updates. Vá para http://easyurpmi.zarb.org/ - isso deve fornecer os comandos que você precisa executar para habilitar esses repositórios. No meu caso, eu executei

urpmi.addmedia contrib ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/release with media_info/hdlist.cz
urpmi.addmedia --update contrib_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/updates with media_info/hdlist.cz
urpmi.addmedia main ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/release with media_info/hdlist.cz
urpmi.addmedia --update main_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/updates with media_info/hdlist.cz

para habilitá-los.

Para instalar o mod_python, simplesmente executamos:

urpmi apache-mod_python

4.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.

4.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/modules.d/16_mod_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 Mandriva /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/modules.d/16_mod_python.conf /etc/httpd/modules.d/16_mod_python.conf_orig  
cat /dev/null > /etc/httpd/modules.d/16_mod_python.conf  
vi /etc/httpd/modules.d/16_mod_python.conf

| LoadModule python_module extramodules/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 o mod_python ou não.

Reinicie o Apache em seguida:

/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 em seu navegador.

4.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/modules.d/16_mod_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 Mandriva /var/www/html aqui na diretiva - ajuste isso conforme suas necessidades. As linhas importantes são AddHandler mod_python .py e PythonHandler mod_python.psp:

cp /etc/httpd/modules.d/16_mod_python.conf /etc/httpd/modules.d/16_mod_python.conf_orig  
cat /dev/null > /etc/httpd/modules.d/16_mod_python.conf  
vi /etc/httpd/modules.d/16_mod_python.conf

| LoadModule python_module extramodules/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 o 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 em seguida:

/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á! em seu navegador.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.