2017-08-17 76 views
1

我使用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權限。 –

回答

2

除了提到的文件權限外,還需要確保您沒有遇到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」目錄的實際位置。

相關問題