🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo solucionar el error 'Warning: session_start()' en WordPress (cPanel)

Actualizado el 21 de mayo de 2026

¿Acabas de ver un mensaje de error amarillo o blanco en tu WordPress que dice algo como Warning: session_start() [function.session-start]: open(/tmp/...) failed: No such file or directory? No te preocupes, no has roto nada. Este es uno de los avisos más comunes en WordPress, especialmente cuando se migra un sitio o se instala un plugin de caché, carrito de compras o membresías.

En esta guía extensa y paso a paso, te voy a explicar cómo solucionar el error 'session_start' en WordPress alojado en cPanel. Vamos a ir desde lo más básico hasta soluciones más técnicas, pero siempre con un lenguaje claro y sencillo. Al final, tu web funcionará sin esos molestos warnings y, sobre todo, sin problemas de funcionamiento.

¿Qué significa exactamente el warning session_start?

Antes de lanzarnos a arreglar nada, es vital entender qué está pasando. Las sesiones en PHP son un mecanismo para recordar información entre páginas (por ejemplo, si un usuario está logueado o qué productos tiene en el carrito). Cuando un plugin o el propio tema llama a la función session_start(), PHP intenta crear o abrir un archivo de sesión en una carpeta temporal del servidor.

El error "Warning: session_start(): open(/tmp/...) failed: No such file or directory" nos dice que PHP está intentando guardar esa información en la carpeta /tmp, pero o bien esa carpeta no existe, o bien no tiene permisos de escritura, o está llena. En otros casos, el aviso puede ser "Cannot send session cache limiter - headers already sent", que es un problema diferente pero relacionado con el orden de ejecución de los archivos.

La buena noticia es que este error no suele romper la web por completo, pero puede impedir el acceso al panel de administración, ralentizar la carga o hacer que funcionalidades como el login dejen de operar correctamente. Vamos a solucionarlo.

Primeros pasos: identifica el origen del error

No podemos solucionar lo que no entendemos. El mensaje de error suele aparecer en la parte superior de la pantalla, justo encima del contenido de tu web o en el panel de administración (wp-admin). A veces, también puede aparecer en el archivo debug.log de WordPress.

1. Revisa si el error aparece en el front-end o en el back-end

Entra a tu web como visitante normal. ¿Ves el warning? Ahora intenta acceder a tudominio.com/wp-admin. ¿Aparece ahí también? Esto te dará una pista de si el problema es global o solo en una parte específica.

2. Desactiva plugins sospechosos (el método infalible)

La causa más común del error session_start es un plugin mal codificado o que intenta iniciar sesiones de forma manual. Los principales sospechosos son:

  • Plugins de caché (W3 Total Cache, WP Super Cache).
  • Plugins de membresías y suscripciones.
  • Plugins de carrito de compras (WooCommerce y sus extensiones).
  • Plugins de seguridad que escanean cabeceras.

Para verificarlo, accede a tu cPanel y busca la sección de Administrador de archivos. Navega hasta public_html/wp-content/plugins. Dentro de esa carpeta, verás una lista de carpetas (cada una es un plugin). Renombra la carpeta del plugin sospechoso añadiendo .backup al final. Por ejemplo, si el plugin se llama mi-plugin, cámbialo a mi-plugin.backup.

Esto desactiva el plugin sin necesidad de entrar al panel de WordPress. Recarga tu web. Si el error desaparece, ya sabes quién es el culpable. Puedes ir activando uno a uno para confirmarlo.

Solución definitiva: cambiar la ruta de sesión en cPanel

Si el problema persiste tras desactivar plugins, es porque tu servidor tiene una configuración de PHP incorrecta o la carpeta temporal no es accesible. La solución más robusta y limpia es cambiar la ruta donde PHP guarda las sesiones. Vamos a hacerlo desde cPanel, que es el panel de control que mencionas.

¿Qué es esto de la ruta de sesión?

PHP tiene una variable llamada session.save_path. Por defecto, suele ser /tmp o /var/cpanel/php/sessions/ea-phpXX. Si esa ruta no existe o no tiene permisos, aparece el warning. Vamos a crear una carpeta segura dentro de nuestro propio hosting y a decirle a PHP que use esa.

Paso 1: Crear una carpeta para sesiones en tu hosting

  1. Entra a tu cPanel (normalmente en tudominio.com/cpanel o tudominio.com:2083).
  2. Busca el icono Administrador de archivos (File Manager) y ábrelo. Generalmente se te pedirá que selecciones la raíz del documento (suele ser public_html).
  3. Haz clic en + Carpeta (o botón derecho -> Nueva carpeta) y nómbrala como sesiones_php. No uses espacios ni caracteres raros.
  4. Ahora, dentro de esa carpeta, haz clic derecho sobre ella y selecciona Permisos (o Permissions). Asegúrate de que esté en 755 (esto permite lectura y escritura al usuario, y lectura/ejecución a los demás). Si tu hosting es muy restrictivo, puedes usar 775.
  5. Anota la ruta completa. Si tu hosting es estándar, será algo como: /home/tuusuario/public_html/sesiones_php.

[TIP] Si no ves la ruta completa, en el Administrador de archivos, arriba a la derecha, hay una opción que dice "Ruta completa" o "Full path". Actívala para copiarla bien.

Paso 2: Editar el archivo php.ini (si existe)

En cPanel, a veces tienes la opción de editar la configuración de PHP. Busca el icono "Seleccionar versión de PHP" o "MultiPHP INI Editor".

  1. Entra en MultiPHP INI Editor.
  2. Selecciona tu dominio en la lista desplegable.
  3. Busca el campo llamado session.save_path.
  4. Borra el valor que tenga (a veces está vacío) y escribe la ruta que creaste antes: /home/tuusuario/public_html/sesiones_php.
  5. Haz clic en Guardar o Aplicar.

Paso 3: Si no hay MultiPHP INI Editor, usa un archivo .htaccess

Si tu cPanel es antiguo o no tiene esa opción, podemos hacerlo mediante el archivo .htaccess. Este archivo está en la raíz de tu public_html. OJO: Es un archivo oculto, así que en el Administrador de archivos, activa la opción "Mostrar archivos ocultos" (arriba a la derecha).

  1. Localiza el archivo .htaccess. Si no existe, créalo (clic derecho -> Nuevo archivo -> .htaccess).
  2. Haz clic derecho sobre él y selecciona Editar (o Edit).
  3. Al final del archivo, añade estas líneas:
php_value session.save_path /home/tuusuario/public_html/sesiones_php

IMPORTANTE: Sustituye /home/tuusuario/ por la ruta real que viste antes. Guarda los cambios.

Paso 4: La solución más limpia: editar el archivo wp-config.php

A veces, el servidor ignora el .htaccess o el INI Editor. La forma más directa de forzar la configuración desde WordPress es añadir un pequeño código al archivo wp-config.php (el archivo de configuración principal de WordPress). No te asustes, es muy sencillo.

  1. En el Administrador de archivos, ve a public_html y busca el archivo wp-config.php.
  2. Haz clic derecho -> Editar.
  3. Busca la línea que dice /* That's all, stop editing! Happy publishing. */.
  4. Justo antes de esa línea, pega lo siguiente:
/** Corregir el error de sesión en WordPress */
session_save_path('/home/tuusuario/public_html/sesiones_php');
  1. Sustituye la ruta por la tuya. Guarda el archivo.

[WARNING] Ten muchísimo cuidado al editar wp-config.php. No borres ninguna línea existente. Solo añade el bloque de código indicado. Si algo sale mal, tu web podría dar error 500. Si eso pasa, vuelve a entrar por FTP o cPanel y revierte el cambio.

Solución alternativa: desactivar el almacenamiento de sesiones en archivos

Si el problema es recurrente y no quieres lidiar con rutas, otra opción es cambiar el método de almacenamiento de sesiones de PHP de "archivos" a "memoria" (Redis o Memcached). Esto es más avanzado, pero lo menciono porque es la solución que aplican muchos hosts profesionales.

En cPanel, si tienes la opción de "Administrar módulos de PHP" o "EasyApache", podrías instalar el módulo php-redis o php-memcached. Pero esto ya es harina de otro costal. Para el 95% de los usuarios, la solución de crear la carpeta sesiones_php es más que suficiente.

¿Y si el error es "headers already sent"?

Este es un error hermano. El mensaje completo suele ser: "Warning: Cannot send session cache limiter - headers already sent (output started at /home/.../wp-content/themes/tema/functions.php:12)".

Este warning aparece cuando hay un espacio en blanco o un carácter invisible (como una BOM) después de la etiqueta ?> de cierre de un archivo PHP. Es muy común en archivos de temas o plugins editados con editores de texto de Windows (como el Bloc de notas).

Cómo solucionar el error de cabeceras

  1. Abre el archivo que indica el error (en el ejemplo, functions.php).
  2. Ve al final del archivo.
  3. Borra la etiqueta de cierre ?> si existe. Sí, has leído bien. En los archivos de WordPress, es una buena práctica NO cerrar el bloque PHP al final del archivo. Esto elimina cualquier espacio o salto de línea que se cuela después.
  4. Guarda el archivo y sube los cambios.

Este sencillo truco elimina el 90% de los errores de "headers already sent".

Cómo solucionar el error si aparece en wp-admin

Si el error te bloquea el acceso al panel de administración, no podrás desactivar plugins desde dentro. En ese caso, la solución de renombrar carpetas de plugins (explicada arriba) es tu salvación. También puedes usar el Administrador de archivos para renombrar la carpeta plugins completa a plugins_inactivos. Esto desactiva todos los plugins de golpe. Luego, cuando accedas a tu panel, ve a Plugins y ve activándolos uno a uno para localizar el culpable.

Preguntas frecuentes (FAQ) sobre el error session_start

Aquí te dejo una recopilación de las dudas más habituales que me encuentro en soporte. Espero que te ayuden a resolver el caso más rápido.

¿Por qué aparece este error solo en algunas páginas?

Porque el plugin o función que inicia la sesión solo se ejecuta en esas páginas concretas. Por ejemplo, en el carrito de compras o en el área de miembros. No es un fallo global, sino localizado en una funcionalidad.

¿Es peligroso este warning para mi web?

A corto plazo, no. Pero a largo plazo, puede impedir que los usuarios inicien sesión correctamente, romper el carrito de compras o hacer que la caché no funcione. Además, muestra una imagen poco profesional a tus visitantes. Es mejor solucionarlo.

He seguido todos los pasos y el error sigue ahí, ¿qué hago?

Si has creado la carpeta, editado el .htaccess y el wp-config.php, y el error persiste, el problema puede estar en el servidor a nivel más profundo (por ejemplo, un open_basedir restrictivo que impide el acceso a otras carpetas). En ese caso, contacta con tu proveedor de hosting y diles el mensaje exacto. Si usas un hosting con Syspanel (el panel que mencionabas, cuyo puerto de acceso es el 2106), la ruta de sesión puede ser diferente. En Syspanel, la estructura de archivos es similar, pero la ruta de inicio suele ser /home/usuario/domains/tudominio.com/public_html. Asegúrate de usar la ruta correcta en los pasos anteriores.

¿Puedo simplemente ocultar el error?

Sí, puedes desactivar la visualización de errores de PHP desde el archivo wp-config.php, pero no lo recomiendo. Ocultar el error no lo soluciona; solo lo esconde. Es como poner una tirita en una herida sin limpiarla. Es mejor arreglar la causa de raíz.

¿Afecta esto a mi posicionamiento SEO?

Indirectamente, sí. Un sitio lento o con errores visibles aumenta la tasa de rebote. Los usuarios se van si ven mensajes raros. Y Google penaliza la mala experiencia de usuario. Además, si el error impide que el sitio cargue correctamente, los robots de Google podrían no indexar bien tu contenido. Por eso es crucial solucionar el error wordpress cuanto antes.

Conclusión: tu WordPress sin warnings

Hemos recorrido las causas principales y las soluciones más efectivas para el warning session_start. Recuerda el orden lógico:

  1. Desactiva plugins (la causa más común).
  2. Crea una carpeta de sesiones en tu hosting.
  3. Enlaza esa carpeta mediante el INI Editor, .htaccess o wp-config.php.

Con estos tres pasos, habrás corregido el problema en el 99% de los casos. Si te ha funcionado, ¡genial! Si no, ya sabes que el siguiente paso es contactar con tu hosting, porque puede ser una limitación del servidor.

Espero que esta guía te haya sido de gran ayuda. Si te quedas atascado en algún punto, vuelve a leer el paso correspondiente con calma. La gestión de un hosting a veces parece un laberinto, pero con estas instrucciones detalladas, es pan comido. ¡Mucha suerte con tu WordPress!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel