Jump to content


Photo

Probleminha Com Forbidden...


  • Faça o login para participar
8 replies to this topic

#1 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 29/12/2005, 15:34

Bom apanhei muito mas consegui fazer o Perl funcionar aqui em casa no Apache junto com PHP e MySQL.
Só tem um probleminha:

Num servidor de hospedagem de sites em qualquer diretório que contenha uma pasta cgi-bin eu posso colocar os arquivos .pl que roda normalmente.
Tipo:

/
/dir
/dir/subdir
TUDO EM PL QUE VAI AQUI FUNCIONA
/dir/subdir/cgi-bin

Ou seja, os arquivos Perl no precisam estar dentro da pasta cgi-bin.

Já aqui em casa acontece o contrário. Se eu coloco os arquivos .PL em qualquer pasta (mesmo que nessa exista a pasta cgi-bin) não funciona.

Só funciona se ficar dentro da pasta cgi-bin, que aqui é C:\root\cgi-bin
Porém, se eu tenho um esquema mais ou menos assim:

/
/dir/subdir
/dir/subdir/cgi-bin
TUDO EM PL QUE VAI NESSA PASTA NÃO FUNCIONA.

Ou dá erro de Forbidden, ou da Internal Server Error.
Creio eu que deva ser algum ajuste que preciso fazer no httpd.conf do Apache, porém postei aqui por ter a ver mais com CGI.

Será que alguém pode me ajudar, pois se eu tiver que aglomerar todos os scripts .PL numa pasta só sem poder subdividir vai ficar uma coisa horrível de se manipular.

Abraços

#2 Wilton Paulo

Wilton Paulo

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado
  • Localidade:São Paulo - Zona Sul
  • Interesses:Aprender mais sobre WebDesigner e tirar dúvidas de membros sobre Hardware...entre outros

Posted 02/01/2006, 00:29

Deve modificar o httpd.conf sim, segue abaixo:

Nem todo diretório executa um script perl. Para que um diretório
execute um script, você tem que criar uma diretiva ScriptAlias.

ScriptAlias /site/cgi-bin/ "/var/www/site/cgi-bin/"
<Directory "/var/www/site/cgi-bin/">
Options FollowSymLinks
</Directory>

Você precisa definir a diretiva ExecCGI em um diretório para execução, ou seja:

<Directory /var/www/html/site/cgi-bin>
Options ExecCGI
(outras diretivas)
</Directory>
Wilton Paulo,

ICQ: 102226854
MSN: wiltonpaulo@hotmail.com

#3 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 02/01/2006, 09:49

Meu httpd.conf tava assim:

ScriptAlias /cgi-bin/ "C:/root/cgi-bin/"

ScriptAlias perl "C:/usr/bin/perl.exe"
Alias perl "C:/usr/bin/perl.exe"


E funcionava apenas em C:/root/cgi-bin

Daí eu troquei para:

ScriptAlias /cgi-bin/ "C:/root/cgi-bin/"

<Directory "C:/root/cgi-bin/">
Options FollowSymLinks
</Directory>

ScriptAlias perl "C:/usr/bin/perl.exe"
Alias perl "C:/usr/bin/perl.exe"


E próximo à única instrução ExecCGI que tem no httpd.conf tinha isso:

AddHandler cgi-script .pl

Eu alterei para isso:

AddHandler cgi-script .pl

<Directory "C:/root/cgi-bin">
Options ExecCGI
</Directory>


E mesmo assim só funciona scripts Perl em C:/root/cgi-bin

Tá certo ou precisa arrumar mais?

Abraços

#4 Wilton Paulo

Wilton Paulo

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado
  • Localidade:São Paulo - Zona Sul
  • Interesses:Aprender mais sobre WebDesigner e tirar dúvidas de membros sobre Hardware...entre outros

Posted 02/01/2006, 11:10

Então, tá certo, mas dessa forma que você configurou, vai rodar só em /root/cgi-bin.

Supondo que você tenha script em outro diretório, por exemplo /root/seusite/cgi-bin, então terá que escrever a configuração para o novo diretório.

Depois que efetuar a configuração é necessário reiniciar o apache/httpd.
Wilton Paulo,

ICQ: 102226854
MSN: wiltonpaulo@hotmail.com

#5 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 02/01/2006, 11:19

Quer dizer que pra cada subpasta que eu tiver dentro dentro de /root eu tenho que adicionar um <Directory> com o Options FollowSymLinks e um <Directory> com Options ExecCGI diferente?

Daí se eu tiver 50 pastas tem que 50 "cópias desses blocos?

Não tem como criar um scritp que faça isso automaticamente? Como nos hosts?

Abraços

#6 jgcl

jgcl

    João Gabriel C. Laass, Serra/ES

  • Usuários
  • 559 posts
  • Sexo:Não informado
  • Localidade:Serra / ES
  • Interesses:Tudo!

Posted 02/01/2006, 19:15

não...

se quiser rodar Perl na pasta root, indique a diretiva para a pasta root assim:

<Directory "C:/root">
Options FollowSymLinks
</Directory>
<Directory "C:/root">
Options ExecCGI
</Directory>


entende? só colocar a pasta que vc quer... assim, todas as sub-pastas irão rodar perl... ou seja, todas as pastas dentro de root irão rodar o perl...
João Gabriel
Site >> joaogabriel.org
CGiClube.net >> http://www.cgiclube.net
Vitória Perl Mongers >> http://vitoria.pm.org

#7 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 02/01/2006, 20:01

Belezinha, funcionou certinho, e sem precisar de uma porrada de blocos sequenciais.

Abraços

#8 jgcl

jgcl

    João Gabriel C. Laass, Serra/ES

  • Usuários
  • 559 posts
  • Sexo:Não informado
  • Localidade:Serra / ES
  • Interesses:Tudo!

Posted 03/01/2006, 16:42

E tem mais....

Resumindo seus códigos cheguei a isto...
ScriptAlias /cgi-bin/ "C:/root/cgi-bin/"
ScriptAlias perl "C:/usr/bin/perl.exe"
AddHandler cgi-script .pl
AddHandler cgi-script .cgi

<Directory "C:/root">
Options FollowSymLinks
Options ExecCGI
</Directory>


No meu HTTPD.conf, tá feito assim:
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

AddHandler cgi-script .cgi
AddType application/x-httpd-cgi .cgi
AddHandler cgi-script .pl
AddType application/x-httpd-cgi .pl

flw...

Edição feita por: jgcl, 03/01/2006, 16:42.

João Gabriel
Site >> joaogabriel.org
CGiClube.net >> http://www.cgiclube.net
Vitória Perl Mongers >> http://vitoria.pm.org

#9 carcleo

carcleo

    Normal

  • Usuários
  • 69 posts
  • Sexo:Não informado

Posted 28/01/2006, 13:58

Criei um arquivo "cadastros.exe", e coloquei na pasta "Cadastros/" do meu site.
Criei um arquivo "Jogo.exe", e coloquei na pasta "Downloads/" do meu site.

Porem toda vez que tento executar
tanto o script "http://localhost/sit.../cadastros.exe",
quanto o script"http://localhost/sit...loads/jogo.exe",
aparece a tela de download.

O problema é que o arquivo cadastros.exe, precisa executar na tela do internet porque ele contem formularios de cadasto.
e em vez do script funcionar, da tela de download deste arquivo.
Como posso fazer para o arquivo cadastros.exe executar?


Windows XP Pro SP2
Apache 2
Php 5
MySql 5



Como posso fazer para o arquivo executar?




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq