Я использую 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»?
В дополнение к упомянутым разрешениям для файлов вы также должны убедиться, что у вас нет проблем с разрешениями в 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>
с фактическим местоположением вашего каталога «отчетов».
Других решений пока нет …