允许 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" 目录的实际位置。
我是 运行 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" 目录的实际位置。