OVH Community, your new community space.

openbase_dir OFF


hombrelobo
16/07/2008, 12:29
He encontrado una forma más sencilla en este post:

Código:
Disable open_basedir in Plesk:
Add the following contents in the file /var/www/vhosts//conf/vhost.conf


php_admin_value open_basedir none


Run the command:
#/usr/local/psa/admin/sbin/websrvmng -v -a

hologium
21/07/2007, 13:50
De todas formas, siempre tienes la opción de poner las rutas completas en los includes de tus archivos.

include("/var/www/vhosts/etc../head.php");

Desde que utilizo Plesk lo suelo resolver siempre así..

un saludo

hostservi
15/07/2007, 11:38
bueno por la red encontre algo más al problema si alguien quiere discutirlo a ver si alguien comparte mas ideas


Una vez migrados todos los sites en el nuevo servidor Plesk, empezamos la ronda de testeo para comprobar que no habiamos cometido ningún error y que todas las webs funcionaban correctamente. Muy pronto nos dimos cuenta de que había un pequeño problema.

Plesk sobre Linux, y mas concretamente el servidor web apache 2.0, lleva activada por defecto una restricción en los dominios virtuales con scripts PHP. La restricción se llama open_basedir.

Esta restricción sirve para especificar en que rutas concretas podemos, por ejemplo, abrir archivos, hacer uploads, etc. De esta manera evitamos que el host pueda acceder a áreas de disco en las que no debería.

El problema que tenían algunas de las webs era con la función is_file. Esta función se utiliza para comprobar si el parámetro que recibe es un fichero válido: bool is_file ( string $filename ).

En el código de dichas webs, la función está incluida dentro de una clase encargada de gestionar plantillas. Puede recibir una ruta a un fichero válido, o bien un texto que es el contenido del fichero leído previamente. La función is_file se utiliza para diferenciar ambos casos. El problema ocurría cuando la función recibía un texto directo. El sistema al realizar la comprobación y tener activada la restricción sobreentiende que se está queriendo acceder fuera de las rutas permitidas por open_basedir.

Mediante el entorno web no hay manera de eliminar esta restricción. Lo único que podemos hacer es modificar los ficheros de configuración para el dominio virtual; aunque para ello debemos disponer de acceso ssh al servidor.

Una vez dentro del servidor, lo primero que hacemos es localizar las carpetas de configuración. En una instalación por defecto los dominios se encuentran dentro de la ruta:

/var/www/vhosts

Una vez dentro del dominio, veremos que hay diferentes carpetas, entraremos dentro de la que se llama conf.

Ésta contiene un fichero con el nombre httpd.include. Si lo editamos veremos que incluye la directiva de apache para el dominio y los subdominios que puedan existir.

El primer impulso para desactivar el open_basedir nos lleva a editar directamente este fichero e incluirle, o modificarle, la directiva mediante la instrucción:

php_admin_value open_basedir none

Así funcionará correctamente … un tiempo. Tarde o temprano descubriremos que al realizar cualquier modificación en el hosting del dominio mediante el Plesk, volverá a aparecer la restricción y el fichero httpd.include estará como el primer día. Entonces… ¿dónde y cómo podemos desactivar la restricción de manera permanente?

Buceando en la documentación del Plesk encontraremos la respuesta. El sistema de Plesk, cada vez que regenera el fichero httpd.include verifica si en el directorio conf existe un fichero llamado vhost.conf. En el caso de los subdominios, lo mira dentro del directorio conf de los subdominios ( /var/www/vhosts//subdomains//conf ). Si encuentra alguno de estos ficheros, incluye una directiva Include dentro del fichero httpd.include al final de la definición de los mismos.

Al estar al final de la definición del dominio, o subdominio, todo lo que pongamos en ese fichero .conf, sobreescribirá a lo que se defina mediante el http.include.

Para hacer todos estos pasos de la manera más sencilla posible he creado un script en bash que lo automatiza todo.
#!/bin/bash
domain=$1
conf_dir=/var/www/vhosts/$domain/conf
conf_file=/vhost.conf

# Comprobamos si existe el fichero vhost.conf al conf del dominio.
# Si no existe, eliminamos la restriccion open_base_dir.

if [ -d $conf_dir ]; then
if [ ! -e $conf_dir$conf_file ]; then
echo "Creating $conf_dir$conf_file..."
echo "" >> $conf_dir$conf_file
echo "php_admin_value open_basedir none" >> $conf_dir$conf_file
echo "
" >> $conf_dir$conf_file

# Ejecutamos el script de Plesk que recarga los datos del dominio, y incluye la referencia
# al vhost.conf dentro del httpd.include de el directorio conf del dominio.
echo "Reconfiguring domain $domain..."
/usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=$domain
fi
fi

ATENCION Download this code: vhosts.sh

hostservi
14/07/2007, 23:20
bueno me autocontestare yo ya que nadie lo hizo y vi este problema en muchos foros y tampoco nadie contesto nada cierto.

hayque entrar en ssh
e ir a /usr/local/psa/home/vhosts/my.domain.com/ hayesta el fichero vhost u otro fichero .ini

Bien abrimos el fichero los dos si tenemos dos

y buscamos estas dos lineas o parecidas


php_admin_value open_basedir "/var/www/vhosts/aqui esta el nombre de tu dominio /httpdocs:/tmp"


php_admin_value open_basedir "/var/www/vhosts/aqui esta el nombre de tu dominio/httpdocs:/tmp


bien las dos lineas las renombramos por

php_admin_value open_basedir none

grabamos de nuevo los cambios

y ejecutamos service httpd restart

y ya esta OFF definitivamente.

Ahora programas como modern bill y WHMCS correran sin problemas
:arriba:

hostservi
14/07/2007, 14:44
Hola eso que dicen de que plesk es el super panel aun no me lo creo la verdad en directadmin hay menos problemas y menos bugs alguien me puede decir en plesk para un dominio o para todo el server como poner
openbase_dir off ----- ya probe varias cosas pero como si nada
:confused: