Probleminha Com Forbidden...
#1
Posted 29/12/2005, 15:34
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
Posted 02/01/2006, 00:29
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>
ICQ: 102226854
MSN: wiltonpaulo@hotmail.com
#3
Posted 02/01/2006, 09:49
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:
Eu alterei para isso:AddHandler cgi-script .pl
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
Posted 02/01/2006, 11:10
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.
ICQ: 102226854
MSN: wiltonpaulo@hotmail.com
#5
Posted 02/01/2006, 11:19
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
Posted 02/01/2006, 19:15
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...
Site >> joaogabriel.org
CGiClube.net >> http://www.cgiclube.net
Vitória Perl Mongers >> http://vitoria.pm.org
#7
Posted 02/01/2006, 20:01
Abraços
#8
Posted 03/01/2006, 16:42
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.
Site >> joaogabriel.org
CGiClube.net >> http://www.cgiclube.net
Vitória Perl Mongers >> http://vitoria.pm.org
#9
Posted 28/01/2006, 13:58
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)