Solucionar “open_basedir restriction in effect” en Plesk

Si en nuestra aplicación intentamos incluir archivos que se encuentran fuera del directorio de publicación del dominio (o subdominio) (httpdocs) es posible que se nos muestre el siguiente error:

open_basedir restriction in effect. File(./../directorio/archivo.php) is not within the allowed path(s): (/var/www/vhosts/midominio.com/httpdocs:/tmp)

Esto ocurre porque Plesk, por defecto, define que todos los archivos que se incluyan en una aplicación PHP han de estar dentro del directorio httpdocs del dominio (o subdominio). Sin embargo, podemos indicarle que admita la inclusión de archivos y/o directorios que no se encuentren en httpdocs.

Lo conseguiremos añadiendo un archivo vhost.conf dentro del directorio conf del dominio (o subdominio) que necesita incluir archivos de otras ubicaciones.

Para ello, conectaremos con nuestro servidor por SSH y crearemos un archivo llamado "vhost.conf" dentro del directorio "conf" de nuestro dominio (o subdominio):

pico /var/www/vhosts/midominio.com/conf/vhost.conf

Este será su contenido:

<Directory "/var/www/vhosts/midominio.com/httpdocs">
php_admin_value open_basedir "/var/www/vhosts/midominio.com/httpdocs:/var/www/vhosts/directorio-con-archivos-a-incluir:/tmp"
php_admin_value safe_mode Off
</Directory>

Para que los cambios surtan efecto, debemos reconfigurar el vhost de ese dominio:

/opt/psa/admin/bin/websrvmng --reconfigure-vhost --vhost-name=midominio.com -a -v

Y, por último, reiniciamos el servidor Apache:

/etc/init.d/apache2 restart

Esta es la forma correcta de permitir en Plesk la inclusión de ficheros o directorios que se encuentren fuera del directorio de publicación. Como no se modifica ningún archivo propio de Plesk, los cambios de configuración o actualizaciones que se realicen respetarán los archivos vhost creados.

2 Respuestas

  1. staff

    Hola,

    Verifica que hayas escrito correctamente el contenido de tu vhost, ya que el error indica que hay un error de sintaxis.

    Comprueba que no dejes ningún salto de línea adicional. También puedes consultar con el soporte del gestor de archivos, por si es necesario hacer algo especial para hacerlo funcionar.

    Un saludo.

  2. shap

    hola!
    estoy intentado instalar un gestor de archivos (ajaxplorer 4.04)
    y al acceder me sale el error “open basedir”

    tras probar vuestra solución este ha sido el mensaje de error que he recivido en ssh.

    Syntax error on line 2 of /var/www/vhosts/”midominio”/conf/vhost.conf:
    php_admin_value takes two arguments, PHP Value Modifier (Admin)

    alguna idea de como solucionarlo??

    gracias!

Responder a shap