Configurando o Apache para executar CGIs em Kylix

Configurar o Apache para executar CGIs desenvolvidos em Kylix não é uma tarefa difícil, mas a documentação não ajuda muito e pode compilcar a vida de desenvolvedores que não tenham experiência com Linux. Este tutorial também procura ajudar quem quer fazer o deploy dos CGI para provedores de Internet.

[ Hits: 39.662 ]

Por: Josir Cardoso Gomes em 12/02/2004


CGIs com shared library



Vamos agora compilar outro exemplo do Kylix, que é o projeto localizado no diretório demos/websnap/MiniAppCGI.bpg. Este projeto utiliza a biblioteca WebSnap, que traz vários recursos de produtividade para o desenvolvedor, mas o nosso foco aqui continua sendo o deploy.

Abra e compile o projeto. Entre no browser e tente executar. Vai dar o seguinte erro:

Internal Application Error
libjs.borland.so: cannot open shared object file: No such file or directory

O problema é que a este programa utiliza esta biblioteca e o Apache não consegue enxergá-la. Este arquivo está no diretório /usr/local/kylix2/bin. Mas como saber se não existem outras bibliotecas necessárias? Para tentar solucionar o problema, usa-se um comando do Linux chamado ldd. Abra um terminar e execute:

$ ldd MiniAppCGI.cgi

O comando lista todas as bibliotecas necessárias e mostra onde elas foram encontradas no file system. Se alguma biblioteca não for encontrada, ele irá mostrar do lado "Not found". Isso aconteceu no seu CGI? Ele encontrou todas!? Não se sinta frustrado, é assim mesmo :)

O ldd só mostra os links estáticos e a libjs.borland.so é um link dinâmico. Grosseiramente falando, o programa só sabe que irá precisar da biblioteca quando já estiver sendo executado.

Se você não acredita em mim, copie o arquivo para o seu diretório de scripts com o comando:

# cp /usr/local/kylix2/bin/libjs.borland.so /home/web/scripts

Rode novamente no browser e voilá!

Esta mesma técnica funcionará para as bibliotecas do DbExpress ou de qualquer outra shared library que você for fazer uso.

Uma dica interessante: se você pretende ter várias aplicações rodando em Kylix no mesmo servidor, o interessante é que você crie um diretório somente para as bibliotecas comuns, tal como /home/web/shared e coloque lá o que for comum aos aplicativos.

Um ponto que eu ainda estou estudando é como gerar arquivos DSO. Os arquivos DSO são o equivalente do ISAPI no RWindows, ou seja, são programas que ficam em memória mesmo depois de sua execução terminar. O uso de DSOs abre várias novas possibilidades para a programação do Kylix, mas isso é para outro artigo...

Sites e arquivos pesquisados:

http://www.rick-ross.com/papers/k3/k3deploy.html
http://www.idssecure.org/?q=node/view/111
http://br.groups.yahoo.com/group/kylix-lista

Agradecimento especial para o Marcelo Almeida da Spress, que me auxiliou durante todo o processo de testes. Espero que o artigo seja útil para alguém!

Saúde e Liberdade,
Josir Gomes

Página anterior    

Páginas do artigo
   1. Introdução
   2. Configurando o Apache para executar o CGI
   3. Compilando o CGI no Kylix
   4. CGIs com shared library
Outros artigos deste autor

Porque os projetos open-source não são anunciados na mídia?

Leitura recomendada

Pascal para Web com CGI - Parte I

Pascal para Web com CGI - Parte II

Executando sua aplicação Kylix fora do Kylix

Cross-compile Lazarus: Gerando executáveis Win32 estando no Linux

Pascal para Web com CGI - Parte I

  
Comentários
[1] Comentário enviado por fabio em 12/02/2004 - 00:46h

Muito bom o artigo, parabéns!

[2] Comentário enviado por _simmons_ em 12/02/2004 - 09:50h

Parabéns pelo artigo ! Eu gostaria de saber se você tem ou sabe algum lugar que tenha material explicando como instalar suporte a db no Kylix Open ?

[3] Comentário enviado por AValle em 13/02/2004 - 13:27h

Não tem muito o que falar.
Nota 10!

[4] Comentário enviado por josir em 13/02/2004 - 13:59h

Obrigado pelos comentários!
Simon, o melhor tutorial que eu achei para instalar o suporte a db foi no ClubeKylix. Veja em:

http://www.clubekylix.com.br/txt.php?id=7

[5] Comentário enviado por josir em 19/02/2005 - 13:56h

Olá Simon,

como o Clube Kylix saiu do ar, segue um link para um tutorial que fiz sobre a instalação das bibliotecas do Open Edition.

www.jsk.com.br/kylix-mandrake.html

[6] Comentário enviado por anderson_souza em 25/11/2005 - 11:42h

Adorei o artigo, estou justamente tentando implantar um CGI em Kylix no Apache Linux.

Concordo com fato do Delphi/Kylix ser uma linguagem excelente, de fato programadores experientes vão preferir um CGI (não necessáriamente em Delphi/Kylix) do que um ASP ou PHP.

[7] Comentário enviado por coxinha_loko em 04/06/2007 - 09:17h

Parabens pelo Artigo, Mas se puder me ajudar.
Gostaria de saber como compilar Delphi em Linux?
Abrigado!

[8] Comentário enviado por josir em 04/06/2007 - 10:05h

Olá coxinha,
Vc tem que instalar o Kylix Open Edition, abrir os fontes que vc tem e mandar compilar. Repare que vc terá que instalar várias bibliotecas e converter várias partes do seu programa em Delphi. Não é tarefa fácil.
Depois de 3 anos usando Kylix, posso te afirmar que é trabalho jogado fora: não vale a pena.
É mais produtivo converter o seu sistema para Java ou outra linguagem do que ficar batendo cabeça com o Kylix. Entretanto se vc quer manter o Pascal, tente o Lazarus/Free Pascal.
Boa Sorte,


Contribuir com comentário