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

What permissions are required to allow Apache-PHP write to a folder?

我是 运行 RHEL 7,PHP 5.4,Apache 2,需要 PHP-FPM。

我创建了一个名为 WWW 的组并将 Apache 用户添加到其中。 PHP.

一切正常

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

报告具有以下权限

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

当我使用以下 PHP 代码将文件写入 "reports" 时,出现权限错误

$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 写入目录,您需要通过给它 httpd_sys_rw_content_t 上下文来告诉 SELinux 允许它,这可以使用这些命令来完成。

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

请务必将 <location> 替换为 "reports" 目录的实际位置。