Foros del Web » Programando para Internet » PHP »

Error include php en linux, web diseñada en windows

Estas en el tema de Error include php en linux, web diseñada en windows en el foro de PHP en Foros del Web. Holas tengo un problemilla. he diseñador una web desde cero en windows. pero en el momento de publicarlar quiero usar linux. El problema es que ...
  #1 (permalink)  
Antiguo 04/01/2011, 14:05
 
Fecha de Ingreso: diciembre-2010
Ubicación: Madrid
Mensajes: 11
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta Error include php en linux, web diseñada en windows

Holas tengo un problemilla. he diseñador una web desde cero en windows. pero en el momento de publicarlar quiero usar linux. El problema es que en windows los includes de php son de tipo ../la_ruta_del_archivo y en linux es desde la raiz /usr o /home. ¿Que debo de usar para que el include de php sea valido tanto en linux como en windows?
Gracias.
  #2 (permalink)  
Antiguo 04/01/2011, 14:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error include php en linux, web diseñada en windows

no debes preocuparte, internamente php hace los cambios de rutas...

bueno, si de plano haces un include tipo c:/ruta/script.php pues si estas muy mal, pero mientras uses rutas relativas tipo ./ruta/script.php o ../ruta/script.php no deberías tener ningún problema...

otra técnica es usar dirname(__FILE__) para definir alguna constante que nos especifica la ruta del índice, dicho así, usar siempre esta constante para ubicar bien los otros scripts...

también podrías usar $_SERVER['DOCUMENT_ROOT'] que es el equivalente a ./ (la raíz del sitio)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/01/2011, 14:20
 
Fecha de Ingreso: diciembre-2010
Ubicación: Madrid
Mensajes: 11
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Error include php en linux, web diseñada en windows

gracias pateketrueke por la respuesta. Que va nunca uso el tipo c:/ siempre el ./ o el ../ pero el problema fue cuando instale ubuntu server 10.10 y lamp. Al entrar en la pagina no se ve nada. esta todo en blanco. modifique el primer include al estilo linux /usr y se veia por lo menos la pagina principal. al acceder a otra pagina me pasaba lo mismo, todo en blanco de nuevo. Bueno tambien uso em mod_rewrite de apache. tiene algo que ver el modulo.?
  #4 (permalink)  
Antiguo 04/01/2011, 14:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error include php en linux, web diseñada en windows

no, el modulo es ajeno a lo que te sucede, pues el modulo es de Apache no de PHP... (:

ahora... dadas las circunstancias, quizá lo mejor sería usar el índice DOCUMENT_ROOT para emplear como raíz de tus scripts...
Código PHP:
define('RAIZ'$_SERVER['DOCUMENT_ROOT']);

// ...

require_once RAIZ.'/ruta/script.php'
otro detalle es siempre usar require/require_once, ya que los include -en un entorno mal configurado- no detienen la ejecución del script general, lo cual dificulta la depuración de posibles errores relacionados...

como dato adicional, la barra / funciona igual en entornos Windows/*nix, de modo que no es necesario usar la barra \\ invertida -y escapada-
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 04/01/2011, 14:42
 
Fecha de Ingreso: diciembre-2010
Ubicación: Madrid
Mensajes: 11
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Error include php en linux, web diseñada en windows

gracias otra vez por responder. ya lo note lo del include y el require_once. ya ire modificando el codigo. joer ke pereza ya que son muchas lineas y archivos. bueno mano a la obra. muchas gracias.

Etiquetas: include, linux, windows
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 03:34.