允许 Apache-PHP 写入文件夹需要什么权限?



我正在运行带有PHP 5.4,Apache 2的RHEL 7,它需要PHP-FPM。

我创建了一个名为WWW的组,并将Apache用户添加到其中。对于PHP来说一切正常。

我现在需要将一些文件写入名为"reports"的目录。

报表具有以下权限

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");
}

我需要在"报告"目录上使用哪些正确的权限?

除了提到的文件权限外,您还需要确保 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>替换为"reports"目录的实际位置。

最新更新