Así, tengo este error:

Warning: fopen(/path/to/test-in.txt) [function.fopen]: failed to open stream: Permission denied

La realización de ls -l en el directorio donde test-in.txt se produce la siguiente salida:

-rw-r--r-- 1 $USER $USER 1921 Sep  6 20:09 test-in.txt
-rw-r--r-- 1 $USER $USER    0 Sep  6 20:08 test-out.txt

Con el fin de conseguir más allá de esto, me decidí a realizar las siguientes:

chgrp -R www-data /path/to/php/webroot

Y luego hizo:

chmod g+rw /path/to/php/webroot

Sin embargo, todavía se me pone este error cuando ejecuto mi php5 secuencia de comandos para abrir el archivo. ¿Por qué está sucediendo esto? He intentado esto el uso de la LÁMPARA, así como el cherokee a través de CGI, por lo que no puede ser esto.

Existe una solución de algún tipo?

Editar

También voy a añadir que estoy en vías de desarrollo a través de localhost ahora.

Actualización – PHP fopen() línea

$fullpath = $this->fileRoot . $this->fileInData['fileName'];

$file_ptr = fopen( $fullpath, 'r+' );

También debo mencionar que me gustaría seguir con Cherokee, si es posible. Qué es esto de tratar acerca de la configuración de los permisos de archivo para Apache/Cherokee?

Y lo de los usuarios es el servidor web que se ejecuta como y no se tienen permiso para abrir el archivo?
se ejecuta como mi usuario. En cuanto a la segunda, puedo cat el archivo de texto sin errores, si eso ayuda.
Está usted seguro – el puerto 80 es un lugar privilegiado del puerto y dudo que puedas abrirlo. Por favor, agregue la línea de PHP así
Puede usted por favor escriba el permiso en CADA directorio en el REAL de la ruta de acceso del archivo?
Acaba de cambiar el permiso. En un host linux clic derecho sobre el archivo y haga clic en cambiar permisos. Luego de hacer todos los permisos permiten.

OriginalEl autor zeboidlund | 2012-09-07

2 Comentarios

  1. 7

    Comprobar si el usuario que ejecuta PHP en virtud de tener «X» de permiso en todos los directorios de la ruta de acceso del archivo.

    Lo necesitará para tener acceso al archivo

    Si el archivo es: /path/to/test-in.txt

    Usted debe tener los permisos X en:

    • /path
    • /path/to

    y permiso de lectura en /path/to/test-in.txt

    Sí, que lo hizo. Gracias. Parece chgrp -R <group> </path/to/dir> no es tan completa como yo pensaba…

    OriginalEl autor Izack

  2. 2

    Otra razón de este error puede ser que el directorio de archivo no existe.

    Acabo de añadir código php antes de fopen:

    if(!file_exists(dirname($file))) 
        mkdir(dirname($file));

    Esto que me ayude.

    OriginalEl autor onebraveman

Dejar respuesta

Please enter your comment!
Please enter your name here