Я знаю, что это очень старый вопрос, но я хотел добавить хорошее решение с подробным объяснением. Вам нужно будет выполнить два оператора в системах, подобных Ubuntu, и тогда это будет работать как шарм.
Разрешения в Linux могут быть представлены тремя цифрами. Первая цифра определяет разрешение владельца файлов. Вторая цифра - права доступа определенной группы пользователей. Третья цифра определяет разрешения для всех пользователей, которые не являются ни владельцем, ни членом группы.
Веб-сервер должен работать с идентификатором, который является членом группы. Веб-сервер никогда не должен работать с тем же идентификатором, что и владелец файлов и каталогов. В Ubuntu запускается apache под идентификатором www-data. Этот идентификатор должен быть членом группы, для которой указаны разрешения.
Чтобы предоставить каталогу, в котором вы хотите изменить содержимое файлов, соответствующие права, выполните оператор:
find %DIR% -type d -exec chmod 770 {} \;
. Это означало бы в вопросе OP, что разрешения для каталога% ROOT% / database должны быть соответственно изменены. Поэтому важно, чтобы в этом каталоге не было файлов, которые никогда не должны изменяться или удаляться. Поэтому рекомендуется создать отдельный каталог для файлов, содержимое которых необходимо изменить.
Разрешение на чтение (4) для каталога означает возможность собирать все файлы и каталоги с их метаданными в каталоге. Разрешения на запись (2) дают разрешение на изменение содержимого каталога. Подразумевает добавление и удаление файлов, изменение разрешений и т. Д. Разрешение на выполнение (1) означает, что вы имеете право войти в этот каталог. Без последнего невозможно углубиться в каталог. Веб-серверу требуются разрешения на чтение, запись и выполнение, когда необходимо изменить содержимое файла. Для этого нужно сгруппировать цифру 7.
Второе утверждение относится к ОП:
find %DOCUMENT_ROOT%/database -type f -exec chmod 760 {} \;
Уметь читать и писать документ требуется, но не требуется для выполнения файла. 7 присваивается владельцу файлов, 6 - группе. Веб-серверу не требуется разрешение на выполнение файла, чтобы изменить его содержимое. Эти разрешения на запись должны быть предоставлены только файлам в этом каталоге.
Всем остальным пользователям не следует давать никаких разрешений.
Для каталогов, которые не требуют изменения своих файлов, достаточно разрешений группы 5. Документация о разрешениях и несколько примеров:
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
файл на предмет чего-либо, что могло бы препятствовать доступу к файлу?