Internal Server Error ao executar um script cgi
Olá...
Quando executo um script cgi de um formulário ele dá a msg: Internal Server Error....
NO apache está assim:
LoadModule cgi_module modules/mod_cgi_so
.
.
.
.
ScriptAlias /cgi-bin/ "/var/www/html/cgi-bin/"
<Directory "/var/www/html/cgi-bin">
AllowOverride all
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
O que pode ser???
Uso o Fedora Core 3...
Falow!!
Internal Server Error ao executar um script cgi
olhe no error_log qual eh a msg de erro q ele vai dar qdo vc chamar a pagina, internal server error podem ser 09809586 coisas diferentes
Internal Server Error ao executar um script cgi
Poste o script... =)
flw.
Internal Server Error ao executar um script cgi
Estou tentando configurar o AutoMail V. 3.1
O erro é o seguinte:
- No such file or directory: exec of 'var/www/html/cgi-bin/automail.pl' failed, referer: http://www.faculdadearapoti.com.br/teste/ (O arquivo que eu chamo é index.html, e esta dentro deste diretorio, esses erros acontecem quando clico em alguns dos links para compor uma msg ou editar....)
outro erro:
- Premature end of script headers: automail.pl, referer: http://www.faculdadearapoti.com.br/teste/
Internal Server Error ao executar um script cgi
Me parece que dentro do seu index.html esta declarado o caminho errado pro seu automail.pl provavelmente voce esta chamando de forma errado o script, costuma ser assim <form method=post action="cgi-bin/automail.pl"> partindo do ponto que dentro da conf do seu Apache tenha um alias do cgi-bin -> /var/www/localhost/htdocs/cgi-bin por exemplo assim voce chamando somente pelo cgi-bin/ o Apache encontra o script atravez do alias
Internal Server Error ao executar um script cgi
Ou entao pode ser que seu Apache nao esteja executando corretamente os Perl script ou ainda que seu script esteja fazendo referencia a URL invalida
Internal Server Error ao executar um script cgi
Como fazer para saber se o perl está rodando???
Internal Server Error ao executar um script cgi
perl nao esta rodando, perl serve para rodar alguma coisa, perl é uma linguagem e nao um daemon ou um servico para estar rodando.
perl -v ou -V é uma boa ajuda para saber qual perl esta instalado na sua maquina.. isso é se esta.
Internal Server Error ao executar um script cgi
digitei perl -v e apareceu:
"This is perl, v5.8.5 built for i386-linux-thread-multi..."
perl -V:
"Summary of my perl5 (revision 5 version 8 subversion 5) configuration:
Platform:
osname=linux, osvers=2.4.21-14.elsmp, archname=i386-linux-thread-multi...."
Nao sei o que pode ser.....
heheehe
Falow!!!
Internal Server Error ao executar um script cgi
Citação:
Postado originalmente por crazy4tech
num ta faltando um "/" nesse script nao? parece q ele ta tentando acessar var/www ao inves de /var/www
Internal Server Error ao executar um script cgi
Olá 1c3_m4n,
Mudei o diretório de scripts cgi, mas o erro continua....
O erro foi esse: (agora com a "/" antes do var)
No such file or directory: exec of '/var/www/cgi-bin/automail.pl' failed, referer: http://www.servidor.com.br/teste/
outro erro:
- Premature end of script headers: automail.pl, referer: http://www.servidor.com.br/teste/
Se puder me ajudar ficarei muito agradecido..
Falow!!!!
Internal Server Error ao executar um script cgi
Não pode ser algum error de permissão de acesso???
Fiz um teste anteriormente e coloquei 666, deu erro de acesso negado...
Os arquivos do diretório cgi estão com permissão 755
Falow...
Internal Server Error ao executar um script cgi
altere no teu script ao inves de chamar /var/www/cgi-bin/automail.pl use somente /cgi-bin/automail.pl
Internal Server Error ao executar um script cgi
O conteúdo do arquivo index.html:
<title> AUTOMAIL: ADMINISTATION PAGE </title>
<body bgcolor=white>
<CENTER>
<table width=100% height=100%><td><CENTER>
<table border=2 width=500><td bgcolor=#C3A369 colspan=2>
<font color=white face=arial size=6>[i]AutoMail version 3.1</font><br></td>
<tr><tr><td bgcolor=beige align=right><font face=arial size=-1>Modify a user's information in fields</td><td>
<font face=arial size=-1><A HREF="/cgi-bin/automail.pl?edit"><CENTER>Edit info</A></td>
<tr><tr><td bgcolor=beige align=right><font face=arial size=-1>Compose a new personalized message</td><td>
<font face=arial size=-1><A HREF="/cgi-bin/automail.pl?composer"><CENTER>Compose Messages<br></A></tD>
<tr><tr>
<td bgcolor=#C3A369 colspan=2>
<IMG align=right SRC="http://www.stepweb.com/stepweb.gif">
<IMG align=left SRC="http://www.stepweb.com/stepweb.gif">
<CENTER><font face=arial size=-2 color=white><br>
Script By <A HReF="http://www.stepweb.com">StepWeb.Com</A></CENTER>
</td></tr>
</table>
</td></table>
Ao clicar em edit info por exemplo, estou acessando /cgi-bin/automail.pl
O arquivo index.html está em /var/www/html/teste.html
e o script cgi está em /var/www/cgi-bin
O conteúdo do arquivo automail.pl:
open(CFG, "./configs.cf");@info = <CFG>;close(CFG);foreach $one (@info){chop($one) if ($one =~ /\n/);}$datafile = $info[0];$url = $info[1];$mailprog = $info[2];$returnmail = $info[3];$message = $FORM{'comm'};system("chmod a+rx $datafile");open (FILEZ, "$datafile");$firstline = <FILEZ>;close (FILEZ);system("chmod a-rx $datafile");chop($firstline) if ($firstline =~ /\n/);(@howmany) = split(/\|\|/, $firstline);$zahl = @howmany;if ((!(-e "$datafile")) || ($zahl != 3)){open (FILEZ, ">$datafile");print FILEZ "2||<<MAIL>>||<<NAME>>\n";close (FILEZ);}if ($ENV{'QUERY_STRING'} =~ /^edit$/i){&print_html("Edit Information", "editnow", "Edit", 1);}elsif ($ENV{'QUERY_STRING'} =~ /^editnow$/i){&parse_info;&editnow;}elsif ($ENV{'QUERY_STRING'} =~ /^composer$/){&print_html("Compose Message", "compose", "Send", 3);}elsif ($ENV{'QUERY_STRING'} =~ /^compose$/i){&parse_info;&compose;}exit;sub parse_info {read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});@pairs = split(/&/, $buffer);$bufer = -s __FILE__;if (($bufer < 7480) || ($bufer > 7540)){exit;}foreach $pair (@pairs){($name, $value) = split(/=/, $pair); $value =~ tr/+/ /;$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;$value =~ s/~!/ ~!/g; $FORM{$name} = $value;}}sub print_html {($text, $action, $doit, $query) = @_;print "Content-type: text/html\n\n";print "<title> $text </title><Body bgcolor=\"white\" vlink=\"greenl\" link=\"beuge\" text=\"black\"><CENTER>";print "<FORM ACTION=\"$url?$action\" METHOD=\"POST\">";if ($query == 1){&edit_page; }elsif ($query == 3){&composer; $num = 2;}print "<table width=100\% height=100\%><td><CENTER> <table border=1><td bgcolor=\#C3A369 colspan=$num>";print "<font color=white face=arial size=6>[i]\U$text</font><br></td>";print "<tr>";print @entry;print "<td bgcolor=#C3A369 colspan=$num><CENTER><INPUT TYPE=hidden name=\"www.faculdadearapoti.com.br\" value=$o><INPUT TYPE=\"submit\" VALUE=\"$doit\"> <INPUT TYPE=\"reset\" VALUE=\"Reset\"><br></CENTER></table></td></table></FORM>";exit;}sub edit_page {system("chmod a+rx $datafile");open (FILEZ, "$datafile");@lines = <FILEZ>;close (FILEZ);system("chmod a-rx $datafile");$first = shift(@lines);($entries, @fields) = split(/\|\|/, $first);$num = 2;$o=0;$g=0;foreach $field (@fields){chop($field) if ($field =~ /\n/);$bill = $field;$bill =~ s/</\<\;/g;$bill =~ s/>/\>\;/g;$entry[$g] = $entry[$g]."<td bgcolor=beige><CENTER><Font face=arial size=2>$bill</font></CENTER></td>";$g++;}$g--;$entry[$g] = $entry[$g]."<tr>\n";$g++; foreach $line (@lines){chop($line) if ($line =~ /\n/);next if ($line eq "");(@info) = split(/\|\|/, $line);$i = 0;foreach $one (@info){ last if ($i >= $num);$tag = $fields[$i];$tag =~ s/<//g;$tag =~ s/>//g;$entry[$g] = "<td><CENTER><input type=text name=\"$o-$tag\" size=10 value=\"$one\"></CENTER></td>";$g++;$i++; }if ($i < $num){$res = $num - $i;for($t=$res; $t < $num; $t++){ $tag = $fields[$i];$tag =~ s/<//g;$tag =~ s/>//g;$entry[$g] = "<td><CENTER><input type=text name=\"$o-$tag\" size=10 value=\"\"></CENTER></td>";$g++;$i++;}}$g--;$entry[$g] = $entry[$g]."<tr>\n";$g++;$o++}$const = $o + 6;for($m=$o; $m <= $const; $m++){ foreach $field ("MAIL", "NAME"){$entry[$g] = $entry[$g]."<td><CENTER><input type=text name=\"$m-$field\" size=10 value=\"\"></CENTER></td>";}$entry[$g] = $entry[$g]."<tr>\n";$g++;}$entry[$g] = "<colspan=2><input type=hidden name=\"MAX\" size=10 value=\"$g\">";}sub editnow {system("chmod a+rx $datafile");open (FILEZ, "$datafile");$first = <FILEZ>;close (FILEZ);system("chmod a-rx $datafile");chop($first) if ($first =~ /\n/);$top = $first;$first =~ s/<//g;$first =~ s/>//g;($entries, $mailtag, $nametag) = split(/\|\|/, $first);system("chmod a+w $datafile");open(LOCK, ">$datafile");flock(LOCK, 2);print LOCK "$top\n";for($i=0; $i<=$FORM{'MAX'}; $i++){foreach $field ($mailtag, $nametag){$tag = $FORM{"$i\-$field"};$line = $line . "$tag||";}$line = $line . "\n";if ($line =~ /[A-Za-z0-9]/){print LOCK $line;}$line = "";} flock(LOCK, 8);close(LOCK);system("chmod a-w $datafile");&success("Success", "Confirmation Message", "You should have successfully edited your database. If there were any interruptions, there might have been data loss.");}sub composer {local($action, $myqueer, $status, $actnow) = @_;$i = 0;$entry[$i] = "<td align=right bgcolor=beige>Subject: </td><td bgcolor=beige><CENTER><input type=text name=subject size=43></td><tr><td bgcolor=beige><CENTER><SELECT size=10>";$i++;$entry[$i] = "<OPTION>\<\;\<\;MAIL>>";$i++;$entry[$i] = "<OPTION>\<\;\<\;NAME>>";$i++;$entry[$i] = "</SELECT></td><td bgcolor=beige><CENTER>[i]Write your message below[/b]<br><textarea name=\"compose\" wrap cols=40 rows=8></textarea></td><tr>";}sub compose {$message = $FORM{'compose'};(@message) = split(/\n/, $message);system("chmod a+rx $datafile");open (FILEZ, "$datafile");$first = <FILEZ>;@users = <FILEZ>;close (FILEZ);system("chmod a-rx $datafile");($entries, @fields) = split(/\|\|/, $first);@old = @message;$p=0;foreach $user (@users){chop($user) if ($user =~ /\n/);(@tabs) = split(/\|\|/, $user);foreach $line (@message){$i = 0;foreach $field (@fields){chop($field) if ($field =~ /\n/);$line =~ s/$field/$tabs[$i]/g;$i++;}}if (($tabs[0] =~ /\@/) && ($tabs[0] =~ /\./) && ($tabs[0] ne "")){&automail;$userd[$p] = "<LI> $tabs[0]";$p++;}@tabs = "";@message = @old;}&success("Success", "Confirmation Message", "Mail should have been sent out to the following:<OL>@userd</OL>");}sub success {($number, $description, $message) = @_;print "Content-type: text/html\n\n";print "<title>$description</title><body bgcolor=white><table width=100\% height=100\%><td><CENTER><table cellspacing=1 cellpadding=1 width=500 border=1><td bgcolor=\#C3A369>";print "<font color=red>$number:</font> <font face=arial size=3 color=white>[b]$description</td><tr><td bgcolor=\"beige\">";print "<font face=arial size=2>$message</font></td></table></td></table>";exit;}sub automail {open (MAIL, "|$mailprog -t");print MAIL "X-Mailer: AutoMail v.3.0\n";print MAIL "X-Comment: Download your copy at http://www.stepweb.com\n";print MAIL "To: $tabs[0]\n";print MAIL "Subject: $FORM{'subject'}\n";print MAIL "From: $returnmail\n\n";print MAIL @message;print MAIL "\n\n";close (MAIL);}
Falow
Internal Server Error ao executar um script cgi
Parece um erro do script. Vá até o diretório /var/www/cgi-bin e rode o script: perl automail.pl
Observe o retorno na tela.
Crie um arquivo qualquer em perl para testar via browser.
Código :
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "ok. funcionando...\n" ;
flw.