Aplicaciones Web Desde 2004.

500 Error interno del servidor

…y cómo arreglarlo.

La respuesta corta: esto suele ser un error de permisos en su CGIscript, que es fácil de corregir. Vaya a su cliente FTP, o al administrador de archivos de su sitio web, y resalte o haga clic con el botón derecho en el script CGI. A continuación, elija Propiedades, Permisos o” Chmod ” y establézcalo en ejecutable mundial: eso es 0755, o a+rx, o-rwxr-xr-x. NO utilice 0777 (a+rwx o-rwxrwxrwx). Y su directorio cgi-bin también debería ser 0755, no 0777.

La respuesta larga:al ejecutar un script CGI Perl como FileChucker orUserBase, es posible que vea el mensaje “Error interno del servidor” en su navegador. Por lo general, el mensaje también dirá algo como “compruebe el registro de errores del servidor para obtener más información.”Deberías hacer eso the el mensaje impreso en el registro de errores a menudo te dirá exactamente cuál es el problema. El registro de errores de Apache, por ejemplo, a menudo se encuentra en /var/log/apache /error_log o/var/log/apache2 / error_log (o a veces “error”.registro”).

Si no tiene acceso al registro de errores, lo siguiente más sencillo es hacer una copia de seguridad del script, luego abrir el original y eliminar todos sus contenidos, y agregar solo estas 3 líneas al archivo:

#!/usr/bin/perlprint "Content-type: text/plain\n\n";print "testing...\n";

(Nota:si el servidor es un sistema Windows, reemplace la primera línea de arriba con#!perl o #!c:\path\to\perl.exe.)

Ahora intente acceder a la página en su navegador de nuevo. Si funciona (ves ” pruebas…”como su salida), entonces sabe que su servidor está al menos configurado adecuadamente para ejecutar scripts CGI de Perl. Si no funciona, entonces puede significar que el problema está en la configuración del servidor, en lugar de con su CGIscript. (Por ejemplo, ¿está seguro de que realmente tiene instalado Perl? Prácticamente todos los servidores UNIX / Linux / OS X lo hacen, pero los servidores Windows generalmente necesitan instalarlo manualmente, desde un paquete gratuito como ActivePerl.)

Asumiendo que su servidor está configurado correctamente para ejecutar scripts CGI, su problema puede ser una de las causas comunes del Error Interno del servidor:

Problemas fuera del script:

  1. Permisos de directorio: su directorio cgi-bin debe estar modulado como 0755, no como 0777. Del mismo modo, si su script está en …/ cgi-bin / foo / bar.cgi, el directorio foo no debe tener escritura mundial (0777). Esto se debe a que muchos servidores se negarán a ejecutar scripts CGI dentro de directorios de escritura mundial, como precaución de seguridad.
  2. Permisos de archivo: su script CGI en sí también debe ser 0755 y no 0777,por las mismas razones.
  3. Modos de transferencia: si está utilizando FTP para transferir el script CGI a su servidor, es probable que su cliente FTP esté configurado en modo de transferencia automática; eso es, tratará de averiguar si usar el modo BINARIO o ASCII sin que te encargue. Pero dependiendo de si su script CGI proviene de un sistema WINDOWS o UNIX, y de si va a un sistema Windows o UNIXsystem, es posible que deba configurar manualmente su cliente FTP para que use el modo BINARIO ASCIIor antes de transferir su script CGI. Prueba una y luego la otra.
  4. Finales de línea :la causa del problema del modo de transferencia es en realidad otro problema en sí mismo: diferentes tipos de sistemas operativos (a saber, Windowsvs. UNIX / Linux / todo) usa diferentes códigos de caracteres para representar finales de línea. Si su servidor es un servidor UNIX, pero está editando su script CGI en un equipo Windows con un editor de texto que no usa finales de línea de estilo UNIX, causará problemas. Aplicaciones como GoLive y Dreamweaver a veces se equivocan. Incluso los editores incorporados no pueden estar de acuerdo: WordPad (no Word) parece hacerlo bien, mientras que Notepad lo estropea. Por lo tanto, intente abrir & guardar su script CGI en un editor de texto diferente y subirlo al servidor de nuevo.

Problemas dentro del script:

  1. La línea de shebang: la primera línea de un script CGI debe contener la ruta al binario Perl en el servidor. En la mayoría de los servidores UNIX, esto es solo #!/ usr / bin / perl o a veces #!/usr / local/bin / perl y siempre puede ejecutar el comando “which perl” para averiguarlo con seguridad. En los servidores de ventanas, a veces puedes salirte con la tuya con solo usar #!perl, pero puede que necesites especificar la ruta completa como #!c:\path\to\perl.exe.
  2. Errores de script reales: siempre es posible que haya simplemente un error en el código Perl en sí. Si tienes problemas con un script que compraste en Industrias Codables, esto es poco probable, ya que muchas otras personas han comprado el mismo script y lo están ejecutando correctamente.

Problemas relacionados

  1. Otro problema común con los scripts CGI es el error de final de cabecera de script de prefiguración.

Leave a Reply