Me chmod ed el directorio a 777, mismo con el contenido del directorio. Aún así, tengo un error «permiso denegado». Hace PHP tira este error si apache no es el grupo/propietario, independientemente de los permisos del archivo? Aquí está la llamada que está fallando:

rename('/correct/path/to/dir/1', '/correct/path/to/dir/2');

OriginalEl autor Andrew Hedges | 2008-10-12

5 Comentarios

  1. 11

    Editar el directorio de nivel superior, por lo que el usuario de PHP debe tener acceso de escritura en ese directorio.

    OriginalEl autor acrosman

  2. 2

    Eso es probablemente debido a que apache no es el propietario del directorio padre. El cambio de nombre (o movimiento) de un archivo es básicamente la misma cosa como la creación de un nuevo archivo.

    OriginalEl autor kjensen

  3. 2

    para aclarar, php sólo puede cambiar el nombre de los directorios que tiene la propiedad real sobre:

    -rwxrwxrwx user   user   temp/
    -rwxr-xr-x apache apache temp2/
    -rw-r--r-- user   user   script.php

    asumir script.php está tratando de cambiar el nombre de estos dos directorios:

    //this operation fails as PHP (running as apache) does not own "temp",
    //despite having write permissions    
    rename('temp', 'temp.bak');
    
    //this operation is successful as PHP owns "temp2"
    rename('temp2, 'temp.bak'); 
    Cierto en modo seguro, pero en todos los demás casos en que la propiedad no es necesario – simple chmod permisos adecuados es suficiente.

    OriginalEl autor Owen

  4. 0

    Trate de ejecutar el siguiente script:

    print_r(posix_getpwuid(getmyuid()));
    print_r(pathinfo($YOUR_PATH));

    Y ver lo que devuelve.

    OriginalEl autor Ross

  5. 0

    Otra cosa que podría ayudar a este tipo de situaciones es tratar de la disminución de los permisos. He visto ocasiones en las que apache niega una solicitud de permiso para hacer algo porque sus permisos son demasiado alta. Mi conjetura es que esto es para fomentar la buena práctica de seguridad.

    OriginalEl autor Jason Baker

Dejar respuesta

Please enter your comment!
Please enter your name here