Какие разрешения требуются для разрешения записи Apache-PHP в папку?

Я использую RHEL 7 с PHP 5.4, Apache 2, для которого требуется PHP-FPM.

Я создал группу под названием WWW и добавил в нее пользователя Apache. Все отлично работает на PHP.

Теперь мне нужно записать некоторые файлы в каталог под названием «отчеты».

Отчеты имеют следующие разрешения

drwxrwsr-x.  2 ec2-user www        6 Aug 17 13:23 reports

Когда я использую следующий код PHP для записи файла в «отчеты», я получаю ошибку разрешений

$handle = fopen('text.xls', 'w+');
{
if (!fwrite($handle, $content))
die("cant' write");
}

Какие правильные разрешения мне нужно использовать в каталоге «reports»?

1

Решение

В дополнение к упомянутым разрешениям для файлов вы также должны убедиться, что у вас нет проблем с разрешениями в SELinux; по умолчанию он работает на RHEL 7.

Ты можешь использовать ls -lZ <location> чтобы увидеть, каковы текущие контексты SELinux для данного файла или каталога.

По умолчанию, /var/www/html имеет httpd_sys_content_t контекст, который будет препятствовать записи httpd в этот каталог. Чтобы разрешить httpd выполнять запись в каталог, вы должны указать SELinux разрешить его, указав httpd_sys_rw_content_t контекст, который можно сделать с помощью этих команд.

sudo semanage fcontext -a -t httpd_sys_rw_content_t <location>
sudo restorecon -v <location>

Не забудьте заменить <location> с фактическим местоположением вашего каталога «отчетов».

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]