Dúvida shell + CGI.

1. Dúvida shell + CGI.

Caio Alexander
caioc2

(usa Kali)

Enviado em 08/11/2011 - 21:58h

Galera eu fiz um aplicativo para conversão de IP's , essas coisas. Eu estou usando o Apache, e gostaria de saber como eu faço para chamar um shell script dentro de uma pagina HTML que é a index.html do Apache. Exemplo. Quando eu entrar no servername informado no apache, entrar na index e escolher a opção " Converter IP" aparecer o shell script que eu fiz para conversão. Eu criei um arquivo.cgi para chamar o arquivo conversao.sh, mas não deu. O que eu tenho que fazer??


  


2. Re: Dúvida shell + CGI.

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 09/11/2011 - 02:58h

Lembre-se que todo cgi em shell script deve possuir o seguinte cabeçalho:


#!/bin/sh
echo 'Content-Type: text/html'
echo ''
echo ''
<suas lógicas aqui!>
exit


Exemplo simples:


#!/bin/sh
#
echo 'Content-type: text/html; charset=utf-8'
echo ''
echo ''

unset PATH

/bin/cat <<-FIM
<html>
<head><title>CGI + Shell Script</title></head>
<body>

<h1>Algumas informaçoes sobre seu sistema:</h1>

<h4>Data</h4>
<pre>`/bin/date`</pre>

<h4>Uptime</h4>
<pre>`/usr/bin/uptime`</pre>

<h4>Kernel Linux</h4>
<pre>`/bin/uname -a`</pre>

</body>
</html>
FIM

exit 0


Ah, por precaução desabilite a variável de ambiente $PATH e sempre passe o caminho completo dos comandos que for utilizar em seu cgi.


3. Re: Dúvida shell + CGI.

Caio Alexander
caioc2

(usa Kali)

Enviado em 09/11/2011 - 15:21h

Mais como eu coloco um arquivo.sh dentro do cgi pra ele abrir ?? ou eu tenho que fazer todo o script dentro do cgi, ao invez de só chamar o arquivo.sh?



4. Re: Dúvida shell + CGI.

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 09/11/2011 - 15:23h

de uma olhada nesse site

http://thobias.org/doc/cgi_shell.html
é muito bom , eu recomendo



5. Re: Dúvida shell + CGI.

Caio Alexander
caioc2

(usa Kali)

Enviado em 10/11/2011 - 19:10h

mais deixa eu perguntar mais uma coisa, tem como eu fazer um arquivo.CGI pra chamar e executar um arquivo.sh quando eu abrir a pag web, ou eu vou ter que fazer todo o codigo do arquivo.sh dentro do arquivo.cgi !?!?


6. Re: Dúvida shell + CGI.

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 10/11/2011 - 19:41h

pode sim
abre a web e tem um botão que executa o script
tem sim



7. Re: Dúvida shell + CGI.

Caio Alexander
caioc2

(usa Kali)

Enviado em 10/11/2011 - 19:59h

Se não for pedir muito, você poderia me dar um pequeno exemplo de como eu faço isso ?!


8. Re: Dúvida shell + CGI.

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 11/11/2011 - 01:58h


Exemplo:


coloca um link por exemplo:


<a href="script.sh">executar script</a>


e no script :


#!/bin/bash
#oi.sh
echo Content-type: text/html
echo
#---------------------------------------------------
DATA_ATUAL=$(date)


cat <<FIM
<P>$DATA_ATUAL</P>
Conteudo
<HR>
<a href="ver_img.sh">ver imagens</a>
FIM






9. Re: Dúvida shell + CGI.

Caio Alexander
caioc2

(usa Kali)

Enviado em 11/11/2011 - 15:19h

eu fiz assim , criei um arquivo.cgi e coloquei


<html>
<body>
<a href="entrada.sh"> Converter IP </a>
</body>
</html>


e fiz um arquivo.sh, chamado "entrada.sh" na mesma pasta do "arquivo.cgi", porém quando clico em converter IP ele faz é o download do arquivo ao invez de executar


10. Re: Dúvida shell + CGI.

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 11/11/2011 - 22:22h

Deve tá faltando você ativar a interpretação desses arquivos no apache, por isso ele aparece como download para você, ao invés de ser executado.

Habilite o modo CGI, no meu caso o arquivo é o seguinte:

/etc/apache2/mods-enabled/cgi.load
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so

E o apache tem que saber que esse arquivo .sh será interpretado/executado

/etc/apache2/mods-enabled/mime.conf

AddHandler cgi-script .cgi .sh

Faça a configuração no seu apache ai e retorne o resultado.

Abraços



11. Re: Dúvida shell + CGI.

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 11/11/2011 - 22:23h

Há, mudou a configuração, restarta o serviço ;-)

$ sudo /etc/init.d/apache2 stop
$ sudo /etc/init.d/apache2 start


12. Re: Dúvida shell + CGI.

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 03/12/2011 - 15:55h

Resolveu?



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts