Os recursos como o Ajax, linguagens do lado do servidor (Java, PHP, ASP, C#, Ruby e dentre outras), possibilitam a manipulação de informações, podendo-se trabalhar dados específicos de forma dinâmica para os usuários. Um grande exemplo de tal recurso são os gerenciadores de conteúdos, como WordPress, Joomla, sistemas de E-commerce etc.
CGI – Common Gateway Interface
O CGI é um recurso fantástico, que fornece um interface de
portabilidade entre linguagens diversas a fornecerem conteúdo para a web de
forma simples e transparente. Sua simplicidade torna o desenvolvimento mais
fácil, pois não existe a necessidade de aprender uma nova linguagens de
programação. É possivel até criar um programa em C++ , compila-lo e utilizar sua
saida para fornecer seus dados para a internet.
portabilidade entre linguagens diversas a fornecerem conteúdo para a web de
forma simples e transparente. Sua simplicidade torna o desenvolvimento mais
fácil, pois não existe a necessidade de aprender uma nova linguagens de
programação. É possivel até criar um programa em C++ , compila-lo e utilizar sua
saida para fornecer seus dados para a internet.
Como foco principal desta postagem vamos conhecer o CGI e
como implementa-lo no servidor Apache.
como implementa-lo no servidor Apache.
Habilitando o CGI
Primeiramente é necessário configurar um diretório para
servir de repositório para as aplicações que rodarão como cgi. Isto pode ser
efetuado, colocando a propriedade “ScriptAlias” dentro das configurações do seu
domínio web no arquivo de configuração do apache.
servir de repositório para as aplicações que rodarão como cgi. Isto pode ser
efetuado, colocando a propriedade “ScriptAlias” dentro das configurações do seu
domínio web no arquivo de configuração do apache.
1 2 3 4 5 6 7 8 9 10 11 | <VirtualHost *:80> ... ServerName dominio-da-web.com.br ScriptAlias /cgi-bin/ /home/dominio-da-web/cgi-bin/ <Directory /home/dominio-da-web/cgi-bin> allow from all Options +ExecCGI AddHandler cgi-script .cgi </Directory> ... </VirtualHost> |
Uma observação importante é que você pode denominar
quantos “ScriptAlias” forem necessários , porem aconselho a criar um repositório
único para não ter problemas com gerenciamento.
quantos “ScriptAlias” forem necessários , porem aconselho a criar um repositório
único para não ter problemas com gerenciamento.
A configuração acima diz ao servidor Apache que o
diretório “cgi-bin” dentro do diretório do usuário do domínio manipulado será o
repositório dos arquivos CGI, que serão acessados publicamente pela URL do
navegador como http://www.dominio-da-web.com.br/cgi-bin/arquivo.cgi.
diretório “cgi-bin” dentro do diretório do usuário do domínio manipulado será o
repositório dos arquivos CGI, que serão acessados publicamente pela URL do
navegador como http://www.dominio-da-web.com.br/cgi-bin/arquivo.cgi.
Ainda no exemplo acima, é configurado a extensão a ser
aceita como CGI dentro da tag <Directory> com a propriedade “AddHandler
cgi-script” como “.cgi”. Nesta configuração foi apenas configurado a extensão
“.cgi” para exemplo, mas se necessário pode-se especificar extensões diferente
ou até mesmo mais de uma extensão, como .pl, .bin, .py, .sh etc.
aceita como CGI dentro da tag <Directory> com a propriedade “AddHandler
cgi-script” como “.cgi”. Nesta configuração foi apenas configurado a extensão
“.cgi” para exemplo, mas se necessário pode-se especificar extensões diferente
ou até mesmo mais de uma extensão, como .pl, .bin, .py, .sh etc.
Vejamos:
1 2 3 4 5 6 7 8 9 10 | <VirtualHost *:80> ... ScriptAlias /cgi-bin/ /home/dominio-da-web/cgi-bin/ <Directory /home/dominio-da-web/cgi-bin> allow from all Options +ExecCGI AddHandler cgi-script .pl .py .bin .sh </Directory> ... </VirtualHost> |
Podemos ainda utilizar um documento padrão para ser
especificado quando houver a requisição para um diretório CGI. A utilização
deste recurso não utiliza “ScriptAlias” pois a diretiva “DirectoryIndex” com
esta opção emitiria uma mensagem de erro, para solucionar este problema
utilizaremos “Alias”.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <VirtualHost *:80> ... Alias /cgi-bin/ /home/dominio-da-web/cgi-bin/ <Directory/home/dominio-da-web/cgi-bin> Options ExecCGI SetHandler cgi-script DirectoryIndex index.py Order allow,deny Allow from all AllowOverride none </Directory> ... </VirtualHost> |
Testes de Configuração
Para efetuar testes em teu servidor de aplicações CGI,
segue abaixo alguns exemplos de códigos para serem utilizados.
segue abaixo alguns exemplos de códigos para serem utilizados.
Exemplo em C/C++
1 2 3 4 5 6 7 8 9 10 11 | #include <iostream> using namespace std; int main(int argc, char** argv) { cout << "Content-type: text/plain" << endl << endl; cout << "<h1>C/C++</h1>" << endl; cout << "<p>Olá mundo !!! eu sou um CGI.</p>" << endl; return 0; } |
Exemplo em Python
1 2 3 4 5 | #! /usr/bin/env python print("Content-type: text/plain\n\n") print("<h1>Python</h1>\n") print("<p>Olá mundo !!! eu sou um CGI.</p>\n") |
Exemplo em Perl
1 2 3 4 5 |
Exemplo em Shell Script
1 2 3 4 5 | #! /bin/sh echo "Content-type: text/plain\n\n" echo "<h1>Perl</h1>\n" echo "<p>Olá mundo !!! eu sou um CGI.</p>\n" |
Nenhum comentário:
Postar um comentário