好了,所以我想換一個目錄777的文件模式,所以我使用的線路PHP執行外部命令 - 如何在用戶名和密碼所需
exec('chmod -R 777' . $dir);
其中$ dir是的目錄路徑目錄我想改變
它似乎並不工作,但我沒有得到它的錯誤,如果用戶我執行的腳本是一個sudo用戶,所以我必須輸入密碼後,我進入該命令,我將如何做到這一點?會不會像exec('chmod -R 777' . $dir\n 'password');
?
好了,所以我想換一個目錄777的文件模式,所以我使用的線路PHP執行外部命令 - 如何在用戶名和密碼所需
exec('chmod -R 777' . $dir);
其中$ dir是的目錄路徑目錄我想改變
它似乎並不工作,但我沒有得到它的錯誤,如果用戶我執行的腳本是一個sudo用戶,所以我必須輸入密碼後,我進入該命令,我將如何做到這一點?會不會像exec('chmod -R 777' . $dir\n 'password');
?
信息我從這個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");
在這裏,我只是複製粘貼該網站的內容,因爲即使鏈接中斷這可能會有所幫助。 – gvgvgvijayan 2014-09-03 12:57:10
@ seanyt123如果此答案解決了您的問題,請接受答案,這可能會增加stackoverflow中的質量答案,方法是單擊投票下方符號下方的刻度標記。 – gvgvgvijayan 2014-09-03 12:59:38