quinta-feira, agosto 03, 2006

modpython no Apache 2

Faz tempo que não posto nada, eu sei... mas voltei após uma quase frustrada tentativa de instalar o modpython no Apache... suei... para alguns pode ter sido fácil, mas para mim não foi tão fácil não. E o pior é que eu tinha feito certo de primeira e não sabia, e fiquei alterando as linhas de bobeira por muito tempo até descobrir que estava certo... A documentação de configuração não é muito boa e é em inglês. Bem... vamos lá?

Instalando

É a coisa mais fácil. Tendo o Python 2.4 e o Apache 2.0, baixe o arquivo de instalação a partir do site oficial. A única pergunta que ele faz é onde está o Apache (C:\Arquivos de programas\Apache Group\Apache2\ por padrão). Pronto.
Aí que vem a parte mais chatinha...

Configurando

Coloque essa linha no arquivo de configuração do Apache (conf/httpd.conf):

LoadModule python_module modules/mod_python.so

em que "modules" é a o diretório em que o modpython e os outros módulos do Apache estão a partir do local de instalação do Apache; no Linux pode ser outro diretório :)
Agora ponha essas para os arquivo de script python:

AddHandler mod_python .pyc
AddHandler mod_python .pyo
AddHandler mod_python .py
AddHandler mod_python .psp

Aí, coloque essas linhas:

<Directory htdocs/python/>
AllowOverride All
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On
</Directory>

A primeira linha é a raiz dos meus script python; tem que ser AllowOverride All senão não funciona direito.
De final, coloque esse bloco:

<Location mpinfo>
SetHandler mod_python
PythonHandler mod_python.testhandler
</Location>


Aí, funcionou... em partes. A partir deste diretório, eu criei outros com um arquivo ".htaccess" cada um, contendo:

SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On


Bem... se você quiser experimentar, fique à vontade... eu me satisfiz assim e nem estou mais querendo saber o por que de os script .py do diretório htdocs/python não rodarem direito, mas os de seus diretórios filhos sim.
Se você souber, escreva aqui!

Nenhum comentário: