2013-01-03 100 views
0

我試圖遞歸文件模式與PHP的所有目錄,並使用:PHP的exec找不工作

find /path/to/dir -type d -exec chmod 777 {} \; 

工作在命令行很大,但使用它從服務器:

exec('find /path/to/dir -type d -exec chmod 777 {} \;'); 

什麼都不做。有任何想法嗎?它是否與權限相關?路徑是真正的路徑服務器級別。

+0

你已經設置了'error_reporting(E_ALL); ini_set('display_errors',1);',對嗎? – Charles

+1

當然,這是我做的第一件事情來檢查錯誤 – David

+0

'exec'版本從第一個缺少'3'。 –

回答

1

當你在命令行上運行它時,你將它作爲你的用戶運行,它可能是路徑的所有者。當你從PHP執行exec()時,Apache用戶正在執行此操作。只有一個文件/目錄的所有者可以chmod它。要確認是這種情況,請嘗試從PHP CLI Interactive Shell運行您的exec()腳本。在交互式Shell中,您可以運行PHP代碼,但它將以您的用戶身份執行。

如果事實證明是原因,您必須首先chown目錄,它的子文件/目錄由Apache用戶擁有。