• Publicidad

Perl: Internal Server Error

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Perl: Internal Server Error

Notapor maxthevill » 2006-04-19 17:50 @784

yo tengo un problema, empezando por que no se donde aloja mi servidor de hosting perl y al transcribir el codigo y reparandolo me arrojo el siguiente problema


Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


--------------------------------------------------------------------------------

Apache/1.3.34 Server at natales.avidano.com Port 80



si lo deseas puedes revisarlo en
http://natales.avidano.com/upload/uploadperl.php

mi codigo html es el siguiente:

Código: Seleccionar todo
<html>

<head>
<title>Upload de Archivo - Tutorial de "Perl en Español"</title>
</head>

<body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">

<center>
<form ENCTYPE="multipart/form-data" method="post" action="../cgi-bin/upload_archivo.cgi">
<input type="file" name="archivo" size="50"><input type="submit" value=" Enviar Archivo ">
</form>
</center>

</body>

</html>


y el codigo cgi es el siguiente

Código: Seleccionar todo
#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI;

my %Input;

my $query = new CGI;
my @pairs = $query->param;

foreach my $pair(@pairs){
$Input{$pair} = $query->param($pair);
}


#Directorio donde queremos estacionar los archivos
my $dir = "../images/noticias/";

#Array con extensiones de archivos que podemos recibir
my @extensiones = ('gif','jpg','jpeg','bmp','png','txt');


recepcion_de_archivo(); #Iniciar la recepcion del archivo

#TODO SALIO BIEN
print "Content-type: text/html\n\n";
print "<h1>El archivo fue recibido correctamente</h1>\n";

exit(1);


sub recepcion_de_archivo{

my $nombre_en_servidor = $Input{'archivo'};
$nombre_en_servidor =~ s/ /_/gi;
$nombre_en_servidor =~ s!^.*(\\|\/)!!;


my $extension_correcta = 0;

foreach (@extensiones){
if($nombre_en_servidor =~ /\.$_$/i){
$extension_correcta = 1;
last;
}
}


if($extension_correcta){

#Abrimos el nuevo archivo
open (OUTFILE, ">$dir/$nombre_en_servidor") || die "No se puedo crear el archivo";
binmode(OUTFILE); #Para no tener problemas en Windows

#Transferimos byte por byte el archivo
while (my $bytesread = read($Input{'archivo'}, my $buffer, 1024)) {
print OUTFILE $buffer;
}

#Cerramos el archivo creado
close (OUTFILE);

}else{
print "Content-type: text/html\n\n";
print "<h1>Extension incorrecta</h1>";
print "Sólo se reciben archivo con extension:";
print join(",", @extensiones);
exit(0);
}


} #sub recepcion_de_archivo


porfavor necesito una pronta solucion, ya que no he podido subir archivos y ya se me agota el tiempo para lanzas el sitio original

Gracias MaX ThE ViLL
maxthevill
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2006-04-19 17:41 @778

Publicidad

Notapor kidd » 2006-04-19 19:00 @833

Hola Max:

Antes que nada bienvenido al foro. Varias cosas pueden estar ocasionando que te salga ese mensaje y aquí te las ennumero para que las cheques una a una:

1. Path de Perl
La primera línea del script contiene la ruta de Perl de tu servidor, debes de checar que sea correcta:
Código: Seleccionar todo
#!/usr/bin/perl


Si no sabes cual es la ruta, pregunta a tu servicio de hosting, o checa sus FAQs lo más seguro es que ahí lo encuentres.


2. Upload en forma ASCII
Cuando hagas el upload del script a tu servidor por medio de FTP, verifica que lo estés haciendo en modo ASCII. Si no sabes como hacer esto lee el manual del programa de FTP que estés usando, ahí te deben de venir detalles de como configurarlo para que así lo haga.


3. Permisos de tu script
Una vez que el script se encuentre en tu servidor entonces debes de checar que los permisos sean correctos.
Normalmente necesitas asignarle un permiso 775 para que funcione de manera correcta, pero otros servidores necesitan que los tenga como 755, prueba con los dos, uno de ellos debe de ser el correcto.


Si después de hacer todo esto el script te sigue arrojando error, entonces deberías de contactar con tu proveedor de hosting y preguntarles que es lo que debes de hacer para poder ejecutar un script de Perl.


Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados