2011-04-26 72 views
0

儘管file_put_contents和file_get_contents適用於/var/www/html/,但它們不適用於具有相同所有者(apache)和chmod(644)的任何其他目錄。可能是什麼原因?感謝您的幫助...file_put_contents和file_get_contents不工作其他目錄

編輯:

工作代碼:

$contents = file_get_contents("/var/www/html/osman"); 
$contents = str_replace("mehmet", '', $contents); 
file_put_contents("/var/www/html/osman", $contents); 

不工作代碼:

$contents = file_get_contents("/opt/blaris/etc/webfilter/lists/osman"); 
$contents = str_replace("mehmet", '', $contents); 
file_put_contents("/opt/blaris/etc/webfilter/lists/osman", $contents); 

,併爲我悲傷前兩個文件具有相同的所有者和chmod。 ..

+0

你得到任何特定的錯誤消息,當您嘗試使用另一個目錄? – Demento 2011-04-26 06:40:08

+0

如何顯示一些代碼? – 2011-04-26 06:42:27

+0

@Demento不,他們只返回false – ibrahim 2011-04-26 06:48:14

回答

1

易卜拉欣

正如你所說的那樣,函數(get和put)返回false。我很確定這是由不正確的設置文件/目錄權限(前一段時間有同樣的問題)造成的。

我解決它通過檢查路徑(在你的情況「的/ opt/blaris的/ etc/web過濾器/列表/」),如果所有的權限設置,因爲他們應該。這還包括列表目錄本身和上述所有目錄的讀/寫權限。

所以由Apache用戶請確認您的路徑中的所有目錄(至少)可執行文件(如
是/ opt可執行apache用戶?
是/ opt/blaris可執行...
是/ opt/blaris /等可執行... )

還要確保PHP腳本apache用戶下運行真的(<?php echo shell_exec('whoami'); ?>應該給你的信息)

如果你想調試它的外殼級別,你可以嘗試以下命令並查看wh在輸出端說(如果你有權利在服務器上執行命令):

sudo -u apache touch /opt/blaris/etc/webfilter/lists/osman

希望幫助;)

相關問題