Sé que es una pregunta muy antigua, pero quería añadir la buena solución con un poco de profundidad explicación. Tendrás que ejecutar dos instrucciones en Ubuntu como sistemas y luego funciona como un encanto.
Los permisos en Linux se pueden representar con tres dígitos. El primer dígito define el permiso del propietario de los archivos. El segundo dígito los permisos de un grupo específico de usuarios. El tercer dígito define los permisos para todos los usuarios que no son el propietario ni miembro del grupo.
Se supone que el servidor web se ejecutará con una identificación que sea miembro del grupo. El servidor web nunca debe ejecutarse con la misma identificación que el propietario de los archivos y directorios. En Ubuntu ejecuta apache bajo el id www-data. Esa identificación debe ser un miembro del grupo para el que se especifican los permisos.
Para dar el directorio en el que desea cambiar el contenido de los archivos de los derechos adecuados, ejecutar la instrucción:
find %DIR% -type d -exec chmod 770 {} \;
.Es implicaría en la cuestión de la OP que los permisos para el directorio% ROOT%/database debe cambiarse en consecuencia. Por eso es importante no tener archivos dentro de ese directorio que nunca deberían cambiarse o eliminarse. Por lo tanto, es una buena práctica crear un directorio separado para los archivos cuyo contenido debe modificarse.
Leer los permisos (4) para un directorio significa poder recopilar todos los archivos y directorios con sus metadatos dentro de un directorio. Los permisos de escritura (2) dan el permiso para cambiar el contenido del directorio. Implica agregar y eliminar archivos, cambiar permisos, etc. Permiso de ejecución (1) significa que tiene derecho a acceder a ese directorio. Sin este último es imposible profundizar en el directorio. El servidor web necesita permisos de lectura, escritura y ejecución cuando se debe cambiar el contenido de un archivo. Para ello necesita el grupo del dígito 7.
La segunda afirmación es en la cuestión de la OP:
find %DOCUMENT_ROOT%/database -type f -exec chmod 760 {} \;
Ser capaz de leer y escribir un documento que se requiere, pero no se requiere para ejecutar el archivo . El 7 se le da al propietario de los archivos, el 6 al grupo. El servidor web no necesita tener el permiso para ejecutar el archivo para cambiar su contenido. Esos permisos de escritura solo se deben dar a los archivos en ese directorio.
No se debe dar ningún permiso a los demás usuarios.
Para los directorios que no requieren cambiar sus archivos son permisos de grupo de 5 suficientes. documentación acerca de los permisos y algunos ejemplos:
https://wiki.debian.org/Permissions
https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions
http://www.linux.org/threads/file-permissions-chmod.4094/
¿Ha examinado el archivo 'php.ini' en busca de algo que pueda denegar el acceso al archivo? – Hello71
también asegúrese de que el directorio esté bien chmod'd –
intente también con el nombre de archivo absoluto. Puede ser que su interpretación de la carpeta actual sea diferente a la de – laher