Foros del Web » Programando para Internet » PHP » Configuración PHP »

No funciona el script, antes si funcionaba en otro server

Estas en el tema de No funciona el script, antes si funcionaba en otro server en el foro de Configuración PHP en Foros del Web. Hola, tengo este codigo php que encontre aqui en FDW y siempre funcionaba en mi antiguo hosting pero ahora que tengo un VPS no me ...
  #1 (permalink)  
Antiguo 27/02/2009, 07:21
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 3 meses
Puntos: 1
No funciona el script, antes si funcionaba en otro server

Hola, tengo este codigo php que encontre aqui en FDW y siempre funcionaba en mi antiguo hosting pero ahora que tengo un VPS no me funciona, no me lee las imagenes del directorio :S

Alguien sabe porque?

Saludos y gracias.

Código PHP:
<?php 

 
// variable que nos da el url del server 
$url_htms "http://".$HTTP_SERVER_VARS['SERVER_NAME']; 

 
// variable que nos da el path del directorio publico donde esta la web 
$dir_htms $HTTP_SERVER_VARS['DOCUMENT_ROOT']; 

function 
ver_dir($dir
{  
  global 
$url_htms,$dir_htms
  
// abrimos el directorio que queremos leer 
  
$current_dir opendir($dir); 
  while(
$entryname readdir($current_dir)) 
  { 
      
// pasamos por el while todo lo que hay en el directorio 
     
if(is_dir("$dir/$entryname") and ($entryname != "." and $entryname!="..")){ 
          
         
// si encuentra otra carpeta la funcion se llama asi misma 
        
ver_dir("${'dir'}/${'entryname'}"); 
     } 
       elseif(
$entryname != "." and $entryname!=".."){ 
            
           
// si no y es un archivo saca por pantalla el archivo con el URL y el path de este archivo 
        
if(is_file("${'dir'}/${'entryname'}")) {   
             
          
            
$path="${'dir'}/${'entryname'}"
            
$url str_replace($dir_htms,$url_htms,$path); 
            echo 
"<li><a href='".$url."'>".$url."</a>"
            echo 
"<li> path ".$path
            
$ArrayArchivos['ruta'][] = $path;  
            
$ArrayArchivos['url'][]  = $url
          }
//llave de if(is_file) 
       
}//llave de elseif 
    
}//llave de while 
     
    // cerramos el directorio  
  
closedir($current_dir); 
   
  return 
$ArrayArchivos

//llave de funcion 



// llamamos a la funcion con el path del directorio que queremmos leeer 
$return ver_dir($dir_htms."/images"); 

echo 
"<pre>"
print_r($return); 

?>
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
  #2 (permalink)  
Antiguo 27/02/2009, 08:03
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: No funciona el script, antes si funcionaba en otro server

¿Puedes especificar un poco más el error?
Quiero decir, se muestra algun error? o simplemente no se ejecuta?
Si lo que quieres es ver un listado de archivos de un directorio es muy facil
http://es.php.net/readdir
  #3 (permalink)  
Antiguo 27/02/2009, 08:04
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: No funciona el script, antes si funcionaba en otro server

Simplemente no se ejecuta, no veo el lista de imagenes como lo tenia antes. Solo sale el codigo HTML estatico :S

Salu2
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
  #4 (permalink)  
Antiguo 27/02/2009, 08:08
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: No funciona el script, antes si funcionaba en otro server

Si dices que funcionaba en el otro servidor, prueba a seguir más estrictamente los estándares de PHP.

Por ejemplo, cambiar esto:

Código PHP:
if(is_dir("$dir/$entryname"
Por esto

Código PHP:
if(is_dir($dir."/".$entryname
  #5 (permalink)  
Antiguo 27/02/2009, 08:10
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: No funciona el script, antes si funcionaba en otro server

Acabo de ver en el log de Plesk:

Cita:
PHP Warning: opendir() [<a href='function.opendir'>function.opendir</a>]: open_basedir restriction in effect.
Parece como si no tuviera permisos. Es que no se bien como configurar el php.ini y demas :S Soy nuevo en VPS, Apache, PHP y demas.

Salu2 y gracias.
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
  #6 (permalink)  
Antiguo 27/02/2009, 08:12
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
hmmmm
Que alguien me corrija...pero pueden ser los permisos CHMOD?

Establece el permiso del directorio en 777, con tu gestor FTP puedes hacerlo en las propiedades del directorio.

Acabo de encontrar esto:
http://www.forosdelweb.com/f18/open_...effect-276369/

Por cierto , si necesitaras editar el php.ini puedes usar el ini_set() que es mas rapido.

Última edición por GatorV; 27/02/2009 a las 09:44
  #7 (permalink)  
Antiguo 27/02/2009, 08:14
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 3 meses
Puntos: 1
Cita:
Iniciado por karliky Ver Mensaje
hmmmm
Que alguien me corrija...pero pueden ser los permisos CHMOD?

Establece el permiso del directorio en 777, con tu gestor FTP puedes hacerlo en las propiedades del directorio.
Eso ya lo hice y nada :S

Cita:
Iniciado por karliky Ver Mensaje
Acabo de encontrar esto:
http://www.forosdelweb.com/f18/open_...effect-276369/

Por cierto , si necesitaras editar el php.ini puedes usar el ini_set() que es mas rapido.
Que es eso del ini_set()? Es que estoy pegado en el tema xD

Muchas gracias.

He encontrado esto en php.ini

Cita:
; open_basedir, if set, limits all file operations to the defined directory
; and below. This directive makes most sense if used in a per-directory
; or per-virtualhost web server configuration file. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
;open_basedir =
Esta comentada, que debo hacer?

Salu2 y gracias.
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!

Última edición por GatorV; 27/02/2009 a las 09:45
  #8 (permalink)  
Antiguo 27/02/2009, 08:23
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
El archivo php.ini tiene toda la configuracion de la version PHP de tu server.
Si quisieras cambiar algo del archivo es muy engorroso, asi que usando por ejemplo:
ini_set("allow_url_fopen",true);

Cita:
Iniciado por PDD_20 Ver Mensaje
He encontrado esto en php.ini



Esta comentada, que debo hacer?

Salu2 y gracias.
http://es.php.net/manual/es/ini.sect...i.open-basedir

usa
ini_set(open_basedir,true);
en tu codigo php a ver si funciona

Última edición por GatorV; 27/02/2009 a las 09:45
  #9 (permalink)  
Antiguo 27/02/2009, 08:28
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: No funciona el script, antes si funcionaba en otro server

Cita:
Iniciado por karliky Ver Mensaje
http://es.php.net/manual/es/ini.sect...i.open-basedir

usa
ini_set(open_basedir,true);
en tu codigo php a ver si funciona
Nop :(, lo he añadido a la primera linea
Código PHP:
<?php
ini_set
(open_basedir,true);
Pero sigue igual :S

Salu2
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
  #10 (permalink)  
Antiguo 27/02/2009, 09:38
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: No funciona el script, antes si funcionaba en otro server

Me cuesta creer que vaya mas alla de los permisos... Chequea estos de vuelta, y no pongas 777, sino 766 (Como es que siguen aconsejado usar 777??). Este permiso tiene que estar en la carpeta y en cada foto, a veces no se hereda...

Si fuera un error de script, te putearia como decimos con mis amigos...
  #11 (permalink)  
Antiguo 27/02/2009, 09:40
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: No funciona el script, antes si funcionaba en otro server

Que va eso ya lo he probado.

Puede ser tambien del php safe mode que esta activado y no consigo desactivarlo local y no en master.

Salu2
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
  #12 (permalink)  
Antiguo 27/02/2009, 09:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No funciona el script, antes si funcionaba en otro server

Lamentablemente el safe_mode causa más problemas que soluciones, trata de descomentar la linea del open_basedir, y pon el path hacia tu home, si esto no lo soluciona vas a tener que contactar a tu hosting para que lo arreglen en el master value.

Saludos
  #13 (permalink)  
Antiguo 27/02/2009, 09:48
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: No funciona el script, antes si funcionaba en otro server

Mi compañia de hosting no realiza nada de eso, yo tengo acceso a todo. He modificado el master value pero el local me sigue saliendo que esta On.

Como modifico el local?

Salu2
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
  #14 (permalink)  
Antiguo 27/02/2009, 09:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No funciona el script, antes si funcionaba en otro server

Revisa si tienes algún php.ini de forma local en tu cuenta, haz un <?php phpinfo(); ?> y con eso puedes ver que php.ini esta leyendo PHP.

Saludos
  #15 (permalink)  
Antiguo 27/02/2009, 10:02
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: No funciona el script, antes si funcionaba en otro server

Me pone que hay un local value y otro master value. El que yo modifico es el master porque el otro no se donde esta en mi servidor pero en ese pone que esta ON :S

Salu2 y gracias.
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
  #16 (permalink)  
Antiguo 27/02/2009, 10:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No funciona el script, antes si funcionaba en otro server

De hecho tiene que estar en Off, como te comento el safe_mode causa más problemas que beneficios, de hecho para PHP6 ya no existe esa directiva.

Te recomiendo contactes a tu hosting para que te indiquen en que paths tienes que modificar tu php.ini.

Saludos
  #17 (permalink)  
Antiguo 27/02/2009, 10:12
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: No funciona el script, antes si funcionaba en otro server

Segun su ayuda es uno que ya pone Off tambien :S

Hay valores que yo modifico en el que ya conozco y se cambian automaticamente en ese local pero el safe mode nop.

Salu2
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
  #18 (permalink)  
Antiguo 27/02/2009, 10:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No funciona el script, antes si funcionaba en otro server

Por eso mismo, lo mejor es que contactes a tu hosting, puedes seguir moviendo lo que quieras pero si ves que no hace cambios lo mejor es que le digas a tu hosting para que te asesoren.

Saludos
  #19 (permalink)  
Antiguo 27/02/2009, 10:23
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: No funciona el script, antes si funcionaba en otro server

Les he preguntado pero en principio no ha servidor para nada. Porque al final lo encontre yo, esto ya es para llorar xDD.

Cada dominio tiene uno diferente.

Probemos a ver.

Saludos y gracias por todo
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
  #20 (permalink)  
Antiguo 28/02/2009, 12:28
 
Fecha de Ingreso: diciembre-2005
Mensajes: 50
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: No funciona el script, antes si funcionaba en otro server

Segun lo que muestras en el log

open_basedir restriction in effect.

El problema es que estas tratando de acceder a un directorio que no esta dentro de tu open_basedir, open_basedir limita los directorios a los que tienes acceso dentro desde php, pudes ver en phpinfo a que directorios tienes acceso desde php.
  #21 (permalink)  
Antiguo 01/03/2009, 05:11
Avatar de PDD_20  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 413
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: No funciona el script, antes si funcionaba en otro server

Ya encontre el php.ini local, lo modifique y listo.

Muchas gracias a todos :D
__________________
El Grupo Informático :: Noticias y foros de Informática
¡Ahora por participar se regalan cheques para Amazon!
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 23:08.