我正在尝试通过 Web 界面运行应用程序 - 更具体地说是源专用服务器。我正在使用以下代码执行此操作:
$old_path = getcwd();
chdir("[PATH]");
$tmp = exec("srcds -console -game tf +map ctf_2fort");
chdir($old_path);
不幸的是,该站点挂起,并且从未加载。通过命令提示符运行相同的命令可以完美运行,运行exec("echo %cd%")
输出正确的路径,我可以从文件夹中运行其他东西(例如简单地回显的示例 .bat %time%
)等等。
我已经能够通过将标准输出重定向到/dev/null/
(用$tmp =
以下内容替换该行:)来加载站点
$tmp = exec("srcds -console -game tf +map ctf_2fort > /dev/null");
虽然这允许站点加载,但应用程序永远不会运行(并且该进程不会出现在任务管理器中)。
我试过输出到一个文件,但这只是输出两行,第一行说Using breakpad minidump system
,第二行是空的。它也不会启动应用程序。
$tmp = exec("srcds -console -game tf +map ctf_2fort > tmp.txt");
我不知道我应该做什么——我对 PHP 还很陌生,所以如果我有什么明显的遗漏,请说出来。