Deshabilitar open_basedir en Hestia CP
Cómo desactivar la restricción open_basedir para un sitio específico.
Hestia CP es uno de los paneles de control de alojamiento más populares y fáciles de usar que existen. Gestiona todo: sitios web, correo electrónico, bases de datos, certificados SSL, gestión de archivos y tareas programadas.
¿Qué es open_basedir y por qué deshabilitarlo?
La directiva open_basedir restringe los scripts PHP al acceso de archivos dentro del directorio raíz de su propio sitio. Es una medida de seguridad razonable que mantiene los sitios aislados entre sí — cada uno solo puede ver sus propios archivos y no puede interferir con nada más en el servidor.
Dicho esto, en ocasiones puede resultar un obstáculo. Algunos scripts necesitan legítimamente acceder a archivos fuera de la raíz del sitio, y cuando open_basedir los bloquea, verás un error como este en tus logs o en la propia página:
open_basedir restriction in effect
Cuando ocurra esto, puedes deshabilitar la restricción para el sitio afectado sin tocar el resto de tu configuración.
Deshabilitar open_basedir
Los archivos de plantillas PHP-FPM se almacenan aquí:
/usr/local/hestia/data/templates/web/php-fpm/
Cada archivo corresponde a una versión específica de PHP. Para PHP 8.0, por ejemplo, la plantilla se llama PHP-8_0.tpl.
Archivos de plantillas PHP-FPM en Hestia CP
Abre la plantilla para tu versión de PHP y localiza esta línea:
php_admin_value[open_basedir] = ...
Coméntala añadiendo un punto y coma al principio:
;php_admin_value[open_basedir] = ...
Puedes hacerlo manualmente en cualquier editor de texto (nano, vim) — o simplemente ejecuta el comando de abajo para que se haga de forma automática.
Asegúrate de actualizar el nombre del archivo si usas una versión de PHP diferente. El ejemplo siguiente apunta a PHP 8.0.
sed -i 's/php_admin_value\[open_basedir\]/;php_admin_value\[open_basedir\]/g' /usr/local/hestia/data/templates/web/php-fpm/PHP-8_0.tpl
Si editaste el archivo manualmente, guárdalo con Ctrl + O → Enter → Ctrl + X.
Aplicar los cambios
Una vez actualizada la plantilla, debes propagar los cambios al sitio y recargar PHP. Ejecuta el comando de abajo sustituyendo los tres parámetros por tus propios valores:
admin— el nombre de usuario de Hestia CP al que pertenece el sitioexample.com— el dominio de tu sitioPHP-8_0— el nombre de la plantilla que acabas de editar
v-change-web-domain-backend-tpl admin example.com PHP-8_0
Verificar el resultado
Comprueba que open_basedir ya no está activo generando una página phpinfo() en tu sitio.
Así se ve cuando la restricción está habilitada:
open_basedir habilitado
Y así es como debería verse cuando está deshabilitada:
open_basedir deshabilitado
Ayuda
¿Tienes dudas o necesitas ayuda? Escríbenos a través del sistema de tickets — siempre estamos aquí para ayudarte!