2011-05-09 64 views
1

我使用Ubuntu 11.04。 我在/ var/WWW具有所有者和組脛骨(這是我的名字)無法打開文件。/var/www應擁有哪些所有者?

我用一個簡單的fopen PHP

$myFile = "testFile.txt"; 
$fh = fopen($myFile, 'w') or die("can't open file"); 
$stringData = "Bobby Bopper\n"; 
fwrite($fh, $stringData); 
$stringData = "Tracy Tanner\n"; 
fwrite($fh, $stringData); 
fclose($fh); 

但它給「無法打開文件」的錯誤。

它涉及到www目錄的所有者和組? 它應該是根?或www數據?

如果所有者無事可做,那麼代碼會給出錯誤?

在此先感謝。

+0

可否請您發佈您在運行代碼時得到的完整php錯誤 – boug 2011-05-09 17:00:15

+0

糟糕我的壞。我只注意到死亡調用,當然殺死代碼執行以顯示傳遞給它的消息 - 因此我以前的評論是無效的。 @shin你是否設法解決了這個問題? – boug 2011-05-09 18:48:05

回答

0

假設您運行的是Web服務器(如Apache),則服務器進程的所有者必須有權寫入該文件,因爲您在'w'模式下打開該文件。這不一定要根據所有權;它也可以通過模式完成。要了解文件模式,請運行:man chmod

1

你應該給fopen一個完整的路徑,不僅是一個文件名,並且確保運行php代碼的用戶也有寫入權限(chmod爲666)。

$myFile = "/var/www/testFile.txt"; 
$fh = fopen($myFile, 'w') or die("can't open file"); 
1

fopen如果失敗會返回警告,打開錯誤報告以獲取有關您的錯誤的更多詳細信息。在您的代碼塊之前添加以下行。

error_reporting(-1); 
相關問題