Apache + Mod_python
Neste artigo mostraremos como efetuar uma instalação limpa do servidor apache com o módulo Mod_python.
Dependências
- Apache-2.2.41
- Python-2.42
Nota. O intuito deste artigo não é abordar a instalação do servidor Apache, então faça o download e instale ele de acordo com o Sistema Operacional que você estiver utilizando, se pela graça de Deus, você estiver utilizando Linux, então baixe um pacote para sua distribuição, ou caso deseje uma instalação mais limpa, baixe os fontes no site do Apache. Neste artigo estamos usando o Slackware Linux como sistema operacional, porém não iremos instalar o módulo através de pacotes *.tgz3, mas sim, através da compilação dos fontes.
Bem chega de lero, lero e mãos a obra!
Mod_python é um módulo interpretador da linguagem Python, como assim? Você pode criar aplicações web em Python como é feito geralmente com o Php, Perl.. e diversas outras linguagens de programação Web, a vantagem de usar Python direto no “sistema” como iremos mostrar aqui, torna a execução de scripts muitas vezes mais rápido do que as demais linguagens, pode-se construir scripts Cgi diretam,ente sem a necessidade de utilizar outra linguagem para este fim. Outra vantagem é poder manter uma conexão direta com o banco de dados, entre outras vantagens.
Então vamos começar a instalação do módulo.
Antes de mais nada faça o download do módulo no endereço:
http://ftp.unicamp.br/pub/apache/httpd/modpython/mod_python-2.7.11.tgz
Se preferir pode abrir o terminal e fazer o download do módulo via modo texto desta foma.
$ wget http://ftp.unicamp.br/pub/apache/httpd/modpython/mod_python-2.7.11.tgz
Nota: Baixe a versão mais recente do módulo.
Isso não deve demorar muito pois o modulo é muito leve, descompacte o módulo com o seguinte comando
$ tar -zxvf mod_python-2.7.11.tgz
Após ter descompactado o pacote, entre na pasta que foi extraída do pacote com o comando.
$ cd mod_python-2.7.11
Antes de começar-mos compilar o nosso módulo, é necessário verificar se o sistema tem os requisitos que o módulo pede. Então antes de começar a dar comandos de compilações dê uma lida do arquivo README localizado no diretório que você acaba de entrar, utilize o leitor de sua preferência pra isso, em nosso caso apenas usamos o comando cat README.
Note que o arquivo indica que devemos dar o comando ./configure e passar uma opção para ele, executando o comando ./configure --help é possível ver quais opções posso passar para nosso módulo durante uma compilação.
Este módulo requer que além do apache instalado, também tenha o apxs1 devidamente instalado no sistema, você poderá achar a aplicação com o comando:
$ whereis apxs
Em nosso caso a saída deste comando nos retornou:
apxs: /usr/sbin/apxs /usr/man/man8/apxs.8.gz /usr/share/man/man8/apxs.8.gz
Ou seja, temos a aplicação instalada no sistema em /usr/sbin/apxs e este é exatamente o caminho que iremos passa como opção para nosso módulo, então execute o comando abaixo, substituindo o –with-apxs=/usr/sbin/apxs pelo caminho que você teve do comando whereis.
$ ./configure --with-apxs=/usr/sbin/apxs
Note que até o meonto não precisamos entrar como root ou sudo no sistema para executar os comandos, então agora iremos compilar o módulo, e depois nos altenticar como superusuário (root), ou com permissão de sudo.
$ make dso
Agora temos que ser super usuário (root) ou ter permissão de sudo para executar a instalação do módulo, então vamos fazer assim:
$ sudo su [ Enter ] sua senha de usuário # make install
Se não houver nenhum erro durante a compilação, o módulo estará instalado com sucesso, agora iremos configurar o apache para que carregue o módulo na usa inicialização. Ainda no terminal como administrador edite o arquivo httpd.conf. Vou usar o editor vi use um de usa preferência.
Antes de editar o arquivo faça uma copia de segurança, dessa forma:
# cp /etc/apache2/httpd.conf ~/httpd.confBKP
Isso irá criar uma copia do arquivo na sua pasta de usuário administrativo agora voltemos a editar e configurar o apache.
# vi /etc/apache2/httpd.conf
Para não sujar o arquivo vá ate o fim dele e adicione as seguintes linhas
LoadModule python_module lib/apache2/mod_python.so
<Directory "/var/www/htdocs/psp_site">
AddHandler python-program .py
SetHandler mod_python
PythonHandler mod_python.publisher
AllowOverride All
</Directory>
Salve o arquivo e saia dele, a diretriz acima diz para o apache executar todos os arquivos *.py que estiver na localizado na pasta “/var/www/htdocs/psp_site”.
Entre na home do seu usuário administrativo, vamos fazer um teste com um exemplo que é disponibilizado no site oficial do mod_python baixe o exemplo do endereço:
http://www.modpython.org/examples/psp_site.tgz
Lembrando que você pode usar o wget também para fazer o download o arquivo, após o donwload, descompacte o arquivo desta forma.
# tar -zxvf psp_site.tgz -C /var/www/htdocs
Estamos descompactando o pacote direto para o diretório htdocs como configurado no apache, certifique-se que após descompactar o arquivo, nós tenhamos a estrutura “/var/www/htdocs/psp_site”, agora basta dar um restart no apache com o comando:
# apachectl restart
O comando de restart do Apache, vai de sistema para sistema, no caso do Slackware Linux, o comando acima existe, mas no caso do Ubuntu ou de sistemas baseados em Debian seria /etc/init.d/apache2 reload.
Agora vamos ver o nosso trabalho funcionando, então abra o seu navegador de preferência e digite o endereço http://localhost/psp_site/, e bom divertimento.

