通过PHP执行.sh脚本


Executing .sh scripts via PHP

我有一些游戏服务器,需要它们来运行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'));