Diagnosticar y corregir un error 500 en un VPS con ISPConfig

Procédure

¿Qué es una página en blanco o un error 500?

El error 500 es un código de estado de página que significa Error Interno del Servidor. Significa que se ha producido un error en el servidor web. Puede provenir del servidor web Apache2, del intérprete PHP, que pasó el error al servidor web, o de la base de datos MySQL, que pasó el error a PHP y a su vez lo pasó al servidor web. Se ve así:

Diagnosticar y corregir un error 500 en un VPS con ISPConfig

En cuanto a algunos otros navegadores, es posible que sólo vea una página en blanco sin contenido:

Diagnosticar y corregir un error 500 en un VPS con ISPConfig

Para los sitios Prestashop, verá una página de error generada por Prestashop :

Diagnosticar y corregir un error 500 en un VPS con ISPConfig

Para diagnosticar el problema, será más práctico para mostrar los errores directamente en su sitio web (incluso si son visibles en el archivo error.log en la carpeta de registro accesible a través de su cuenta FTP.

Visualización de errores PHP

Para mostrar errores PHP, necesitará modificar el archivo php.ini para el sitio web en cuestión. En ISPConfig, haga clic en Sitios y seleccione el sitio web en cuestión:

Diagnosticar y corregir un error 500 en un VPS con ISPConfig

Luego haga clic en la pestaña "Opciones" y añada la siguiente línea en el campo "Configuración php.ini personalizada":

display_errors = On

Diagnosticar y corregir un error 500 en un VPS con ISPConfig

También es aconsejable añadir la siguiente línea para asegurarse de que se informa de los errores de forma que se muestren en pantalla (en caso de que el script lo desactive por defecto)

error_reporting = E_ALL

Habilite el modo de depuración en su sitio web

Algunos CMS y frameworks como WordPress, Prestashop, Symfony, Laravel, etc. pueden ignorar el hecho de que display_errors esté configurado como On en PHP, ya que tienen sus propios sistemas de gestión de errores.

Habilitar el modo de depuración en WordPress

Para habilitar el modo de depuración en un sitio basado en WordPress, necesitará modificar el archivo wp-config. php estableciendo el valor de WP_DEBUG a true y WP_DEBUG_DISPLAY a true también.

Si WP_DEBUG_DISPLAY no está en wp-config.php, tendrá que añadirlo después de WP_DEBUG:


define( 'WP_DEBUG', true ); define( 'WP_DEBUG_DISPLAY', true);

Activar el modo de depuración en Prestashop

Para activar el modo de depuración en Prestashop, tendrá que modificar el archivo config/defines.inc.php. En este archivo, establezca _PS_MODE_DEV_ a true.

define('_PS_MODE_DEV_', true);

Activar el modo de depuración en Joomla

Para activar el modo de depuración en Joomla, tendrás que modificar el archivo configuration.php. En este archivo, establece $debug a 1 y $error_reporting al máximo.


public $debug = '1'; public $error_reporting = 'máximo';

Habilitar el modo de depuración en Laravel

Para habilitar el modo de depuración en Laravel, es necesario modificar el archivo .env estableciendo APP_DEBUG a true:

APP_DEBUG=true

A continuación, debe eliminar la caché del archivo de configuración. En tu consola, ejecuta el siguiente comando:

php artisan config:clear

Comprender los errores de PHP

El segundo paso más importante es entender los errores y encontrar una solución.

Parse error - error de sintaxis

Los errores "parse error" y "syntax error" están causados por una mala escritura del código PHP: falta de punto y coma al final, paréntesis que no se cierran, comillas invertidas, etc. Deberá comprobar el script de su sitio web.

Ciertas sintaxis también pueden causar problemas sólo en ciertas versiones de PHP, porque la sintaxis PHP evoluciona entre varias versiones. Por ejemplo, el uso de corchetes para declarar un array funciona en PHP 7.2, mientras que no es el caso en PHP 7.4.

Por lo tanto, convendría comprobar yajustar la versión de PHP en función de las particularidades de su sitio web.

Error fatal: llamada a una función no definida

Cuando se produce este error, la función a la que PHP intenta llamar no existe. Este problema se produce cuando faltan archivos o están incompletos en su sitio web.

Error fatal: Uncaught Error: Call to undefined function mysql_connect()

Este mensaje de error indica que la función mysql_connect () no existe. Esta función ya no existe en PHP 7.0 y posteriores. Necesitará usar una versión PHP 5. x para que su sitio web funcione.

Error fatal: no se puede volver a declarar

Cuando se produce este error, el mismo nombre de función ha sido declarado varias veces. Este problema se produce sobre todo cuando plugins, temas, módulos, etc. utilizan el mismo nombre de función.

Error fatal: tamaño de memoria permitido agotado

Significa que se ha superado la memoria RAM máxima autorizada. Este problema se produce cuando se supera el memory_limit especificado en su sitio web.

Los valores recomendados preinstalados en su paquete VPS son los siguientes:

  • VPS S: memory_limit=1024M (1 GB)
  • VPS M: memory_limit=2048M (2 GB)
  • VPS L: límite_memoria=4096M (4 GB)
  • VPS XL: límite_memoria=6144M (6 GB)
  • VPS PRO S: límite_memoria=7168M (7 GB)
  • VPS PRO M: límite_memoria=8192M (8 GB)
  • VPS PRO L: límite_memoria=9216M (9 GB)
  • VPS PRO XL: límite_memoria=12288M (12 GB)

Sin embargo, si quieres personalizar el valor de memory_limit, puedes hacerlo desde ISPConfig.

En la pestaña "Opciones " de su sitio web ISPConfig, añada la línea memory_limit a las directivas PHP.INI:

Diagnosticar y corregir un error 500 en un VPS con ISPConfig

Más información sobre este tema: ¿Cómo puedo modificar el archivo php.ini en mi servidor VPS a través de ISPConfig?

Error fatal: Tiempo máximo de ejecución excedido

Este mensaje de error está relacionado con el hecho de que su script PHP está tardando más en producir un resultado de lo que sus parámetros php .in i permiten.

Para superar este problema, puede aumentar el tiempo máximo de ejecución. Todavía en la pestaña 'Opciones' de su sitio web ISPConfig, añada la siguiente línea a las directivas PHP.INI:

max_execution_time = 1800

Aquí hemos puesto 1800 segundos, o 30 minutos.

Importante: Si el tiempo de ejecución de PHP es demasiado largo, es posible que Apache2 no pueda esperar hasta el final. Como resultado, Apache2 enviará un error 503 a tu visitante (un error 522 o 524 si estás usando CloudFlare). Por lo tanto, es importante mantener este valor lo más bajo posible. Le aconsejamos que lo fije en 30 segundos(max_execution_time = 30), a menos que tenga previsto realizar operaciones masivas de importación o exportación en sus sitios.

SQLSTATE[28000] [1045] Acceso denegado para el usuario

Esto indica que el usuario o contraseña de MySQL que está utilizando es incorrecto.

Diagnosticar y corregir un error 500 en un VPS con ISPConfig
Ejemplo de página de error "Acceso denegado" en Prestashop

Si está utilizando WordPress, el mensaje de error puede ser diferente:

Error al establecer una conexión con la base de datos

Para comprobar si una combinación de usuario y contraseña de MySQL es funcional, le sugiero que vaya a phpMyAdmin y la utilice.

Diagnosticar y corregir un error 500 en un VPS con ISPConfig

Si phpMyAdmin también muestra un error como este, entonces tu usuario o contraseña de MySQL es incorrecta. Puede entonces restablecerla en ISPConfig.

Enlace a la base de datos no puede ser establecido:SQLSTATE[HY000] [2002] No existe tal archivo o directorio

Diagnosticar y corregir un error 500 en un VPS con ISPConfig

Este mensaje de error está vinculado al hecho de que su sitio web está tratando de conectarse a su servidor MySQL utilizando un socket Unix en lugar de una conexión TCP.

Sin embargo, el socket Unix que está intentando utilizar no es accesible a su nivel (debido a la restricción openbase_dir, por ejemplo).

Para resolver este problema, debe forzar a su sitio web a utilizar la conexión TCP sustituyendo "localhost " por "127.0.0.1 " en el parámetro del servidor MySQL de su sitio web.

Para Prestashop 1.6, tendrá que editar el archivo config/settings.inc.php:

Diagnosticar y corregir un error 500 en un VPS con ISPConfig

Para Prestashop 1.7, deberá editar el archivo app/config/parameters. php:

[...] 'database_host' => '127.0.0.1', [...]

Para un sitio WordPress, deberá editar el archivo wp-config. php:

[...] define('DB_HOST', '127.0.0.1'); [...]

Para un sitio Joomla, tendrá que editar el archivo configuration. php:

[...] public $host = '127.0.0.1'; [...]

Procedimiento en vídeo para WordPress


Valora este artículo :

Este artículo le ha sido útil ?

Article utile

Article non utileNo

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Artículos similares

2mn lectura

¿Cómo puedo crear una cuenta FTP en ISPConfig?

0mn lectura

Conexión SFTP

1mn lectura

¿Como activo SSL en mi sitio con ISPConfig 3?

0mn lectura

¿Cómo cambio la contraseña FTP desde IspConfig?


Formule una pregunta al equipo de LWS y a su comunidad