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