Script PHP para Borrar la Caché de PrestaShop (Sin Back Office)
Aprende a crear un script PHP (clear_cache.php) seguro y externo para limpiar la caché de PrestaShop. Solución rápida para errores y acceso denegado
💡 Cómo crear un script para borrar la caché de PrestaShop desde tu hosting 🛠️
Limpiar la caché de PrestaShop se hace normalmente desde el Back Office, pero si te encuentras con errores, una pantalla en blanco, problemas con módulos o falta de acceso, un script PHP externo es la mejor solución de emergencia.
¿Qué hace este script?
Este archivo PHP (clear_cache.php) está diseñado para simular la acción de "Borrar caché" del Back Office, pero accesible desde una URL externa.
- 🔐 Protege el acceso usando un token de seguridad.
- 📂 Localiza la carpeta
var/cache. - 🗑️ Elimina de forma recursiva los subdirectorios internos (como
prodydev). - 🛠️ Vuelve a crearlos vacíos con los permisos correctos.
- ✅ Muestra un mensaje de éxito o error.
Script Completo: clear_cache.php
Copia este código y guárdalo como clear_cache.php o descarga este zip
<?php
// clear_cache.php
// ¡ADVERTENCIA! PROTEGER ESTE SCRIPT antes de usarlo en producción
if ($_GET['token'] !== 'TU_TOKEN_SEGURO') {
die('Acceso denegado');
}
$cacheDir = __DIR__ . '/var/cache';
/**
* Función recursiva para eliminar un directorio y todo su contenido.
*/
function rrmdir($dir) {
if (!is_dir($dir)) return;
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object === "." || $object === "..") continue;
$path = $dir . DIRECTORY_SEPARATOR . $object;
if (is_dir($path)) {
rrmdir($path); // Recursión para subdirectorios
} else {
unlink($path); // Eliminar archivos
}
}
rmdir($dir); // Eliminar el directorio vacío
}
if (is_dir($cacheDir)) {
// Vaciar y recrear cada subcarpeta dentro de var/cache
foreach (glob($cacheDir . '/*', GLOB_ONLYDIR) as $subDir) {
rrmdir($subDir); // Borra la carpeta y su contenido
mkdir($subDir, 0755, true); // La vuelve a crear
}
echo "Caché de PrestaShop eliminada correctamente.";
} else {
echo "No se encontró el directorio de caché: $cacheDir";
}
🔍 Explicación del Código
1. Protección mediante Token
if ($_GET['token'] !== 'TU_TOKEN_SEGURO') {
die('Acceso denegado');
}
El script solo se ejecuta si se accede con la clave correcta.
Ejemplo de acceso:
https://tudominio.com/clear_cache.php?token=TU_TOKEN_SEGURO
2. Ruta a la Carpeta de Caché
$cacheDir = __DIR__ . '/var/cache';
__DIR__ apunta al directorio donde está el script. Por defecto, debe estar en la raíz de PrestaShop.
3. Borrado y Recreación
foreach (glob($cacheDir . '/*', GLOB_ONLYDIR) as $subDir) {
rrmdir($subDir);
mkdir($subDir, 0755, true);
}
Vacía todas las carpetas internas de var/cache y las recrea.
⚙️ Instrucciones de Uso e Instalación
- Crear el archivo: Copia el código y guárdalo como
clear_cache.php. - Subir al servidor: Súbelo a la raíz principal de tu tienda PrestaShop.
- Modificar el token: Cambia
TU_TOKEN_SEGUROpor una clave difícil de adivinar. - Ejecutar el script: Visita la URL con tu token para borrar la caché.
⚠️ Precauciones Importantes de Seguridad
- Nunca uses un token simple.
- Elimina o renombra el script cuando ya no sea necesario.
- No lo dejes en directorios accesibles sin protección.