So che è una domanda molto vecchia, ma volevo aggiungere la buona soluzione con qualche spiegazione approfondita. Dovrai eseguire due istruzioni su sistemi simili a Ubuntu e poi funzionerà a meraviglia.
Le autorizzazioni in Linux possono essere rappresentate con tre cifre. La prima cifra definisce l'autorizzazione del proprietario dei file. La seconda cifra le autorizzazioni di un gruppo specifico di utenti. La terza cifra definisce le autorizzazioni per tutti gli utenti che non sono il proprietario né il membro del gruppo.
Il server web dovrebbe essere eseguito con un id che è un membro del gruppo. Il webserver non dovrebbe mai funzionare con lo stesso ID del proprietario dei file e delle directory. In Ubuntu viene eseguito Apache con l'id www-data. Quell'ID dovrebbe essere un membro del gruppo per il quale sono specificate le autorizzazioni.
Per dare alla directory in cui si desidera modificare il contenuto dei file i diritti appropriati, eseguire l'istruzione:
find %DIR% -type d -exec chmod 770 {} \;
Ciò implicherebbe nella questione dell'OP che i permessi per la directory% ROOT% / database dovrebbero essere modificati di conseguenza. È quindi importante non avere file all'interno di quella directory che non dovrebbero mai essere modificati o rimossi. È quindi buona pratica creare una directory separata per i file il cui contenuto deve essere modificato.
I permessi di lettura (4) per una directory significa essere in grado di raccogliere tutti i file e le directory con i loro metadati all'interno di una directory. I permessi di scrittura (2) danno il permesso di cambiare il contenuto della directory. Implicando l'aggiunta e la rimozione di file, la modifica dei permessi, ecc. Il permesso di esecuzione (1) significa che hai il diritto di entrare in quella directory. Senza quest'ultimo è impossibile approfondire la directory. Il server web necessita di autorizzazioni di lettura, scrittura ed esecuzione quando il contenuto di un file deve essere modificato. Quindi ha bisogno del gruppo la cifra 7.
La seconda affermazione è nella questione del PO:
find %DOCUMENT_ROOT%/database -type f -exec chmod 760 {} \;
È necessario essere in grado di leggere e scrivere un documento, ma non è necessario per eseguire il file. Il 7 è dato al proprietario dei file, il 6 al gruppo. Il server web non ha bisogno dell'autorizzazione per eseguire il file per modificarne il contenuto. Quelle autorizzazioni di scrittura dovrebbero essere assegnate solo ai file in quella directory.
A tutti gli altri utenti non dovrebbe essere concessa alcuna autorizzazione.
Per le directory che non richiedono di modificare i propri file, sono sufficienti 5 autorizzazioni di gruppo. Documentazione sui permessi e alcuni esempi:
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
file per qualcosa che potrebbe negare l'accesso al file?