1. Introducción
A continuación explicamos cómo configurar una carpeta temporal independiente para un alojamiento web gestionado con Panel Core-Admin.
2. Por qué puede interesar
Crear una carpeta de ficheros temporales afectará a las siguientes configuraciones:
- upload_tmp_dir
- session.save_path
- sys_temp_dir
Estas configuraciones son generales para todos los alojamientos web ejecutando en la máquina y apuntan a la carpeta: /tmp
Esta carpeta es compartida y potencialmente puede permitir a un atacante listar ficheros, visualizar los nombres y momentos de creación.
Crear una carpeta temporal independiente puede ayudar:
- A proporcionar mayor seguridad (al separar y ocultar estos ficheros a un atacante)
- Separación de usos y cuotas totalmente diferenciadas.
- Resolver problemas con software que sufra de limitaciones cross-file-system, como el caso del API php rename.
3. Cómo configurarlo
- Como adminsitrador de máquina, navegar a las opciones del sitio y localizar la configuración y ponerla:
- enable_hosting_temp_folder = 1
-
En concreto, siguiendo las siguientes indicaciones:
-
Al activar la opción enable_hosting_temp_folder = 1 (pinchar en editar opción para aplicar), esto hará que el panel cree una carpeta temporal independiente, con los permisos correctos y la ajustará en las variables sesion.save_path, sys_temp_dir y upload_tmp_dir.
4. Sobre las limitaciones del API PHP rename():
Cualquier software PHP que use el API rename() de php para mover directorios tendrá la limitación de no poder completar la operación para situaciones donde el alojamiento use carpetas temporales separadas en sistemas de ficheros independientes.
Este API tiene limitaciones documentadas que fallarán de maneras mal indicadas y en algunos casos sin reportar error en los logs aunque se activen las opciones depuración:
https://www.php.net/manual/en/function.rename.php#113943
Important note - rename() does NOT work for directories across filesystems or devices . Only fileshttps://github.com/symfony/symfony/issues/12533
Because it only tries the PHP rename function, the Filesystem component inherits its limitation about being restricted to a single drive.
Una manera de corregirlo es evitar rename() utilizar alternativas basadas en move_uploaded_file, copy, rsync y similares. Si no es posible corregir el software, se puede usar la opción descrita en este procedimiento para crear una carpeta temporal dentro del mismo sistema de ficheros donde se aloja el hosting afectado.
5. Aplicaciones conocidas afectadas por rename
-
07/11/2025 – Plugin filester para Wordpress. https://wordpress.org/plugins/filester/
Usa rename() para descomprimir ficheros .zip. Si el fichero .zip tiene carpetas dentro fallará si la carpeta temporal está separada del sistema de ficheros del alojamiento.
