2013-06-30 146 views
4

我有幾個遊戲服務器,我需要運行shell腳本來獲得frequality。我試圖找出如何通過同一臺服務器上的網頁來運行這些腳本。這是一個Ubuntu專用服務器。通過PHP執行.sh腳本

網站文件通過/var/www/...所在的文件.SH我需要手動運行位於/home/amservers/.../start.sh

我看了其他答案,我仍然無法弄清楚。如何找到文件並存儲它,然後運行exec()?

回答

9

你可以只使用了shell_exec()函數在PHP中:

http://php.net/manual/en/function.shell-exec.php

shell_exec('sh script.sh'); 

如果你想使用的變量($ 1,$ 2等在bash),你可以只輸入:

shell_exec('sh script.sh variable1 variable2'); 
+0

雖然我如何找到文件?是絕對外殼的路徑 – devs

+0

您可以只鍵入/然後在/目錄中。從那裏你可以去像/var/www/yourShellScript.sh –

0

您可以使用絕對路徑或相對路徑。對於相對路徑,當前目錄通常是PHP文件的目錄。如果即使使用絕對路徑也無法訪問腳本,則文件系統訪問權限可能存在問題。請記住,PHP腳本通常作爲Web服務器(系統)用戶帳戶執行。

您的shell腳本應該存儲在應用程序樹附近或內部的某個位置,以便您可以授予他們PHP腳本(即Web服務器)的訪問權限,而不會影響您的文件系統安全性。

如果要檢查腳本的輸出上的瀏覽器比你可以簡單地使用

的var_dump(了shell_exec(「SH script.sh」))

0

;

的var_dump(了shell_exec( 'SH script.sh變量1變量2'));