我一直试图弄清楚如何做到这一整天。
简短版本:我必须使用php shell_exec函数管理一些虚拟机,到目前为止我无法做到这一点,因为apache是由用户vboxuser运行的用户www-data和virtualbox
从我到目前为止所读到的,我已经想到了3个可能的解决方案: 1.-在我的vboxuser上创建一个脚本,我可以从php调用它来管理虚拟机。 2.-将apache用户从www-data更改为vboxuser,这样我就可以通过php管理虚拟机 3.-重新安装VirtualBox,这次使用www-data作为我的用户。
我不确定这些是否有效,我不太确定哪种方法最好。有什么建议/想法吗?
提前致谢。
现在更详细的版本更长:
我有一台运行Ubuntu 10.04.2的远程服务器,在该服务器中我已经设置了VirtualBox,因此我可以运行多个WinXP实例来执行不同的任务。
一切都已设置好,我可以通过SSH管理虚拟机。如果我想以不同于创建它们的用户(目前为止仅用于创建虚拟机的用户)运行它们,我必须执行sudo -u vboxuser。
现在,我需要创建一个PHP脚本来管理这些虚拟机(我知道phpVirtualBox,但它不是我需要的)。如果我尝试使用php中的shell_exec()来运行虚拟机,我根本得不到任何答案(我已经测试过shell_exec正在我的服务器上运行)。
答案 0 :(得分:2)
您可以配置sudo以允许www-data以vboxuser身份执行命令 使用sudo visudo在/ etc / sudoers中添加一行,如
www-data(ALL)=(vboxuser)/ usr / bin / vboxmanage
检查男子sudoers获取更多信息
答案 1 :(得分:1)
要更改apache用户,您可以编辑:
/etc/apache2/envvars
并更改APACHE_RUN_USER = root
或者你可以从root的cron
执行它sudo crontab -e
HTH