我有幾個遊戲服務器,我需要運行shell腳本來獲得frequality。我試圖找出如何通過同一臺服務器上的網頁來運行這些腳本。這是一個Ubuntu專用服務器。通過PHP執行.sh腳本
網站文件通過/var/www/...
所在的文件.SH我需要手動運行位於/home/amservers/.../start.sh
。
我看了其他答案,我仍然無法弄清楚。如何找到文件並存儲它,然後運行exec()?
我有幾個遊戲服務器,我需要運行shell腳本來獲得frequality。我試圖找出如何通過同一臺服務器上的網頁來運行這些腳本。這是一個Ubuntu專用服務器。通過PHP執行.sh腳本
網站文件通過/var/www/...
所在的文件.SH我需要手動運行位於/home/amservers/.../start.sh
。
我看了其他答案,我仍然無法弄清楚。如何找到文件並存儲它,然後運行exec()?
你可以只使用了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');
您可以使用絕對路徑或相對路徑。對於相對路徑,當前目錄通常是PHP文件的目錄。如果即使使用絕對路徑也無法訪問腳本,則文件系統訪問權限可能存在問題。請記住,PHP腳本通常作爲Web服務器(系統)用戶帳戶執行。
您的shell腳本應該存儲在應用程序樹附近或內部的某個位置,以便您可以授予他們PHP腳本(即Web服務器)的訪問權限,而不會影響您的文件系統安全性。
如果要檢查腳本的輸出上的瀏覽器比你可以簡單地使用的var_dump(了shell_exec(「SH script.sh」))
;
或
的var_dump(了shell_exec( 'SH script.sh變量1變量2'));
雖然我如何找到文件?是絕對外殼的路徑 – devs
您可以只鍵入/然後在/目錄中。從那裏你可以去像/var/www/yourShellScript.sh –