Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] fopen debian error

Estas en el tema de fopen debian error en el foro de PHP en Foros del Web. Bueno llevo ya un monton de horas, y no se que mas hacer, la cosa es que he pasado mi web (creada en W8 y ...
  #1 (permalink)  
Antiguo 28/06/2014, 07:34
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 12 años, 6 meses
Puntos: 1
fopen debian error

Bueno llevo ya un monton de horas, y no se que mas hacer, la cosa es que he pasado mi web (creada en W8 y usando xampp (por si sirve de algo saberlo..)), he contratado un vps con debian 7, me he descargado php5, apache2 y mysql, ademas de phpmyadmin, el phpinfo() se muestra correctamente, pero luego lo que viene siendo los archivos php parecia como que no se ejecutaban, entonces puse
Código PHP:
ini_set('display_errors'1); 
para comprobar los posibles errores, ya que la pagina salia en blanco y me encuentro que fopen no encuentra ninguna ruta:
Código:
Warning: fopen(/var/www/skins/directorio/archivoX.html): failed to open stream: No such file or directory in /var/www/sources/miscelaneous/skin.php on line 34

Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/sources/miscelaneous/skin.php on line 36
he probado en cambiar la ruta, usando " ./ ", poniendo la ruta " var/www " incluso cogiendola de la variable global " $_SERVER['DOCUMENT_ROOT'] ", pero nada he buscado por google y por la web y no he llegado a nada..

Alguna idea? gracias de antemano
  #2 (permalink)  
Antiguo 28/06/2014, 07:42
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: fopen debian error

comprueba tu directorio actual con getcwd(). a partir de ahi busca la ruta necesaria para llegar asta el archivo que quieres abrir.
  #3 (permalink)  
Antiguo 28/06/2014, 08:01
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: fopen debian error

me devuelve var/www, tanto en el index.php como en skin.php, es mas, esque la ruta es esa casi casi seguro, porque puedo acceder a los archivos mediante la url www.dominio.com/sources/miscelaneous/skin.php o www.dominio.com/skins/directorio/archivoX.html
  #4 (permalink)  
Antiguo 28/06/2014, 09:19
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: fopen debian error

puesdes pegar el codigo que tienes donde utilizas el fopen()
  #5 (permalink)  
Antiguo 28/06/2014, 09:24
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: fopen debian error

Ahi va, lo he comentado un poco si no entendeis de donde sale algo decidmelo

Código PHP:

  
function make() {
    global 
$CONF$TMPL// variables globales

    /*
       skin_path = "."
       skin_name = "/skins/directorio"
       $this->filename = "Archivo que se quiere abrir"
    */
    
$file "{$CONF['skins_path']}/{$TMPL['skin_name']}/{$this->filename}.html";
    
$fh_skin fopen($file'r');
    
$skin = @fread($fh_skinfilesize($file));
    
fclose($fh_skin);

    
$return $skin;
  } 
Si hago un echo debajo de la variable $file, me devuelve ./skins/directorio/archivoQueEstaBuscando.html. osea que en teoria esta bien..

El fallo es seguro que tiene que ver con el cambio de windows a linux, porque en windows funciona todo

Última edición por Doch; 28/06/2014 a las 09:32
  #6 (permalink)  
Antiguo 28/06/2014, 09:33
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: fopen debian error

Yo lo que haria, es despues de :
Código PHP:
Ver original
  1. $file = "{$CONF['skins_path']}/{$TMPL['skin_name']}/{$this->filename}.html";
agregar:
Código PHP:
Ver original
  1. echo($file);

y luego, en base a la ruta que se este armando, verificar si alli esta el archivo o el path contiene un error.

Otro dato importante (que te falto aclarar) es si el problema comenzo con debian o ya venia de W8 o si no lo sabes.

Si la respuesta es la primera, entonces puede que debian arme las rutas del path de forma diferente, ej: En windows puedes delimitar directorios con la "/" o con la "\" pero creo que en gnu solo se admite una de las dos opciones (no estoy seguro de que esto sea cierto, solo es una idea, quiza el problema sea otro)

Si ya venia de W8 entonces sin duda es un error en el script.

Si no lo sabes, verifica primero en w8 y en base a eso, fijate de las dos opciones anteriores la que corresponda
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #7 (permalink)  
Antiguo 28/06/2014, 09:38
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: fopen debian error

Sin duda es cosa de linux o que alguna configuracion no esta bien, y sobre el echo justo lo edite arriba, pero posteaste antes, me devuelve bien la ruta:

./skins/directorio/archivoQueEstaBuscando.html

Última edición por Doch; 28/06/2014 a las 09:58
  #8 (permalink)  
Antiguo 28/06/2014, 10:38
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: fopen debian error

leyendo la documentacion de fopen() hay una nota que dice esto

Código:
Nota:
Si está experimentando problemas al leer y escribir ficheros y está usando la versión de módulo de servidor de PHP, asegúrese de que los ficheros y directorios que está usando sean accesibles por el proceso del servidor.
tiene toda la pinta de que sea por esto, por tema de privilegios o algo, porque al codigo no le veo fallo
  #9 (permalink)  
Antiguo 30/06/2014, 10:35
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: fopen debian error

Puedes probar con file_exist(); y poner a la carpeta y a los archivos un permiso 777
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: debian, fopen, html, mysql, variable
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 14:11.