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

需要什么权限才能允许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"); 
} 

什么是正确的权限,我需要在“报告”目录中使用?

+0

文件夹需要077(读写执行)和文件需要644权限。 –

除了提到的文件权限外,还需要确保您没有遇到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”目录的实际位置。