我有一些游戏服务器,我需要运行shell脚本以获得频率。我试图弄清楚如何通过同一台服务器上的网页运行这些脚本。这是一个Ubuntu Dedicated服务器。
网站文件位于/var/www/...
我需要手动运行的.sh文件位于/home/amservers/.../start.sh
。
我看了其他答案,但我仍然无法理解。如何找到并存储它然后运行exec()?
答案 0 :(得分:9)
你可以在PHP中使用shell_exec()函数:
http://php.net/manual/en/function.shell-exec.php
shell_exec('sh script.sh');
如果你想使用bash中的变量($ 1,$ 2等),你可以输入:
shell_exec('sh script.sh variable1 variable2');
答案 1 :(得分:0)
您可以使用绝对路径或相对路径。对于相对路径,当前目录通常是PHP文件。如果即使使用绝对路径也无法访问脚本,则文件系统访问权限可能存在问题。请记住,PHP脚本通常作为Web服务器(系统)用户帐户执行。
您的shell脚本应该存储在应用程序树附近或内部的某个位置,这样您就可以将访问权限授予PHP脚本(即Web服务器),而不会过多地损害您的文件系统安全性。
答案 2 :(得分:0)
如果你想在浏览器上检查脚本输出而不是简单地使用
var_dump(shell_exec(' sh script.sh'));
或
var_dump(shell_exec(' sh script.sh variable1 variable2'));