2008-10-12 15 views

Respuesta

11

Está editando el directorio de nivel superior, por lo que el usuario de PHP necesita tener acceso de escritura a ese directorio.

0

intente ejecutar el siguiente script:

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

y ver lo que devuelve.

2

Eso es probablemente porque apache no es el propietario del directorio principal. Renombrar (o mover) un archivo es básicamente lo mismo que crear un archivo nuevo.

2

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 

asumen 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'); 
+0

Verdadero en modo seguro, pero en todos los demás casos no es necesario ser propietario, basta un chmod simple con los permisos adecuados. – brezanac

0

Otra cosa que podría ayudar a estos tipos de situaciones es intentar realmente bajar los permisos. He visto ocasiones en las que apache niega el permiso de una aplicación para hacer algo porque sus permisos también están establecidos alto. Mi suposición es que esto es para fomentar buenas prácticas de seguridad.

Cuestiones relacionadas