Prestashop – Solucionar [Fatal error: Uncaught –> Smarty: unable to write file] smarty_internal_write_file.php on line 46

by

En este Post os explicamos cuáles son las causas de uno de los errores más frecuentes de Prestashop. Además, ya algunos de vosotros habréis podido experimentar. En concreto, es un error relacionado con la escritura de archivos de caché de Prestashop. Además, cuando se origina lanza el siguiente mensaje:

Fatal error: Uncaught --> Smarty: unable to write file - /tools/smarty/sysplugins/smarty_internal_write_file.php on line 46

Cuando ocurre esta situación, la pantalla del Back-office y del Front-office se queda en blanco. Solamente activando el modo Debug de Prestashop se podrá ver el mensaje. Mientras dure este error será imposible operar en el Back-office y Front-office de la tienda. Por lo tanto, vuestra tienda Prestashop quedaría inoperativa.

¿Cuáles son las causas de este error?

Si hacemos caso al mensaje de error, y abrimos el archivo ubicado en /tools/smarty/sysplugins/smarty_internal_write_file.php. Seguidamente vamos a la línea 46, podemos ver el siguiente código:

que está incluido en la función siguiente:

Para los que sepan lenguaje de programación, pueden ver que se trata de una función. Esta se encarga de escribir un archivo con una serie de datos para la caché. Para los que no entienden de lenguaje de programación, si se fijan en el nombre de la función:

lo podrán deducir con solo leer el nombre de la función que se llama «writeFile».

Este error puede ocurrir por dos motivos:

  1. Problema de permisos en la carpeta cache/smarty/compile/
  2. Falta de espacio de cuota de disco en el servidor.

Caso 1 – Solución

Este problema de permisos ocurre en algunos servidores que no tienen como defecto asignar los permisos 755 a las carpetas y los ficheros. Y por esa razón, para solucionarlo se deberá de aplicar los permisos 755 al directorio cache/smarty/compile/. Para ello, se debe de realizar activando la opción de aplicar a todos los subdirectorios y ficheros internos.

En caso de no poderlo hacer por uno mismo, se deberá de envíar un ticket de soporte al proveedor de hosting. De esta manera, solicitarle que le aplique dichos permisos a la carpeta indicada. En caso de poderlo hacer uno mismo, mediante el FileZilla o el gestor del archivos del panel de hosting, se podrá realizar la operación de asignación de permisos sin mayor problema.

Caso 2 – Solución

Si los permisos asignados a la carpeta de caché son correctos, entonces solo queda pensar que el tamaño de cuota de disco del servidor es insuficiente. Por lo tanto, por ese motivo no es posible realizar la escritura de archivos de caché por no disponer de capacidad de disco suficiente para hacerlo.

Es posible que veáis que en vuestro servidor hosting todavía le quede algo de memoria disponible. Aún así os puede ocurrir que el sistema no consiga escribir los archivos de caché por ser superior el tamaño de los archivos a la de la memoria disponible del disco duro del servidor.

Para solucionarlo hay que ponerse en contacto con el proveedor de hosting contratado. Pedirle una aplicación de tamaño de disco duro.  Ten en cuenta que la capacidad de disco duro idónea para instalar una tienda online bajo la plataforma Prestashop, debe de ser de al menos 5Gb. Son más recomendables los tamaños de 15Gb a 30 Gb, dependiendo del tamaño de la tienda y del contenido de la misma.

Esperamos haberos ayudado en la resolución de este error tan frecuente en Prestashop. Debido a la imposibilidad de poder acceder a la tienda, y que a muchos os ha traído de cabeza buscando la solución.


Comments

  1. Excelente! voy a probar esta solución
    Gracias

  2. Hola

    Los ficheros también deben quedar con 755? o se deben quedar con 644

    Un Saludo

    • Hola,

      lo que se tiene que hacer para evitar problemas en los permisos de los archivos es borrar todo el contenido de la carpeta /compile excepto los archivos index.php y last_flush y dejar que Prestashop genere de nuevo los archivos y le asigne automáticamente sus correspondientes permisos. En todo caso, salvo excepciones, los permisos asignados a los archivos serán 644.

      Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

catorce − 3 =

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies