[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Res: [shell-script] executar CGI Bash em servidor apache
From: |
Wagner Brasileiro |
Subject: |
Res: [shell-script] executar CGI Bash em servidor apache |
Date: |
Fri, 2 Jul 2010 06:37:30 -0700 (PDT) |
MrBits,
Me desculpe pela demora e por não ter postado o código pelo Pastebin, além de
não conhecer e ferramenta, encarei como uma sugestão apenas e meu muito
obrigado
pelo seu empenho mesmo assim. Me enrolei com outras coisas aqui e por isso só
agora estou voltando a postar sobre ele. Agora postado no Pastebin:
http://pastebin.com/f4yci2A0 (rs...)
Voltei a verificar os logs do servidor e nada aparece, porém consegui evoluir,
se eu chamar o script via página html diretamente assim:
meusite/cgi-local/script.cgi ele resposde. Algumas anomalias porém eu ainda
estou encontrando, talvez pela minha falta de experiência, são elas:
1- Se na linha "2. content-type: text/plain" eu declarar asim como plain, ele
me
dá um resultado bem próximo do que eu quero e do que ele tem me mostrado aqui
quando o executo diretamente via SSH como usuário local, mas com um problema,
ele me injeta o resultado em texto plano, como se fosse um relatório. Se eu
mudo
para HTML ele me come os resultados do código dentro do "for" entre as linhas
15
e 19 e nada em html é impresso dentro do "for". Achei que fosse aluma aspa
aberta pois o próprio VI me mostrava dependnedo do caso que o loop estava
aberto, mesmo qaundo ele mostra fechado nada acontece.
2- Como o cgi só roda dentro diretório CGI ele roda sempre com status local,
diferentemente de quando o executo via SSH que o chamo de outro diretório e ele
faz referência ao diretório de onde eu o chamei, no caso de comandos como PWD
ele sempre estará no diretório CGI. pensei em passar algum parâmetro via POST
ou
GET, mas neste ponto o HTML ainda não aceita os comandos do script e não estou
visualizando uma maneira de fazer isso dinamicamente, sem ter que enviar uma
constante, o que me tiraria o dinamismo do script tendo que o reescrever para
cada lugar que fosse utilizar o deixando fadado ao erro e desuso.
Mais uma vez meu muito obrigado pela atenção, mesmo na minha falha de não ter
postado o código pelo pastebin.
________________________________
De: MrBiTs <address@hidden>
Para: address@hidden
Enviadas: Quarta-feira, 30 de Junho de 2010 11:16:10
Assunto: Re: [shell-script] executar CGI Bash em servidor apache
> Ele me parece funcionar perfeitamente quando o testo via SSH o chamando
> diretamente, já quando o chamo via CGI através do HTML que nada acontece, os
> logs do servidor não me mostram nada quanto a isso. Ele injeta via terminal o
> código HTML e a saída que eu desejo, minha grande dúvida é se, via CGI só
> imprimir o arquivo de saída com código HTML é o suficiente ou se existe algo a
> mais na comunicação via CGI, ou seja, para pasar dados via CGI sei que tenho
>que
> usar o método GET ou POST e colher essas informações no script, no meu caso
não
> troco informações ao executé-lo, ainda assim o que ele vai printar na saída é
> automático ou existe alguma forma especial de se fazer isso?
> De qualquer forma, acho melhor terminar essa postagem por aqui, antes que
>alguém
> encare isso como off-topic, pensei muito antes de enviar esta dúvida, e ainda
> creio que seja de shell mas vou procurar fora. Obrigado a todos!
Apesar do fato de você ter ignorado totalmente a minha recomendação de
postar seu código num paste-bin da vida, para que pudessemos
auxiliá-lo no debug do seu problema, eu consegui gerar um erro aqui,
que me informou que há bad headers no seu script. Em outras palavras,
seu CGI está mal construído. Você faz:
echo "content-type: text\html\n\n"
mas o echo não sabe interpretar esse \n e, por definição, CGIs têm que
ser escritos tendo como primeira linha o tipo do conteúdo seguido de
duas linhas em branco.
Veja como ficou o meu script:
http://pastebin.com/uQrpxiux
De lambugem você ainda aprende a trabalhar com pastebin.
[As partes desta mensagem que não continham texto foram removidas]
- Res: [shell-script] executar CGI Bash em servidor apache,
Wagner Brasileiro <=