Foros del Web » Programación para mayores de 30 ;) » Programación General »

Error 500 al ejecutar CGI (en C)

Estas en el tema de Error 500 al ejecutar CGI (en C) en el foro de Programación General en Foros del Web. Estoy tratando de probar CGI en mi servicio de hosting, estoy usando C con mi primer ejemplo .. el típico "hola mundo": /* Hola Mundo! ...
  #1 (permalink)  
Antiguo 11/11/2004, 06:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Error 500 al ejecutar CGI (en C)

Estoy tratando de probar CGI en mi servicio de hosting, estoy usando C con mi primer ejemplo .. el típico "hola mundo":

/* Hola Mundo!
Versión CGI - 20/2/2001 */

int main() {
printf("Content-Type:text/html\n\n");
printf("<HTML><BODY><H2>Hola Mundo!</H2></BODY></HTML>");

return 0;
}

Compilo dicho código C bajo linux con:
gcc prueba.c -o prueba.cgi

lo hace bien y lo puedo probar en consola:
$ ./prueba.cgi

Me dá el resultado esperado (ese HTML como salida).

Pero, ahora lo subo a mi servicio de hosting por FTP al directorio /cgi-bin/ que es el que tengo destinado para tal fin en modo binario, le doy permisos de ejecución al .cgi: 0755

Pero al llamarlo por el URL me sale un ermoso error 500:
"Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request"

He revisado:
* El "handler" de mi servidor HTTP (Apache) de los .cgi está asociado a cgi-script
* No he tenido oportunidad de probar algun otro ejemplo .cgi ya compilado (en C) para probar.


Un saludo,
  #2 (permalink)  
Antiguo 11/11/2004, 08:06
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Es que generlamente los script CGI se programan en PERL, en los cuales la primera línea del script contiene la ubicación del intérprete de perl...Puede que tu servidor esté configurado para ejecutar archivos PERL y al no encontrar la dirección del intérprete no sabe que hacer con el, así que te tira ese error...

Para probar sube a esa carpeta un archivo hola.cgi como modo ascii y en el coloca:

Código:
#!usr/bin/perl
#esa es la dirección del intérprete generalmente, puede variar sependiendo delservidor,
print "content-type: text/html \n\n";
print "Hola mundo";
exit;
Fíjate si te funciona y pregunta a la empresa de host cual es exactamente la dirección del intérprete de perl (generalmente es esa) y pregúntales si puedes ejecutar C o tiene alguna traba...

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 11/11/2004, 08:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok, monoswim

Probé el ejemplo en Perl y .. no me funcionó tampoco .. así que voy a contactarme con mi proveedor a ver que pasa con el tema.

Gracias.

Un saludo,
  #4 (permalink)  
Antiguo 11/11/2004, 14:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ahora me dí cuenta que faltó un / en:


#!usr/bin/perl

para que apunte a la ruta absoluta de Perl en ese servidor:

#!/usr/bin/perl

Pero igualmente no me funciona .. sigo en contacto con mi proveedor, pero si alguien sabe algo al respecto, cualquier ayuda será bienvenida.

Un saludo,
  #5 (permalink)  
Antiguo 12/11/2004, 05:08
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Error de sintaxis no es porque el hola mundo está ok, lo subiste al cgi-bin, le diste permisos de ejecución 755, colocas en el script la salida content-type: text/html...mmm...Lo subiste en modo ascii ? porque al ser texto lo debes subir así...

Y no se me ocurre nada más, si dirección del intérprete de perl es la correcta debería de ejecutarse.

Te fijaste en el error_log.txt de tu server, los servidores suelen tener un .txt en donde almacenan todos los errores ocurridos, con fecha, hora y el mensaje de error que les tira el intérprete. ese archivo suele estar en el directorio raíz del hosting...

Bueno espero que te sirva y suerte con eso.

Saludos
__________________
Esteban Quintana
  #6 (permalink)  
Antiguo 12/11/2004, 06:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si, revisé los log's de errores ..

Con eso tengo un problema .. no se por qué pero no se "refresca" bien los errores producidos y .. al hacer pruebas ya no sé en que estado estoy .. El caso es que jugando con los permisos me llegó a dar un error de:

Cita:
error: file is writable by others: (/home/..../public_html/cgi-bin/prueba.pl)
Pero ahora estoy seguro que lo dejé en 0755 los permisos. La dirección del interpreter de Perl es correcta (lo ví en mi cPanel .. salvo que eso esté erroneo .. por lo cual ya he preguntado al soporte de mi servicio de hosting para que me aclaren todo eso). Subí el archivo en ASCII (con cuteFTP y asegurandome que donde dice "extensiones Ascii" estaba mi PL (.pl))

Gracias nuevamente.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:20.