O primeiro passo é indicar que todo arquivo que tenha extensão .cgi
poderá ser executado pelo Apache. Pode parecer estupidez, mas para
o Apache um executável pode ter uma extensão chamada xuxu. Você tem
a liberdade de dizer qual a extensão que vai querer. Você também
verá mais a frente que o Kylix também permite que você altere a
extensão do arquivo.
Ainda logado como root, modifique o arquivo de configuração do
Apache
httpd.conf, que normalmente está localizado em
/usr/local/apache/conf,
/usr/httpd/conf ou
/etc/httpd/conf.
Assim, abra o arquivo com algum editor de texto. Se você não conhece
bem o
Linux e utiliza o KDE, uma opção é utilizar o "Editor de Texto
do KDE". Para tal, chame o
Konqueror, digite o diretório e
dê um clique da direita sobre o arquivo
httpd.conf. Vai
aparecer um popup menu e aí escolha a opção "Open With" ou "Abrir Com"
e selecione um dos editores de textos disponíveis.
Procure pela string "AddHandler cgi-script .cgi". Se houver um
# no início da linha (que indica um comentário), retire-o. A linha
tem que ficar desta forma:
AddHandler cgi-script .cgi
Ainda neste arquivo, adicione no final do texto o comando:
SetEnv LD_LIBRARY_PATH /home/web/scripts
Esta última linha indica para o Apache onde ele deve procurar as
bibliotecas necessárias para o CGI funcionar. A documentação do
Kylix neste ponto diz para você colocar o diretório "bin" do Kylix,
mas se pensarmos que iremos copiar os arquivos para um provedor no
futuro, essa instrução só iria funcionar se instalássemos o Kylix
no provedor, o que não é muito prático, concordam?
Colocando o LD_LIBRARY_PATH no diretório scripts, você terá que
copiar as bibliotecas para o mesmo diretório onde estão os seus CGIs.
Diferentemente do RWindows, o fato de uma biblioteca (que equivale a
uma DLL) estar no mesmo diretório do EXE não significa que ela poderá
ser acessada. No Linux, você deve sempre explicitar onde você vai
buscar as bibliotecas.
Por fim, vamos criar um alias para apontar para o nosso diretório. Aí
existe um problema: para algumas distribuições, o arquivo que deve
ser alterado é o httpd.conf, para outras (como o Mandrake) é o
arquivo commonhttpd.conf. Assim, se no diretório
httpd/conf/ existir o arquivo commonhttpd.conf, altere
este. Caso contrário, procure por um arquivo que contenha a string
"DocumentRoot". Adicione no fim do arquivo as linhas:
Alias /scripts /home/web/scripts
<Directory /home/web/scripts>
AllowOverride Nome
Options Indexes FollowSymLinks MultiViews ExecCGI
Order allow,deny
Allow from all
</Directory>
Certifique-se que os arquivos de configuração estão salvos.
Para que estas alterações tenham efeito, vamos reiniciar o Apache
com os comandos:
# apachectl graceful
ou
# /etc/rc.d/init.d/httpd restart
Se o comando não der a mensagem de [ Ok ], então o servidor não foi
iniciado corretamente. Reveja os passos anteriores, pois algo deu
errado :(
Na sequência, vamos chamar o Kylix e compilar um CGI no diretório
que acabamos de criar.