Je sais que c'est une question très ancienne, mais je voulais ajouter la bonne solution avec une explication approfondie. Vous devrez exécuter deux instructions sur des systèmes comme Ubuntu, puis cela fonctionnera comme un charme.
Les autorisations sous Linux peuvent être représentées par trois chiffres. Le premier chiffre définit l'autorisation du propriétaire des fichiers. Le deuxième chiffre les autorisations d'un groupe spécifique d'utilisateurs. Le troisième chiffre définit les autorisations pour tous les utilisateurs qui ne sont ni le propriétaire ni membre du groupe.
Le serveur Web est censé s'exécuter avec un identifiant membre du groupe. Le serveur Web ne doit jamais fonctionner avec le même identifiant que le propriétaire des fichiers et répertoires. Dans Ubuntu exécute apache sous l'id www-data. Cet identifiant doit être membre du groupe pour lequel les autorisations sont spécifiées.
Pour donner au répertoire dans lequel vous souhaitez modifier le contenu des fichiers les droits appropriés, exécutez l'instruction:
find %DIR% -type d -exec chmod 770 {} \;
Cela impliquerait dans la question de l'OP que les permissions du répertoire% ROOT% / database devraient être modifiées en conséquence. Il est donc important de ne pas avoir de fichiers dans ce répertoire qui ne devraient jamais être modifiés ou supprimés. Il est donc recommandé de créer un répertoire distinct pour les fichiers dont le contenu doit être modifié.
Les permissions de lecture (4) pour un répertoire signifie être capable de collecter tous les fichiers et répertoires avec leurs métadonnées dans un répertoire. Les permissions d'écriture (2) donnent la permission de changer le contenu du répertoire. Impliquant l'ajout et la suppression de fichiers, la modification des autorisations, etc. L'autorisation d'exécution (1) signifie que vous avez le droit d'aller dans ce répertoire. Sans ce dernier, il est impossible d'approfondir le répertoire. Le serveur Web a besoin d'autorisations de lecture, d'écriture et d'exécution lorsque le contenu d'un fichier doit être modifié. Pour cela, le groupe a besoin du chiffre 7.
La deuxième affirmation concerne la question du PO:
find %DOCUMENT_ROOT%/database -type f -exec chmod 760 {} \;
Être capable de lire et d'écrire un document est requis, mais ce n'est pas obligatoire pour exécuter le fichier. Le 7 est donné au propriétaire des fichiers, le 6 au groupe. Le serveur Web n'a pas besoin d'avoir l'autorisation d'exécuter le fichier pour modifier son contenu. Ces autorisations d'écriture ne doivent être accordées qu'aux fichiers de ce répertoire.
Tous les autres utilisateurs ne doivent recevoir aucune autorisation.
Pour les répertoires qui ne nécessitent pas de modifier ses fichiers, les autorisations de groupe de 5 sont suffisantes. Documentation sur les autorisations et quelques exemples:
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/
php.ini
fichier tout ce qui pourrait refuser l'accès au fichier?