Todos hemos sufrido alguna vez el temible error 500 en nuestra web, ya sea mientras trabajabamos en el sitio o porque un cliente nos lo reporto. Pero descuida este error no es tan difícil de solucionar. La mayoría de las veces es solo un simple archivo .htaccess mal configurado, permisos incorrectos de nuestra carpeta public o algún error de php, este último puede que sea algo complejo en algunas ocasiones.
La particularidad de este error es que deja tu sitio offline lo que implica pérdida de visitas y ventas, además de que muchos clientes al ver un error de este tipo en tu web pueden interpretarlo como un sitio no seguro y no volver a comprar en tu e-commerce.
¿Qué es el error 500 exactamente?
Es un error interno del servidor «Internal Server Error» que se produce al no poder ejecutar una solicitud correctamente, estamos hablando del tipo de solicitud que se espera sea correcta siempre y no se realizan controles desde el código mismo.
El mensaje de error puede variar en texto y diseño dado que los mensajes de error pueden ser adaptados por el usuario. De todas maneras estos mensajes siempre dirán Error 500, Internal Server Error, HTTP 500 o similar.
Causas del error 500 en Tiendas PrestaShop
Como mencionamos anteriormente este error puede ser causado por varias cosas
- Tiempo de espera, los servidores web limitan el tiempo de ejecución de las peticiones para que un mismo proceso no quede colgado por un tiempo ilimitado consumiendo recursos del servidor, este tiempo normalmente es de unos 20-30 seg.
Este error surge comúnmente al trabajar con grandes volúmenes de datos o archivos muy pesados. - Error de PHP, este error puede darse cuando tenemos un versión de PHP no compatible con nuestra versión de Prestashop. En ese caso lo que debemos hacer es buscar que versiones de PHP son compatibles con nuestra versión de Prestashop y cambiarla desde el cPanel del sitio en Administrador MultiPHP o en PHP Selector dependiendo cual estemos utilizando.
- .htaccess mal configurado, este archivo si no ha sido correctamente configurado puede causar error 500, muchas veces es debido a URLs amigables que termina causando fallos internos en el servidor.
- Permisos incorrectos, otro causante de este error es tener nuestra carpeta public_html con los permisos incorrectos, este caso en particular no es muy común que suceda ya que esta carpeta en particular siempre se crea con los permisos correctos. Igualmente no descartamos ninguna causa y verifiquemos desde nuestro administrador de archivos de cPanel o a través del servidor FTP que nuestra carpeta tenga permisos 750.
¿Cómo arreglo el error 500 en PrestaShop?
Como pudimos ver varias cosas pueden causar un error 500 por lo que primero necesitamos saber cual de ellas lo está causando. Para ello el primer paso es habilitar display_errors desde Prestashop y desde PHP
Para las versiones de prestashop desde la 1.5.3 hasta la 1.7 activamos display_errors de la siguiente manera
- Buscamos el archivo defines.inc.php en al carpeta config -> config/defines.inc.php
- Buscamos donde diga
(‘_PS_MODE_DEV_’, false);
y lo cambiamos por
(‘_PS_MODE_DEV_’, true);
simplemente debemos cambiar el false por true para que nos muestre los errores.
Para las versiones de prestashop más viejas
- Buscamos el archivo config.inc.php en al carpeta config ->config/config.inc.php
- Buscamos donde diga
@ini_set(‘display_errors’, ‘off’);
y lo cambiamos por
@ini_set(‘display_errors’, ‘on’);
simplemente debemos cambiar el off por on para que nos muestre los errores.
Para que nos muestre los errores desde php debemos ir a cPanel y desde Editor INI de mutliPHP seleccionamos nuestro sitio y habilitamos display_errors, luego guardamos y listo. Si estamos utilizando el selector debemos ir a PHP Selector y seleccionar switch to PHP options, ahí buscamos display_errors y lo habilitamos.
Ahora que nos muestra un error más concreto y no tan genérico como lo es el error 500 podremos trabajar en solucionarlo.
Si nuestro error hace referencia a que no encuentra una clase Class not found o Syntax error es probable que la versión de php que estamos utilizando no sea compatible, prueba cambiando la versión de php por una mas reciente como la 7.0. Si el error persiste puede que esté siendo causado por un plugin, en ese caso debemos investigar los requerimientos del plugin.
Error de Time out, este se debe a que un proceso necesita más tiempo de ejecución del que está permitido por PHP. Al no poder terminar de ejecutarse la tarea por haber alcanzado el límite de tiempo permitido nos da este error. Lo que debemos hacer en este caso es ir a cPanel a la opción Editor INI de MultiPHP, seleccionamos nuestro sitio y buscamos la variable max_execution_time, aquí cambiamos su valor por el doble de lo que tenga asignado y volvemos a intentar, si nos sigue dando el mismo error volvemos a aumentar el valor un poco más hasta que nos deje de dar error de time out.
Si utilizamos PHP Selector debemos ir a Switch to PHP options y buscamos la variable max_execution_time, igual que en el caso anterior debemos aumentar su valor y volver a intentar hasta que el error desaparezca.
Si nuestro error dice algo como Access denied, Forbidden o algo que lo podamos relacionar con permisos es porque los permisos del sitio son incorrectos. Para que el sitio funcione de forma correcta y segura los permisos deben ser 750 para la carpeta public_html, 644 para los archivos y 755 para las carpetas dentro de public_html.
Para revisar y cambiar nuestros permiso debemos acceder a cPanel he ir al Administrador de Archivos, una vez ahí veremos los archivos y carpetas de nuestros sitio junto con el tamaño de cada uno, la fecha de la última modificación, el tipo y los permisos. Si vemos algún permiso incorrecto hacemos click derecho sobre él y seleccionamos la opción Change Permissions o Cambiar Permisos, colocamos los permisos correctos y guardamos. Si hicimos todo bien ya no nos debería dar un error como este.
Por último el error 500 puede deberse a un archivo .htaccess mal configurado, para ello debemos ir a cPanel al administrador de archivos y fijarnos en configuración que la opción Show Hidden Files (dotfiles) o Mostrar archivos ocultos este habilitada. Luego buscamos nuestro archivo .htaccess en la carpeta donde esté instalado Prestashop dentro de public_html y lo eliminamos. No te preocupes por este archivo, Prestashop lo volverá a generar con la configuración correspondiente.
¿Qué debo hacer si nada de lo anterior funciona?
Si has intentado todos los pasos y aun asi no das con la solución puedes abrir un ticket a Soporte Técnico y con gusto te ayudaremos. Nuestra respuesta es inmediata y haremos todo lo posible por traer tu sitio online en el menor tiempo.
Y aún no eres cliente de Infranetworking, visita nuestra web elige los planes de Hosting PrestaShop que más se adecúen a tus necesidads.