2014-09-03 64 views
2

好了,所以我想換一個目錄777的文件模式,所以我使用的線路PHP執行外部命令 - 如何在用戶名和密碼所需

exec('chmod -R 777' . $dir); 

其中$ dir是的目錄路徑目錄我想改變

它似乎並不工作,但我沒有得到它的錯誤,如果用戶我執行的腳本是一個sudo用戶,所以我必須輸入密碼後,我進入該命令,我將如何做到這一點?會不會像exec('chmod -R 777' . $dir\n 'password');

回答

1

信息我從這個site

得到執行系統命令通過PHP

很多,我們需要執行在Linux系統上的系統命令一個時間 - 刪除一個目錄,或重新啓動服務。但是,由於Apache不能以root權限運行,因此使用PHP的exec(),system()或passthru()函數來實現這一點幾乎是不可能的。

對此的解決方案非常簡單,特別是在Ubuntu上。 Apache的用戶www-data需要被授予使用sudo執行某些應用程序的權限。

1.Run命令sudo visudo

2.At文件的末尾,添加以下

www-data ALL=NOPASSWD: /sbin/iptables, /usr/bin/du

這是假設你想運行iptables和使用超級用戶杜(根)權限。但是,如果要使用超級用戶權限運行的每個應用程序,然後添加以下的,而不是什麼上面

www-data ALL=NOPASSWD: ALL

3.That的它,現在以下列方式使用exec()您.PHP腳本中

exec ("sudo iptables -P FORWARD ACCEPT");

+0

在這裏,我只是複製粘貼該網站的內容,因爲即使鏈接中斷這可能會有所幫助。 – gvgvgvijayan 2014-09-03 12:57:10

+2

@ seanyt123如果此答案解決了您的問題,請接受答案,這可能會增加stackoverflow中的質量答案,方法是單擊投票下方符號下方的刻度標記。 – gvgvgvijayan 2014-09-03 12:59:38

相關問題