首先,需要安装一些支持工具

sudo apt install build-essential dkms  php-soap  unzip wget

下载 VirtualBox 安装包及扩展包

wget https://download.virtualbox.org/virtualbox/5.2.44/virtualbox-5.2_5.2.44-139111~Ubuntu~bionic_amd64.deb
wget https://download.virtualbox.org/virtualbox/5.2.44/Oracle_VM_VirtualBox_Extension_Pack-5.2.44.vbox-extpack

为什么要选择5.2版本而不选择最新的版本呢,因为我们要使用phpvirtualbox web界面来管理VirtualBox的虚拟机,因为phpvirtualbox目前只有匹配5.2版本的,并且ubuntu服务器要是18.04版本的,如果是16或20的版本也会有一大堆的坑

sudo dpkg -i virtualbox-5.2_5.2.44-139111~Ubuntu~bionic_amd64.deb
sudo apt --fix-broken install   ##修复安装

重新执行 上一个命令

sudo dpkg -i virtualbox-5.2_5.2.44-139111~Ubuntu~bionic_amd64.deb

安装完成后,运行systemctl命令来查看virtualbox内核模块是否已经加载

sudo systemctl status vboxdrv  #如果有问题请确定以下几点

1.添加当前用户到 VirtualBox 组
我们需要去创建并添加我们的系统用户到 vboxusers 组中。你也可以单独创建用户,然后将它分配到 vboxusers 组中,也可以使用已有的用户。我不想去创建新用户,因此,我添加已存在的用户到这个组中。请注意,如果你为 virtualbox 使用一个单独的用户,那么你必须注销当前用户,并使用那个特定的用户去登入,来完成剩余的步骤。
我使用的是我的用户名 sk,因此,我运行如下的命令将它添加到 vboxusers 组中。
sudo usermod -aG vboxusers sk
2.运行脚本来启动vboxdrv
sudo bash /usr/lib/virtualbox/vboxdrv.sh restart  来控制 vboxdrv 的状态,启动停止重新加载等 如果这条命令运行有问题,那么请检查编译环境 build-essential 是否安装
3. 在/ etc / default / virtualbox中添加(如果没有这个文件需要自己建一个)
  VBOXWEB_USER=sk
  VBOXWEB_HOST=127.0.0.1
4. 重启服务器 sudo  reboot

直到运行sudo systemctl status vboxdrv 命令时,这个vboxdrv状态为绿色的active 为止。到这里第一步就搞定了半步。

使用VirtualBox管理命令来安装扩展包

sudo vboxmanage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.44.vbox-extpack

如果前面有过失败的安装,那么重新安装需要加参数 --replace
sudo vboxmanage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-5.2.44.vbox-extpack

VirtualBox管理命令 具体的可以用帮助参数查看详情

sudo vboxmanage -h   ##帮助命令

相关命令
VBoxManage extpack install <.vbox-extpack>
VBoxManage extpack install [--replace] { tarball }
正因为这个管理命令太多而复杂,所以 我们才使用phpVirtualBox
到这里第一步就算搞定了。起码我们可以用命令行来管理虚拟机了

下面就是安装个服务器包phpvirtualbox 把它配置成能在浏览器里访问和操作

wget https://github.com/phpvirtualbox/phpvirtualbox/archive/5.2-1.zip

然后解压缩

unzip phpvirtualbox-5.2-1.zip

修改 phpvirtualbox 文件夹下的 config.php
    var $username = 'sk';
    var $password = 'ubuntu';

然后把这个配置成网站
sudo vim /etc/apache2/sites-enable/virtualbox.conf
重启

$ sudo systemctl restart vboxweb-service
$ sudo systemctl restart vboxdrv
$ sudo systemctl restart apache2

phpvirtualbox默认的登录用户名和密码都是admin 登录后请修改密码


在命令行下的一些常用管理命令

查看当前已设置的虚拟机列表

VBoxManage list
启动虚拟机
VBoxManage startvm 虚拟机名

无前端图形界面方式启动虚拟机

VBoxManage startvm 虚拟机名 --type headless  #phpvirtualbox界面中启动的就是这种无界面模式,可以远程连接

关闭虚拟机

VBoxManage controlvm 虚拟机名 poweroff