Foros del Web » Programando para Internet » PHP »

En localhost funciona, pero al subirlo a un server no!

Estas en el tema de En localhost funciona, pero al subirlo a un server no! en el foro de PHP en Foros del Web. Salu2, llevo horas tratando de resolver esto: Tengo un sistema de comentarios en mi web.... bueno cada pagina la comienzo asi: /guestbook/index.php Código PHP: <?php ...
  #1 (permalink)  
Antiguo 04/08/2005, 18:22
okram
Invitado
 
Mensajes: n/a
Puntos:
En localhost funciona, pero al subirlo a un server no!

Salu2, llevo horas tratando de resolver esto: Tengo un sistema de comentarios en mi web.... bueno cada pagina la comienzo asi:

/guestbook/index.php
Código PHP:
<?php
include("../includes/auth.inc.php");
....
dnd el archivo auth.inc.php se encarga de conectar a la base de datos y verificar si el usuario esta logueado.... bah todo eso....

/includes/auth.inc.php
Código PHP:
<?php 
session_name
("okramsess"); 
session_start(); 

require(
"dodbauth.inc.php"); 
$doconnect SetConnection(); 

include(
"constants.inc.php");
.......
aqui hago un require del archivo dodbauth.inc.php, que es el que contiene todos los datos de conexion, y en la sgte. linea hago la conexion con la base de dtos

/includes/dodbauth.inc.php
Código PHP:
<? 
function SetConnection()
{
$db_hostnp="db.host.sk"//Estoy usando el hosting de host.sk
$db_nombrenp="nombrededb"
$db_usernp="usuariodedb"
$db_passnp="passdeusuariodedb"
$doconnect=mysql_connect($db_hostnp$db_usernp$db_passnp) or die ("Error conectando a la base de datos.");
mysql_select_db($db_nombrenp ,$doconnect) or die("Error seleccionando la base de datos."); 
return 
$doconnect;
}
?>
Bueno, estuve trabajando localmente con el Apache, pero decidi probar todo mi codigo subiendolo a internet, asi que los subi a host.sk (que es un servidor gratuito valga decir)...

localmente todo trabaja bien , pero en el server de internet me manda este error al acceder a cualquier pagina:


Warning: main() [function.main]: open_basedir restriction in effect. File(/usr/lib/php/dodbauth.inc.php) is not within the allowed path(s): (/mnt) in /mnt/storage/users/e/m/m/okram/on/includes/auth.inc.php on line 5

Warning: main(dodbauth.inc.php) [function.main]: failed to open stream: Operation not permitted in /mnt/storage/users/e/m/m/okram/on/includes/auth.inc.php on line 5

Fatal error: main() [function.require]: Failed opening required 'dodbauth.inc.php' (include_path='.:/usr/lib/php') in /mnt/storage/users/e/m/m/okram/on/includes/auth.inc.php on line 5



Alhuien me puede explicar que esta pasando, y ayudarme a solucionarlo??????..... Estuve mas de 2 horas haciendo variantes en el codigo para que funcione, pero nada ..... como dije solo trabaja bien en el localhost....

Salu2 y gracias

Última edición por okram; 07/08/2005 a las 20:36
  #2 (permalink)  
Antiguo 06/08/2005, 17:17
okram
Invitado
 
Mensajes: n/a
Puntos:
ayuda plzzzzz esto me esta matandoooo
  #3 (permalink)  
Antiguo 08/08/2005, 06:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si usas las rutas absolutas completas tendrás menos problemas si llamas a tus scripts bajo estruturas diferentes (bajo ramas de directorios diferentes).

Concretamente en tu caso usar:
include ("/mnt/storage/users/e/m/m/okram/on/includes/dodbauth.inc.php");

En otros casos .. dentro de la directiva "open_base_dir" (php.ini .. lo podrías ver por un phpinfo() si te dejan) no incluye el "./" que indica "en este mismo directorio" para hacer referencias a archivos bajo un include() .. o fopen() .. etc como en la mayoría de servidores si que está configurado para que puedas llamar a un archivo bajo un include por una referencia tipo:

require("dodbauth.inc.php");

Como te comenté .. sería altamente recomendable que uses la ruta completa absoluta a ese archivo (define una constante por ejemplo .. o usa $_SERVER['DOCUMENT_ROOT'] para tomar el raiz de tu sitio y desde ahí compón tu estructura de directorios).

En su defecto puedes incluir la ruta tipo "./" ("este directorio") usando:

require("./dodbauth.inc.php");

Pero insisto que deberías usar la ruta absoluta -completa- como te indiqué para evitar problemas.

Un saludo,
  #4 (permalink)  
Antiguo 08/08/2005, 13:34
okram
Invitado
 
Mensajes: n/a
Puntos:
Pregunta

hechos algunos cambios en el codigo los scripts funcionan correctamente.

Pero... primero intente usar
Código PHP:
require("./dodbauth.inc.php"); 
y no resulto. Me mandaba los mismos errores, al igual que usando $_SERVER['DOCUMENT_ROOT']
Código PHP:
require($_SERVER['DOCUMENT_ROOT']."/includes/dodbauth.php"); 
Al poner toda la ruta commpleta si funciono:
Código PHP:
include ("/mnt/storage/users/e/m/m/okram/on/includes/dodbauth.inc.php"); 
EL problema es que tendria que cambiar algo de 30 paginas, y eso que estoy probando el codigo en un hosting provisional. AL mudar al hosting definitivo tendria que hacer otro cambio en todas esas paginas. Como puedo solucionar esto, de tal manera que la ruta completa (("/mnt/storage/users/e/m/m/okram/on/) se coloque automaticamente de acuerdo al server q use?

Salu2 gracias
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 17:36.