我有一些游戏服务器,需要它们来运行shell脚本以提高频率。我正试图弄清楚如何通过同一服务器上的网页运行这些脚本。这是一个Ubuntu专用服务器。
网站文件通过/var/www/...
定位。我需要手动运行的.sh文件位于/home/amservers/.../start.sh
。
我看了其他的答案,还是想不通。如何定位文件并存储它,然后运行exec()?
您可以在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');
您可以使用绝对路径或相对路径。对于相对路径,当前目录通常是PHP文件的。如果即使使用绝对路径也无法访问脚本,那么文件系统访问权限可能会出现问题。请记住,PHP脚本通常作为web服务器(系统)的用户帐户执行。
您的shell脚本应该存储在应用程序树附近或内部的某个位置,这样您就可以将它们授予PHP脚本(即web服务器)访问权限,而不会对文件系统的安全性造成太大影响。
如果你想在浏览器上检查脚本的输出,你可以简单地使用
var_dump(shell_exec('sh-script.sh'));
或
var_dump(shell_exec('sh script.sh variable1 variable2'));