0

我正在尝试做一个简单的项目来使用 PHP 脚本启动 VirtualBox VM。我的服务器是 win 7 Ultimate 并运行 php5.3 我正在使用 vboxmanage.exe 来启动服务器。cmd 在批处理文件中效果很好,或者直接输入到 cmd 行中。

当我使用:

exec("path to vboxmange.exe" startvm "vm name");

它不起作用。如果我将代码更改为:

exec(dir);

它工作正常。我做了一些搜索,每个人似乎都提到了 IIS_IUSRS 的权限。我将它设置为在 vboxmanage.exe 上读取并执行并尝试为 cmd.exe 执行此操作,但似乎无法让它允许我执行此操作,尽管它似乎没有必要,因为它可以运行其他 cmd,如 dir。

我的另一个理论是 exec 将整个 cmd 包装在 "" 中,当我尝试手动将其输入到 cmd 行时,这不起作用。我试图修剪它,但这不起作用,因为 exec 添加了它,所以我之前所做的任何事情都无法阻止它。

对另一种方法或它可能是什么的任何建议?

4

1 回答 1

0

execPHP 手册中

注意:启用安全模式后,您只能执行 safe_mode_exec_dir 中的文件。出于实际原因,目前不允许在可执行文件的路径中包含 .. 组件。

检查你safe_mode_exec_dir在你的值php.ini。我猜想默认情况下它会相当严格。

如果这不起作用,请查看评论。特别是,此评论可能对您有所帮助。

于 2012-11-27T20:58:27.067 回答