El error «500 Internal Server Error» o «Internal Server Error» es común en todas las instalaciones de PrestaShop. Puede abarcar desde limites de memoria y problemas de persmisos de archivos hasta problemas de caché.Internal Server Error 500

¿Qué es HTTP 500 Internal Server Error?

«500» es un código de error universal utilizado por todos los servidores web para decir: «Ocurrió algún error. ¡No tengo ni idea qué!». Lo cual, no es muy útil.

Pero los registros de errores HTTP pueden (y con frecuencia lo harán) mostrar lo que ha ido mal.

Cómo solucionar el error 500

Cada servidor web tiene un registro de errores.

Para los servidores Apache, generalmente se encuentra en /var/log/apache/error.log . Si editas este archivo, te mostrará algo como:

[Wed Apr 18 12:59:12.862338 2018] [php7:error] [pid 3538] [client XX.XX.XX.XX:31504] PHP Fatal error: Out of memory (allocated 2097152) (tried to allocate 59462712 bytes) in /home/myuser/public_html/classes/Configuration.php on line 206

Para un programador experto será suficiente. Pero para el resto de los mortales esto no dice mucho. Veamos otra opción:

En PrestaSho también puedes obtener información adicional activando los informes de errores en el archivo /config/defines.inc.php. Edita este archivo y edita:

define('_PS_MODE_DEV_', false); por

define('_PS_MODE_DEV_', true);

Luego vuelve a abrir la página que te dio el error y verás algo como esto:

[PrestaShopDatabaseException]
Db->executeS() must be used only with select, show, explain or describe queries at line 471 in file classes/db/Db.php
465.
466. // This method must be used only with queries which display results
467. if (!preg_match('#^\s*\(?\s*(select|show|explain|describe|desc)\s#i', $sql))

No te asustes, todo tiene solución.

Solo dime como arreglar esto

Como la mayoría de los propietarios de sitios web, querrás saber cuáles son las razones comunes de este error para poder probar algunas soluciones.

Aquí tenemos las 7 razones principalespor las que puedes obtener este error y lo que puedes hacer para solucionarlo.

1. Limite de memoria de PHP bajo

La razón más común que hemos visto para el error 500 es el límite de memoria bajo para PHP.

Muchos hosts web establecen la asignación de memoria predeterminada para PHP en 32MB, 64MB o 128MB.

Sin embargo, Prestashop requiere al menos 128MB para funcionar y agregar algunos más para los complementos si los necesita.

Por lo tanto, una asignación de memoria sensible es «256 MB». Si tienes un VPS, configúralo  en «512MB».

Hay muchas maneras de aumentar el tamaño de la memoria PHP.

Para aumentar la memoria algunos hosts proporcionan interfaz de administración web. Algunos permiten el acceso a la línea de comandos.

Aquí hay una forma:

  • Inicia sesión en su cuenta de FTP.
  • Descarga el archivo .htaccess.
  • Agrega la línea php_value memory_limit 512M en el archivo y guarda.
  • Vuelve a subir el archivo.

¿No sabes como hacerlo?

Nuestros expertos pueden ayudarte.

2. Permisos incorrectos de archivos y carpetas

Algunos servidores tienen habilitado SuPHP o Fast-CGI que pueden ser especialmente sensibles a los permisos de archivos y carpetas.

Los permitos correctos para los archivos son 644 y las carpetas son 755

Si ves en los registros del servidr o en el informe de errores de PrestaShop que los permisos de archivos pueden ser el problema, intenta restablecer los permisos con los comandos:

find /home/USERNAME/public_html -type d -exec chmod 755 {} \;
find /home/USERNAME/public_html -type f -exec chmod 644 {} \;

Reemplaza /home/USERNAME/public_html con la ruta a su directorio web.

Advertencia : realiza una copia de seguridad de su sitio antes de ejecutar cualquier comando.

¿No sabes como restablecer los permisos de archivos y carpetas?

Nuestros expertos pueden ayudarte.

3. Error de codificación en un módulo o tema recientemente instalado/actualizado

Los complementos de PrestaShop (temas y módulos) ayudan a configurar una tienda para que se adapte a las necesidades de cada caso. Pero el inconveniente es que algunos de estos temas y módulos pueden no estar bien programados.

Muchas veces hemos visto algunos módulos que utilizan funciones obsoletas o códigos incorrectos, lo que hace que PrestaShop muestre la pantalla blanca.

Por lo tanto, si se mostró el error 500 después de instalar o actualizar un nuevo complemento, intenta eliminar esa carpeta desde el servidor. Debería estar ubicado en la carpeta /themes/ o /modules/   en el public_html de tu PrestaShop.

4. Faltan módulos de PHP

Un problema común que hemos visto con los sitios de PrestaShop en los VPS es que carecen de todos los módulos PHP necesarios.

Para que PrestaShop funcione necesita:

  • Mcrypt
  • OpenSSL
  • Cremallera
  • Rizo
  • GD
  • DOP

Para verificar si estos módulos están habilitados para tu sitio web, copia el siguiente código en un archivo llamado phpinfo.php y súbelo en su sitio vía FTP. Luego abrelo desde el navegador y verifica estas extensiones.
<?
phpinfo();
?>

Si falta alguno de esos módulos, verifique el php.ini su servidor para ver si está habilitado. Si no, tendrás que instalarlos.

Nota: Recuerde que debe eliminar el archivo phpinfo.php una vez que haya terminado. Los hackers podrían usar eso para atacar vulnerabilidades específicas.

5. Límite de conexiones a la base de datos

Algunos usuarios han reportado el error: » PrestaShop Error fatal: no hay soporte para utf-8. Por favor revise la configuración de su servidor «.

Esto puede parecer que la compatibilidad con UTF-8 no está habilitada en el servidor.

Pero en realidad, es solo que Prestashop no puede ejecutar una consulta de base de datos.

Algunos servidores tienen límites de consulta de base de datos (por ejemplo, 10.000 consultas por hora). Cualquier consulta por encima de ese límite no se enviará a la base de datos MySQL y mostrará el error UTF-8.

Por supuesto, también es posible que la codificación UTF-8 en su base de datos pueda cambiar por algún motivo.

Si tienes un VPS, puedes arreglarlo cambiando la variable max_questionsen el archivo de configuración de MySQL a 0 (significa ilimitado).

6. Caché sobsoleto, .htacces incorrecto y otros

Las razones por las que pueden salir un error 500 son infinitas. En este punto trataremos de recopilar algunas de ellas:

  • Errores de .htaccess: los errores de sintaxis en los archivos .htaccess, especialmente los que se usan para pasar las variables de PHP pueden causar errores de compilación.
  • Configuración de seguridad : algunas configuraciones de seguridad, como los límites de seguridad de mod_modalidad, pueden hacer que la ejecución falle. Tendrás que averiguarlo mirando los registros del servidor web.
  • Muchos más : Básicamente, cualquier cosa que bloquee la ejecución correcta de los archivos de Prestashop puede causar este error. Si ninguno de estos parece encajar con su problema, deberás habilitar el Informe de errores.

Ninguna de estas soluciones funcionó. ¿Ahora que?

Hay buenas noticias y malas noticias.

La mala noticia es que realmente tendrás que recorrer todos los registros de errores hasta dar con la solución. 

La buena noticia es que realmente no tienes que hacerlo.

Aquí en Pixefora, nuestros expertos en Prestashop realizan este tipo de solución de problemas durante todo el día.

Nos llevará solo unos minutos recorrer los registros y concentrarnos en la solución.

 

¿Tienes problemas con tu PrestaShop?

Nuestros expertos pueden ayudarte.