Você precisa de um freelancer, códigos-fonte e exemplos completos?
Bem-vindo(a) ao meu site. Além de realizar alguns serviços como freelancer eu tenho alguns códigos-fonte e exemplos completos de Java, Delphi, PHP, Python, C/C++, Hibernate, JPA, Spring, JSP, Servlets, Ruby, Ruby On Rails e muitas outras linguagens e frameworks. Veja como falar comigo clicando aqui.
 
Voltar para a página inicial Página Inicial Artigos e Tutoriais Dicas e Truques Veja nossa relação de códigos-fonte e exemplos completos
Você está aqui: Inicio -> Artigos e Tutoriais -> Python -> Escrevendo códigos CGI usando Python no Apache Web Server e Windows
Python - Escrevendo códigos CGI usando Python no Apache Web Server e Windows
Views: 1225 Comentários Confiabilidade: Avalie:


1 - Introdução

Scripts CGI são programas que são executados no servidor web e aderem ao modelo Common Gateway Interface. Este modelo reflete as comunicações browser/servers, a partir do qual códigos CGI obtém seu nome.

A linguagem mais comum para se escrever códigos CGI continua sendo o Perl. No entanto, é possível escrever scripts CGI usando Python. Na verdade, uma instalação padrão do Apache Web Server para Windows, já vem preparada para a execução de códigos Python no diretório cgi-bin.

2 - Executando códigos Python a partir do diretório cgi-bin

Este artigo foi escrito usando uma instalação do Apache 2.2 no Windows XP. O único cuidado que tive foi instalar o Apache Web Server em um diretório sem espaços e sem caracteres especiais (por padrão, ele é instalado em "Arquivos de Programas"). No testes que realizei, os espaços no diretório de instalação não permitiram uma execução com sucesso de códigos CGI Python.

Pronto! Seu Apache foi instalado em um diretório sem espaços e sem caracteres especiais. O próximo passo é verificar a instalação do Python. Em minha máquina eu tenho o Python 2.5 instalado no diretório "C:\Python25". Novamente, evite instalar o Python em um diretório com espaços e caracteres especiais.

Estamos prontos para o teste. Vá ao diretório cgi-bin do Apache e crie um arquivo chamado primeiro.py com a seguinte listagem:



Antes de executar este código, vamos fazer algumas observações. A linha:



Serve, tanto no Windows quanto no Linux, para indicar ao Apache o programa responsável pela execução do código. Como o meu Python está instalado em "C:\Python25", esta linha funciona perfeitamente. Outro detalhe é a não necessidade da extensão .exe no nome do interpretador.

Veja agora a linha:



Esta linha deve ser usada para informar ao navegador o tipo de conteúdo que ele está recebendo. Se usada no script, deverá ser a primeira linha do conteúdo a ser enviado ao navegador.

Vamos testar. Aponte seu navegador para http://localhost/cgi-bin/primeiro.py. As chances de que a página abaixo seja exibida são enormes:



Veja o texto completo da página de erro interno 505:



Qualquer um que se disponha a desenvolver códigos CGI, deve estar muito bem familiarizado com o erro 505. A primeira coisa é fazer é executar o código diretamente no interpretador Python. Para isso, abra um janela de comando, navegue até o diretório cgi-bin do Apache e execute o arquivo primeiro.py:



Ao executar o arquivo teremos o seguinte resultado:



Hummm! Este erro parece familiar. Estamos usando acentos mas não declaramos uma codificação para tal. Para resolver isso, insira a linha:



logo abaixo da linha:



Certifique-se de que estas duas linhas sejam as primeiras no programa. O código completo deve ficar assim:



Pronto! Vamos executar novamente. Eis o resultado na figura seguinte:



3 - Executando códigos Python fora do diretório cgi-bin

Experimente agora mover o arquivo primeiro.py para fora do diretório cgi-bin (coloque-o, por exemplo, na pasta "C:\Apache_Web_Server\htdocs". Vamos executá-lo assim:



Você ficará surpreso ao perceber que o código Python não é executado. O que temos na janela do navegador é todo o texto do arquivo. Muitas vezes o arquivo é até mesmo oferecido para download.

Isso acontece porque, por padrão, o Apache Web Server não permite a execução de códigos CGI fora do diretório cgi-bin. Para contornar essa restrição, precisamos seguir alguns passos atenciosamente:

1) Localize o elemento Directory que define o local no qual a pasta raiz do site reside. Geralmente é algo como:



Dentro deste elemento você encontrará um linha parecida com:



Adicione o valor ExecCGI para que fique parecido com:



2) Localize a linha (deve estar com comentários ainda):



Retire o comentário e altere esta linha para que fique parecida com:



Veja que aqui nós indicamos que a extensão .py deverá ser tratada como script CGI.

Pronto! Se você seguiu as instruções corretamente, pode reiniciar o Apache e executar códigos Python a partir de qualquer diretório agora.

Sobre o autor deste artigo ou tutorial
Osmar J. Silva
Goiânia - GO
Usuário desde 12/11/2006
Graduado em Ciência da Computação pela UNIP (Universidade Paulista) e atualmente morando em Goiânia-GO. Desde 1998 tem atuado no desenvolvimento de sistemas, seja como responsável principal ou como freelancer ou consultor. Entre as linguagens que já desenvolveu pode-se incluir Java, Delphi, C++, Python, Perl, PHP, Ruby, etc. Alguns projetos já desenvolvidos incluem salas de chat, fóruns, sistemas de gerenciamento de notícias, blogs, sistemas de helpdesk, sites corporativos, sistemas acadêmicos e financeiros. É o proprietário e principal editor de conteúdo do site Arquivo de Códigos.

Atua também como professor do curso de Sistemas de Informação da Faculdade Delta (http://www.faculdadedelta.edu.br)
Este usuário atua como freelancer Veja a relação de freelancers
Veja o perfil completo deste usuário
Pesquise Dicas, Truques, Anotações, Artigos, Tutoriais, etc:
0 Comentários para este tutorial | Clique para inserir um novo comentário
Seja o primeiro a comentar este artigo ou tutorial.
Use este formulário para inserir um novo comentário para este artigo ou tutorial. É preciso estar logado no site. Se você já um usuário registrado, efetue o login no menu esquerdo de nossas páginas.
Título do comentário:
Seu comentário:
Dicas de formatação:
Não é permitido código HTML nos comentários. No entanto, você pode conseguir boas formatações usando:

[b][/b] - para negrito
[ul][/ul] - para listas não ordenadas
[li][/li] - para itens da lista
[pre][/pre] - para exibir trechos de códigos-fonte (de forma a manter a formatação e facilitar a leitura)
Veja mais artigos e tutoriais de Python
Veja mais artigos e tutoriais de outras linguagens
Pesquise Dicas, Truques, Anotações, Artigos, Tutoriais, etc:
Powered by Locaweb
Quem Somos
Bem-vindo ao Arquivo de Códigos. Meu nome é Osmar J. Silva, moro em Goiânia-GO e sou o criador deste site e de todo o material disponível nele. Clique aqui e saiba como posso ajudá-lo atuando como freelancer ou consultor em seus projetos.
Referências
 
http://www.arquivodecodigos.net
2000 - 2009 - Todos os direitos reservados a Osmar J. Silva
Todo o conteúdo deste site, quando não devidamente observado, pertence a seus idealizadores e não
poderá ser usado para outras finalidades senão estudo e aprimoramento de técnicas de programação.
Certifique-se de ler as notas legais antes de proceder com o acesso e leitura do
conteúdo disponibilizado nestas páginas.

Fale Conosco: (62) 3261-7018 / (62) 8185-0734
E-Mail: suporte@recomende.com
MSN: osmar@recomende.com (só para negócios, por favor)

Desenvolvedor Responsável: Osmar J. Silva