如何让 vboxweb 在启动时正确启动

rol*_*hsp 9 virtualbox systemd 15.10

我最近将无头服务器更新到 Ubuntu Server 15.10。

  • 基本的 Ubuntu 服务器
  • Xubuntu 最小安装

我已经从默认的 Ubuntu 源安装了 virtualbox 5.0.14。我已经下载并安装了virtualbox/5.0.14/Oracle_VM_VirtualBox_Extension_Pack-5.0.14-105127.vbox-extpack

vbox在 group 中定义了一个用户vboxusers,基本上 virtualbox 本身工作正常。但我希望它可以通过使用 phpvirtualbox 进行远程配置。

我下载并安装 phpvirtualbox-5.0-5.zip

我添加VBOXWEB_USER=vbox到文件/etc/default/virtualbox

从另一台机器访问网页时,出现错误Could not connect to host(请参阅msg1,并在msg2 中有更多详细信息,但我认为这并不重要。)。

使用sudo netstat -peanut,看起来 vboxwebsrv 没有使用正确的 IP 地址。它显示了本地地址::1:18083而不是预期的192.168.1.12:18083

经过一番谷歌搜索,我添加VBOXWEB_HOST=192.168.1.12到 file /etc/default/virtualbox,但重新启动服务后仍然没有变化。

但是,如果我使用 停止服务sudo systemctl stop vboxweb.service并使用 手动启动它sudo vboxwebsrv -H 192.168.1.12,那效果很好。sudo netstat -peanut现在用预期的 IP/端口地址报告它。

我查看的大部分文档都提到了 init.d 并且我开始认为也许 systemd 不使用该/etc/default/virtualbox文件...我发现我可以编辑该文件/lib/systemd/system/vboxweb.service,并-H 192.168.1.12ExecStart命令中添加了 a 。重新启动 vboxweb 服务后,它工作了!:o)

启用服务,使其在启动时自动启动:

须藤 systemctl 启用 vboxweb.service

但是重新启动后sudo netstat -peanut,虽然 ps -ef 显示服务已启动,但根本没有显示 vboxweb :

$ps -ef

根 1383 1 0 mars02 ? 00:00:00 /usr/lib/virtualbox/vboxwebsrv --pidfile /run/vboxweb.pid --background -H 192.168.1.12 -p 18083

重新启动服务将修复它,但在重新启动后它不会正确出现。

所以我在想也许 vboxweb.service 在 systemd 初始化过程中启动得太早了。所以我vboxweb.service再次编辑了文件,使用After=apache2.service(后来也尝试过After=multi-user.target),并验证systemd-analyse plotvboxweb 的 init 确实移动到初始化序列的最后。但是,wboxweb 仍然没有被列入netstat -peanut

所以最后我的问题:

  1. init.d 和 systemd 之间是否存在冲突,例如,virtualbox(来自标准 Ubuntu 源)依赖于 init.d 特定的文件,而 Ubuntu 已转移到 systemd?
  2. 文件中的VBOXWEB_HOST设置/etc/default/virtualbox无效的任何其他原因?
  3. 编辑 vboxweb.service 文件是否正确(特别是使用 host 参数)。
  4. (这是重要的一个)如何在启动时使用正确的 IP/端口设置启动和运行 vboxweb 服务?我完全没有想法:/

PS:我知道我可以大大缩短这篇文章,只将主要问题保留在这里,因为我已经解决了其余的问题(只留下几个问题),但我认为让其他人看看我的方法会很有趣我已经解决了这个问题。

BR,罗尔夫

rol*_*hsp 6

经过更多的谷歌搜索和捣乱,我终于想出了一个解决方案:

1)我得出的结论是该/etc/defaults/virtualbox文件似乎对任何东西都没有任何影响(只是 init.d 时代的残余?)。因此该文件中的用户和组设置被浪费了。

解决方案:增加User=vboxGroup=vboxusers[Service]中的部分vboxweb.service文件。

2) 我遇到的一些问题是由于vboxweb.config文件引用了文件/run夹中的 pid文件,并且vbox没有对该文件夹的写访问权限。首先,我尝试创建一个由 拥有的子文件夹,vbox用于存储 pid 文件,但我了解到该/run文件夹在启动时会被擦除,包括所有子文件夹。

解决方案:vboxhomedir 中创建一个子文件夹,并vboxweb.config使用该位置更新文件。

3)出于某种原因(我仍然无法理解),参考实际 IP 地址 192.168.1.12,在config.phpphpvirtualbox文件夹中)和vboxweb.config文件中(如原始帖子中所述),在启动时不起作用。(稍后重新启动该服务将起作用。)

解决方案:config.php和都更新vboxweb.config为 IP 地址 127.0.0.1 而不是 192.168.1.12。

案件结案!:o) ...除了所有关于为什么事情是这样的问题,但我可以接受:o)

BR,罗尔夫