2011-05-13 99 views
7

Possible Duplicate:
file_put_contents permission deniedfile_put_contents表示權限被拒絕?

我最近轉移了服務器,似乎file_put_contents不在新服務器上工作。

一切都一樣,這些文件夾被正確地chmodded,但由於某些原因,它不創建文件並將其中的內容。

我創建了一個測試以供您查看,模仿我們目前如何做:

file_put_contents("/home/user/public_html/test/test.progress", "test"); 

腳本正在運行在

/home/user/public_html/test.php 

/test folder is chmodded to 755 (777 makes no difference) 

我收到以下錯誤:

Warning: file_put_contents(/home/user/public_html/test/test.progress) [function.file-put-contents]: failed to open stream: Permission denied in /home/user/public_html/test.php on line 2 

是否需要更改服務器上的任何設置才能使用?哪裏不對?

+0

需要更多關於環境的信息。 – 2011-05-13 09:38:18

+2

服務器正在運行不同於該文件夾/測試的創建者的用戶 – konsolenfreddy 2011-05-13 09:39:10

+0

Cent OS,linux,服務器版本:Apache/2.0.63(Unix)mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4 PHP/5.3.6 – Latox 2011-05-13 09:39:32

回答

9

您可能使用了錯誤的用戶。檢查php是否使用擁有您正在編寫的目錄的相同用戶。 PHP經常使用wwwdata,所以如果目錄被修改爲755,這意味着用戶創建的目錄可以寫入,但其他人只能讀取。 chown到php用戶或chmod到777.

我個人在fastcgi上運行php,它運行的是一個獨特的用戶,所以我沒有這個問題,你可以考慮切換到fcgi。

+0

這也適用於文件test.progress。如果該文件已存在,請確保它也可由PHP用戶寫入。 – 2011-05-13 09:56:14

+0

我的是這個問題! - mamp pro,apache/web等在www/mysql下運行 - 而不是名稱/名稱:) – VeenarM 2013-07-13 23:39:32