Foros del Web » Programando para Internet » PHP »

Warning: open_basedir restriction in effect.

Estas en el tema de Warning: open_basedir restriction in effect. en el foro de PHP en Foros del Web. Hola a todos he programado un website en php, en mi servidor local va de maravillas pero al subirlo a internet me salen muchos errores.. ...
  #1 (permalink)  
Antiguo 31/03/2004, 11:24
 
Fecha de Ingreso: octubre-2003
Mensajes: 117
Antigüedad: 14 años, 1 mes
Puntos: 0
Exclamación Warning: open_basedir restriction in effect.

Hola a todos

he programado un website en php, en mi servidor local va de maravillas pero al subirlo a internet me salen muchos errores.. que dicen:

Warning: open_basedir restriction in effect. File is in wrong directory in /.....
(http://www.lsddigital.com/index.php tarda en abrir por el mismo problema)

pero he subido todos los archivos y no sé que pueda pasar...

que puedo hacer?

Mil Gracias!

Última edición por lsddigital; 31/03/2004 a las 11:34
  #2 (permalink)  
Antiguo 31/03/2004, 12:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ese error te dice que estás intentando hacer un fopen() . un include() .. un copy() o similar -fuera- de tu directorio asignado en tu servidor ..

Por ejemplo .. si es un Linux y tu sitio está en (tu servidor virtual empieze en):

/var/www/sito.com/public_html

de ahí no te puedes mover hacia arriba (o como mucho hasta el sito.com ...) si tu pretendes hacer un: include("/nose.php") .. eso será interpretado como que estás intentando tomar ese archivo desde el "raiz" del servidor entero .. (root) y probocará ese error.

Eso sería la teoría .. pero ese error se puede producir por otros errores que arrastres . ejemplo una variable que no tome el valor esperado ya estaría alterando la ruta de ese include() .. fopen() o similar ...

Por eso, es necesario que pongas el código que usas ... y los mensajes de error completo que tengas (todos los que veas). .. Nombrar "tengo un montón de erroes" cara a los que pretendan ayudarte no presta nada de información para intentar llegar a una conclusión ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 31/03/2004, 12:19
 
Fecha de Ingreso: octubre-2003
Mensajes: 117
Antigüedad: 14 años, 1 mes
Puntos: 0
De acuerdo

El problema es con puros includes() por lo visto
que puedo hacer?
reprogramar todo para colocar los includes en la raiz seria tedioso y desorganizar todo lo que hice...
otra solucion....

HA.... y mil gracias por tu respuesta!

ejemplo del codigo:

<?php
include ("../includes/inc_bd.php"); // Funciones y valores relacionadas con la base de datos
conectarse(); // Se inicial la conexion a la base de datos
include ("../includes/inc_cookies.php"); // Funciones relacionadas con el manejo de cookies
include ("../head.php"); // Cabecera de html
include ("../FCKeditor/FCKeditor.php"); // Editor WYSIWYG para redacción de noticias, comentarios, foro, etc.
include ("../includes/inc_funciones.php"); // Funciones y variables del sistema
include ("../body/principal.php"); // Carga la interface
desconectarse();
?>

Última edición por lsddigital; 31/03/2004 a las 12:24
  #4 (permalink)  
Antiguo 31/03/2004, 13:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
pero.. que estructura tienes de directorios?

/
/includes
/body
/nose ...

y en el raiz un archivo.php que llama a otro archivo de /include .. por ejemplo?

Si es así, tus archivos están en ./includes/nose.php, no en .. (punto punto) ...

También puede ser que ese servidor oblique a que los archivos a "include()" .. estén en cierto directorio .. en tal caso eso sale en tu phpinfo() en las directivas include_path_dir .. o similares..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 02/04/2004, 02:58
 
Fecha de Ingreso: octubre-2003
Mensajes: 117
Antigüedad: 14 años, 1 mes
Puntos: 0
Gracias por tus respuestas

El script que coloque arriba esta en plena raiz del hosting, y las carpetas (includes, body, FCKeditor, etc) a partir de alli.
Con lo que ../ no haria falta en teoria, y de hecho en mi equipo funcionan correcto sin eso, lo he colocado solo para probar, y probe ademas el ./ (un solo punto) y nada...
De hecho, en internet si me carga los includes, pero me salen los mensajes de error... mira

http://www.lsddigital.com/index.php

el logotipo, el menu lateral izquierdo, el pie de la pág. todo es cargado con includes.

No sé porque si los carga salen errores.

que pasa?

de nuevo, muchas gracias por tus respuestas
  #6 (permalink)  
Antiguo 02/04/2004, 05:40
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 7 meses
Puntos: 1
quizas los archivos no tienen el permiso necesario, mira que esten en chmod 755 ,

saludos
  #7 (permalink)  
Antiguo 02/04/2004, 09:21
 
Fecha de Ingreso: octubre-2003
Mensajes: 117
Antigüedad: 14 años, 1 mes
Puntos: 0
Si si los tienen.. de hecho los puse 777
los archivos y las carpetas!

Es muy raro.. si me hace el include() pero me pone el error
me estoy quemando la cabeza en descubrir porque pasa eso!!!
__________________
www.lsddigital.net

Última edición por lsddigital; 02/04/2004 a las 10:04
  #8 (permalink)  
Antiguo 03/04/2004, 03:39
 
Fecha de Ingreso: octubre-2003
Mensajes: 117
Antigüedad: 14 años, 1 mes
Puntos: 0
Antes yo tenia alli un phpnuke, el cual usa includes() y me funcionaba perfectamente.... luego lo borre, y su bd (por su puesto)....

la siguiente página da un phpinfo();

http://www.lsddigital.com/php_info.php

a ver si uds. saben donde pueda estar el error.

Lo más relevante (creo) es que:

safe_mode está activado
safe_mode_include_dir no está definido
include_path: .:/usr/local/psa/apache/lib/php
open_basedir: /usr/local/psa/home/vhosts/lsddigital.com/httpdocs:/tmp

y en mi website (http://www.lsddigital.com/index.php) me sale el mensaje Warning: open_basedir restriction in effect. ..

Cual es la diferencia entre Local Y Master Value??...
puedo cambiar alguno de esos valores?

Gracias

__________________
www.lsddigital.net

Última edición por lsddigital; 03/04/2004 a las 04:01
  #9 (permalink)  
Antiguo 04/04/2004, 16:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Los valores que mencionas no puedes cambiarlos (ni por funciones como ini_set() o por .htaccess)

En cuango al valor de "Local" y "Master" .. (no te lo puedo asegurar) pero parece que el valor "Master" es el que se está predefinido en el php.ini y el "local" el que se ha modificado por algun otro método .. tal vez por la configuración del sitio virtual (en Apache <virutal host>) pero .. no te lo puedo asegurar (son especulaciones sin haber mirando bien el manual de PHP al respecto).

Sobre el problema ...

En teoría con open_base_dir se le dice a PHP que arriba de ese directorio no puede acceder para nada (ningún include() .. fopen() etc ..) pero hacia abajo sí ..

El include_path con el "." punto y algún otro directorio indica que podrías incluir vía include() o funciones similares a un archivo que esté en esa ruta .. El resto lo restringiría la anterior directiva.

Si tienes más problemas .. intenta contactar con tu Soporte de tu Hosting y les preguntas .. que si esta ruta:

/usr/local/psa/home/vhosts/lsddigital.com/httpdocs:/tmp

Pertenece exactamente a tu sitio (raiz que ves al entrar por FTP) ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:10.