需要什么权限才能允许Apache-PHP写入文件夹?
问题描述:
我使用PHP 5.4,Apache 2运行RHEL 7,它需要PHP-FPM。需要什么权限才能允许Apache-PHP写入文件夹?
我创建了一个名为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”目录的实际位置。
文件夹需要077(读写执行)和文件需要644权限。 –