Índice
- 1 ¿Qué significa el error «Falta un directorio temporal» en WordPress?
- 2 5 soluciones comprobadas para el error «falta un directorio temporal»
- 2.1 Solución 1: Definir un directorio temporal en wp-config.php
- 2.2 Solución 2: Configurar upload_tmp_dir en php.ini
- 2.3 Solución 3: Verificar permisos y propiedad del directorio /tmp
- 2.4 Solución 4: Revisar open_basedir y otras restricciones de PHP
- 2.5 Solución 5: Crear un directorio temporal personalizado con un plugin
- 2.6 Preguntas frecuentes
- 3 Conclusión
¿Qué significa el error «Falta un directorio temporal» en WordPress?
Este mensaje aparece generalmente cuando intentas subir una imagen, instalar un plugin o actualizar el núcleo de WordPress. El sistema necesita un directorio temporal para procesar los archivos antes de moverlos a su ubicación definitiva. Si PHP no encuentra una carpeta temporal configurada o si la existente no tiene permisos adecuados, WordPress muestra este error.
El problema puede deberse a una mala configuración del servidor, a la falta de la variable upload_tmp_dir en PHP, o simplemente a que la carpeta /tmp del sistema no es accesible para el usuario del servidor web.
Causas más comunes
- Variable
upload_tmp_dirno definida en el archivo php.ini o en la configuración del hosting. - Permisos incorrectos en el directorio temporal del sistema (por ejemplo, /tmp con permisos 777 o 755 pero propiedad incorrecta).
- Directorio temporal inexistente o eliminado por políticas de seguridad del hosting.
- Espacio en disco insuficiente en la partición donde se ubica el directorio temporal.
- Restricciones de open_basedir que impiden a PHP acceder a la carpeta temporal del sistema.
5 soluciones comprobadas para el error «falta un directorio temporal»
Antes de empezar, haz una copia de seguridad completa de tu sitio y base de datos. Las siguientes soluciones están ordenadas de la más simple a la más técnica.
Solución 1: Definir un directorio temporal en wp-config.php
Esta es la solución más rápida y efectiva. Abre el archivo wp-config.php (ubicado en la raíz de WordPress) y añade la siguiente línea justo antes de la línea que dice «That’s all, stop editing! Happy blogging.»:
define('WP_TEMP_DIR', ABSPATH . 'wp-content/tmp/');Luego crea la carpeta wp-content/tmp/ (si no existe) y asígnale permisos 755 (o 775 si tu servidor usa grupo). Sube un archivo de prueba para verificar que el error ha desaparecido.
Tip: Si tu servidor no permite escritura en wp-content, puedes usar una ruta fuera del directorio público, por ejemplo: define('WP_TEMP_DIR', '/home/usuario/tmp/'); (ajusta la ruta a tu entorno).
Solución 2: Configurar upload_tmp_dir en php.ini
Si tienes acceso al archivo php.ini (a través de cPanel, Plesk o SSH), busca la directiva upload_tmp_dir y asígnale un valor válido:
upload_tmp_dir = /tmpSi tu hosting usa PHP-FPM, también puedes añadirlo en un archivo .user.ini en la raíz de WordPress:
upload_tmp_dir = /home/usuario/public_html/wp-content/tmpReinicia el servicio web (Apache/Nginx) o espera unos minutos para que los cambios surtan efecto.
Solución 3: Verificar permisos y propiedad del directorio /tmp
Conéctate por SSH o usa el administrador de archivos de tu hosting. Comprueba que el directorio /tmp exista y tenga permisos 1777 (el bit sticky permite que cada usuario solo borre sus propios archivos). Ejecuta:
ls -ld /tmpSi ves algo como drwxrwxrwt, está bien. Si no, puedes intentar cambiarlo (si tienes privilegios de root):
sudo chmod 1777 /tmpAdemás, asegúrate de que el usuario del servidor web (www-data, nobody, etc.) tenga acceso de lectura y escritura. En muchos entornos compartidos esto ya está configurado, pero a veces el directorio temporal se ha movido o su ruta ha cambiado.
Solución 4: Revisar open_basedir y otras restricciones de PHP
Algunos hostings restringen los directorios a los que PHP puede acceder mediante open_basedir. Si tu directorio temporal del sistema está fuera de esa lista, PHP no podrá usarlo. Crea un archivo info.php con el siguiente contenido y accede a él desde el navegador:
<?php phpinfo(); ?>Busca la línea open_basedir. Si ves una ruta como /home/usuario:/tmp, entonces /tmp está permitido. Si no aparece /tmp, tendrás que añadirlo a través del panel de control o contactar al soporte del hosting. Una alternativa es usar la solución 1 (definir WP_TEMP_DIR dentro de un directorio permitido).
Solución 5: Crear un directorio temporal personalizado con un plugin
Si no te sientes cómodo editando archivos de configuración, puedes usar un plugin como WP Temp Directory o Add From Server, aunque la mayoría de estos plugins simplemente definen la constante WP_TEMP_DIR internamente. Te recomiendo hacerlo manualmente para tener más control. Si prefieres la vía del plugin, instala uno desde el repositorio oficial, actívalo y configura la ruta en sus ajustes.
Preguntas frecuentes
¿El error puede aparecer de repente sin haber cambiado nada?
Sí, a menudo ocurre después de una actualización del servidor, un cambio en la configuración de PHP o cuando el hosting limpia periódicamente el directorio /tmp.
¿Es seguro definir WP_TEMP_DIR en wp-config.php?
Sí, es una práctica recomendada y no afecta el rendimiento. Solo asegúrate de que la carpeta tenga los permisos correctos y esté protegida contra acceso directo (puedes añadir un archivo index.html vacío dentro).
¿Qué hago si ninguna solución funciona?
Si tras aplicar todas las soluciones el error persiste, es posible que tu hosting tenga restricciones muy estrictas. En ese caso, en RedServicio podemos revisar tu servidor y ajustar la configuración de PHP o del entorno para resolverlo de forma definitiva.
Conclusión
El error «Falta un directorio temporal» en WordPress es molesto pero tiene solución. La mayoría de los casos se resuelven definiendo la constante WP_TEMP_DIR en el archivo wp-config.php y creando la carpeta correspondiente. Si eso no funciona, revisa la configuración de PHP, los permisos del directorio /tmp y las restricciones de open_basedir. Siempre es recomendable mantener una copia de seguridad antes de hacer cambios en archivos del sistema.
Si después de seguir todos los pasos el problema continúa, no dudes en contactar con profesionales. En RedServicio (redservicio.net) ofrecemos soporte técnico especializado para WordPress y administración de servidores. Podemos diagnosticar tu caso concreto, revisar logs del servidor y aplicar la solución adecuada para que tu sitio vuelva a funcionar sin errores.

