PHP Exec不启动应用程序

时间:2013-07-04 18:26:11

标签: php exec

我正在尝试通过Web界面运行应用程序 - 更具体地说是源专用服务器。我使用以下代码执行此操作:

$old_path = getcwd();
chdir("[PATH]");
$tmp = exec("srcds -console -game tf +map ctf_2fort");
chdir($old_path);

不幸的是,该网站挂起,永远不会加载。通过命令提示符运行完全相同的命令可以正常工作,运行exec("echo %cd%")输出正确的路径,我可以运行其他内容(例如简单地回显%time%的示例.bat),依此类推等等。

我已经能够通过将stdout重定向到/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很新,所以如果有任何明显的东西我都不知道,请说出来。

1 个答案:

答案 0 :(得分:0)

尝试在命令中添加2>&1。您还可以指定是否希望输出的每一行都显示为数组,如下所示:

$tmp = exec("srcds -console -game tf +map ctf_2fort 2>&1", $what_happened);
print_r($what_happened);

如果启用了安全模式,您可能会遇到一些问题...如果上述建议对您不起作用,您还可以查看system()和/或passthru()命令