¿Te ha gustado el artículo?
0
¿Te ha gustado el artículo?
0

Error 500: ¿dónde está el problema?

Los códigos de estado HTTP informan a los usuarios si una solicitud fue tramitada con éxito y, de no ser así, sobre un posible error. Sin embargo, estas notificaciones no siempre son lo suficientemente claras, como en el caso especial del “500 Internal Server Error”. Este mensaje indica que se ha producido un error en la conexión con el servidor y que, por lo tanto, no se puede acceder a la página solicitada. Ahora bien, aunque la causa no se especifica inmediatamente, hay diferentes métodos para deducirla. En esta guía te presentamos las fuentes típicas de error y proporcionamos consejos sobre cómo reaccionar si te encuentras con el HTTP Error 500.

¿En qué consiste el Internal Server Error?

Con los códigos de estado, el servidor web indica al navegador de un usuario (cliente) si una solicitud (abrir una web) tuvo éxito o no. Si el navegador recibe el estado 200, quiere decir que todo salió bien. El usuario no ve este mensaje, pero el hecho de que se muestre el contenido solicitado sin ningún problema es suficiente. Por otro lado, están los códigos de los grupos 4XX y 5XX, que se refieren a fallos en el servidor. El Internal Server Error 500 es un código de estado que incluye diversos fallos del servidor, por lo que, a primera vista, no es posible determinar cuál es realmente el problema. La única información que recibe el usuario con él es que el servidor notifica un fallo inesperado.

En caso de que Microsoft Information Service (Microsoft IIS) esté instalado en el servidor, se especifica el código de error. Los números decimales indican con más detalle la causa del problema:

  • 500.0: un módulo o una ISAPI son defectusos.
  • 500.11: actualmente se está cerrando una aplicación en el servidor.
  • 500.12: actualmente se está reiniciando una aplicación en el servidor.
  • 500.13: el servidor web está sobrecargado.
  • 500.15: no se permite una solicitud directa para el archivo (opcional) global.asax.
  • 500.19: los datos de configuración son inválidos.
  • 500.21: no se reconoce el módulo.
  • 500.22: la configuración del módulo HTTP (dentro de una aplicación ASP.NET) no es aplicable en el modo de canalización administrada.
  • 500.23: la configuración de controlador HTTP (dentro de una aplicación ASP.NET) no es aplicable en el modo de canalización administrada.
  • 500.24: no es posible aplicar una configuración para el cambio de identidad (para ASP.NET) en el modo de canalización administrada.
  • 500.50: se ha producido un error al reescribir la notificación RQ_BEGIN_REQUEST.
  • 500.51: se ha producido un error al reescribir la notificación GL_PRE_BEGIN_REQUEST.
  • 500.52: se ha producido un error al reescribir la notificación RQ_SEND_RESPONSE.
  • 500.53: se ha producido un error al reescribir la notificación RQ_RELEASE _REQUEST_STATE.
  • 500.100: se ha producido un error en el motor ASP.

¿Qué desencadena un error 500?

El Internal Server Error puede ocurrir cuando la solicitud está siendo procesada por el servidor web. Este código de estado reúne todos aquellos sucesos no planificados en el servidor que impiden que una página web se muestre correctamente. Normalmente, el código de estado 500 es un error interno del servidor, más específicamente en su configuración. Algunas de las fuentes típicas que lo generan son:

  • Un error en los permisos: los permisos de acceso a los archivos y carpetas principales no se han asignados correctamente.
  • PHP Timeout: el script intenta acceder a un recurso externo y experimenta una espera excesivamente larga (timeout).
  • Código incorrecto en .htaccess: la estructura en un archivo .htaccess puede ser incorrecta.
  • Error en la sintaxis o en el código del script CGI-/Perl: en algunos casos, los scripts son incorrectos y, especialmente, las rutas de acceso pueden no estar alineadas correctamente.
  • PHP Memory Limit: un proceso ha excedido el límite de memoria y no es posible ejecutarlo correctamente.

En el caso de las páginas de WordPress y otros sistemas de gestión de contenidos, una de las causas puede ser la instalación de una extensión defectuosa o incompatible: los complementos y temas (especialmente de páginas web de terceros) pueden afectar a la totalidad de la página web.

Error HTTP 500: cómo solucionarlo (para webmasters)

¿Te ha pasado que tus visitas no pueden ver tus contenidos y reciben notificaciones del tipo 500 o error interno del servidor? Como administrador web, lo más recomendable es ocuparse del problema directamente, pues este fallo no solo podría asustar a tus visitas sino que también podría tener un impacto negativo en el ranking de tu web en Google. No obstante, antes de emprender cualquier acción, deberías comprobar si tu servidor está funcionando. De no ser así, tendrás que contactar rápidamente a tu proveedor de alojamiento web.

Si se trata de un error interno, el primer paso será revisar los archivos log. En los servidores Linux encontrarás el conjunto de mensajes de error en /var/log/httpd/error_log. Para ello es útil volver a cargar la página web, de forma que se reproduzca de nuevo el error 500 para poder observar la creación del archivo log. Así, encontrarás la fuente del error rápidamente. Recuerda considerar aquellos cambios realizados con anterioridad. En muchos casos, los plugins programados incorrectamente o las extensiones incompatibles pueden generar problemas.

El error también aparece si no se han definido los permisos de archivos importantes correctamente. Por lo general, existen tres tipos de permiso:

  • Lectura (r de read)
  • Escritura (w de write)
  • Ejecución (x de execute)

Estos derechos son asignables a tres tipos diferentes de usuarios:

  • Dueño del archivo
  • Grupo de usuarios
  • Todos los demás

Los derechos se otorgan con las abreviaturas r, w y x o con valores numéricos: 4 para lectura, 2 para escritura y 1 para ejecución. Estos se añaden a cada tipo de usuario en las secuencias rwxr-xr-x (rwx para el dueño del archivo, r-x para el grupo de usuarios y r-x para todos los demás) o 755. Esta última configuración (es decir 755) debería ser siempre la predeterminada. En caso de que la asignación de derechos se establezca de manera diferente, puede surgir un error. Sin embargo, esto se puede modificar con el siguiente comando:

chmod 755 Dateiname

Si esto no soluciona el problema, también es posible compartir los derechos para cada grupo con fines de prueba:

chmod 777 Dateiname

Utiliza esta configuración solo para localizar el problema, pues así permites a cualquier usuario reescribir el archivo, algo que representa, lógicamente, un gran riesgo de seguridad.

Si no ha sido el reparto de permisos el responsable del 500 Server Error, comprueba a continuación si los scripts se ejecutan correctamente. Es común que se produzcan errores porque los scripts se han movido, renombrado o eliminado. Adicionalmente, comprueba el archivo .htaccess, porque incluso el más mínimo error de sintaxis puede generar un error interno en el servidor. Otro de los fallos igualmente comunes es un formato incorrecto del archivo .htaccess. Este debe crearse en el formato ASCII o ANSI y no en Unicode. Para ello, escribe el archivo en un editor de texto como Notepad, Notepadd++ o Sublime Text y no en un procesador de texto como Microsoft Word. Para comprobar si el archivo es el responsable del error, cambia su nombre y carga de nuevo la web. El servidor no accederá a .htaccess mientras se carga la web. Si ya no se produce el mensaje de error, puedes reparar el archivo o crear uno nuevo.

Los tiempos de espera o timeout también pueden ser desencadenantes del error. En este caso no se trata de un fallo en el servidor web, sino de una conexión a una fuente externa que se ha visto interrumpida. ¿Has configurado los scripts PHP de tu web para acceder a los recursos de otros servidores? Es posible que el recurso ya no esté disponible o que la comunicación con el servidor se interrumpa por cualquier otra razón. Una manera de excluir esta fuente de error es hacer que la página no dependa de recursos externos. De no ser posible, aumenta el límite de tiempo de tu secuencia de comandos. Además, es útil integrar una gestión de errores eficiente para localizar más fácilmente los errores en el script PHP.

¿Podría la memoria estar sobrecargada? El límite de memoria se utiliza para determinar la cantidad de memoria que puede necesitar un proceso. Si necesitas más RAM de la que dispones, es posible que se presente el HTTP Error 500. Como solución temporal, puedes aumentar el límite. Para ello, añade el siguiente comando a php.ini:

memory_limit = 512M

En este ejemplo, el límite de memoria disponible se fija en 512 MB. Sin embargo, ten en cuenta que tu proveedor de alojamiento web solo garantiza en el pack contratado un límite específico para el script PHP. Si introduces un valor superior, el servidor web lo ignora. Además, aumentar este límite solo es posible de forma temporal: una vez la página vuelve a funcionar correctamente has de buscar el motivo de esta repentina necesidad de aumento de memoria y es muy probable que el error se encuentre en el código de tu web.

En caso de que no consigas solucionar el problema con ninguno de los métodos anteriores, la mejor opción es ponerse entonces en contacto con tu proveedor de alojamiento. Es recomendable comprobar previamente el estado de los servidores. Si se han producido fallos, muchos proveedores anuncian el estado de sus servidores a través de una página de estado o de las redes sociales.

Consejo

1&1 también cuenta con una página de estado en la que se informa a los clientes de los servicios de alojamiento web sobre fallos o problemas actuales.

Si ya has identificado los problemas con el servidor, el siguiente paso será tener algo de paciencia y esperar que los encargados del host solucionen el error. Incluso si no has logrado determinar el fallo, nunca está de más contactar con el equipo de soporte de tu proveedor y no olvides informarles acerca de las medidas que ya has tomado –de esta forma podrán ayudarte más fácilmente.

¿Cómo debe reaccionar un usuario ante el 500 Internal Server Error?

No hay mucho que puedas hacer como usuario si te encuentras con el Internal Server Error 500, pues es el servidor web en el que se encuentra la página de destino el que tiene una configuración defectuosa. Esto significa que no hay ningún error en la configuración de tu ordenador o de tu conexión de red. Por lo tanto, como usuario, la solución más simple es volver a cargar la página en otro momento. También puede ser que el webmaster haya arreglado el error. Este suele ser el caso de todos los grandes proveedores. Por otro lado, es posible que tengas la mala suerte de querer acceder a ciertos contenidos en un momento desfavorable para el servidor web –es probable que recibas el mensaje de error mientras se reinicia el servicio y que, en el fondo, todo esté funcionando como se planeó.

Nota

Si te encuentras con el mensaje de error mientras realizas un pedido o compra online, no debes volver a cargar la página web porque no sabes en qué punto se produjo el error. Es posible que no se haya podido cargar la página de confirmación, pero tu pedido ya ha sido registrado por el sistema. En este caso, actualizar la web podría generar una compra doble.

También es posible que un aumento inesperado en el tráfico sea el responsable de un colapso en la web. Normalmente, este problema se soluciona en cuestión de segundos, a menos que la página web esté siendo sobrecargada permanentemente. Si sigues viendo el mensaje de error después de actualizar la web, lo más recomendable es eliminar la caché de tu navegador. Así, el navegador no cargará la página nuevamente, sino que accederá a su memoria interna. Vuelve a intentarlo una vez borrada la caché.

Si el error 500 sigue apareciendo, no queda más que esperar a que el operador de la web solvente el problema. Sin embargo, con un pequeño truco es posible obtener contenidos de la página web. En caso de que no te sea posible acceder a la última versión de la página (completamente funcional), siempre podrás acceder a la caché de Google. Para ello, ingresa el comando cache:, seguido por el URL apropiado. De esta forma accedes a una versión anterior de la web que posiblemente todavía funcione, aunque has de saber que no estás navegando en la página como tal, sino más bien en una copia de esta que se encuentra en el servidor de Google.

Si necesitas regresar a una instancia mucho más previa, la herramienta Wayback Machine de la librería digital Internet Archive te resultará útil. Allí encontrarás versiones de más de una década de diferentes páginas web.

Si la página web que quieres visitar no es accesible por un periodo prolongado de tiempo, puedes ponerte en contacto con el webmaster. Es probable que este no se haya dado cuenta de que los usuarios no pueden acceder a su proyecto, por lo que podría alegrarse con tu mensaje.

HTTP Protocolos