20190216 由于修改账户密码造成 phpvirtualbox 访问出错!
错误如下
Exception Object
(
[message:protected] => Error logging in to vboxwebsrv.
[string:Exception:private] =>
[code:protected] => 64
[file:protected] => /var/www/html/phpvirtualbox/endpoints/api.php
[line:protected] => 134
[trace:Exception:private] => Array
(
)
[previous:Exception:private] =>
)
打开 api.php 源码 134 行内容
vim /var/www/html/phpvirtualbox/endpoints/api.php
try {
$settings->auth->login($request['params']['u'], $request['params']['p']);
} catch(Exception $e) {
throw new Exception($e->getMessage(), $e->getCode());
}
** 其实到这里应该就能想到,自己配置的 config.php 忘记修改了!
sudo vim /var/www/html/phpvirtualbox/config.php
更新一下密码就好了!
但是,对于linux下visualbox的陌生,首先想到的是vbox出错了!
结果悲剧了!从头开始折腾了一遍!
1、vbox 命令行
** 首先想到用 vbox 命令行试试
1. 列举所有虚拟机 VBoxManage list vms
...
"seed ubuntu1804-55" {12106623-ee6f-493a-bbfd-9c2bf1915854}
2. 启动虚拟机 VBoxManage startvm 12106623-ee6f-493a-bbfd-9c2bf1915854
Waiting for VM "12106623-ee6f-493a-bbfd-9c2bf1915854" to power on...
VBoxManage: error: The virtual machine 'ubuntu1804-55' has terminated unexpectedly during startup with exit code 1 (0x1)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, interface IMachine
** 启动不了?但是看到虚拟机都还在,重装试试
3. 关机 VBoxManage controlvm 12106623-ee6f-493a-bbfd-9c2bf1915854 poweroff
正确地返回
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
已经关机后再次关机返回
VBoxManage: error: Machine '12106623-ee6f-493a-bbfd-9c2bf1915854' is not currently running
2、重装 visualbox
1. 参考
https://blog.csdn.net/wonder4/article/details/81114892
2. 卸载已经安装的visualbox
1).sudo apt remove virtualbox virtualbox-5.2
总是提示已经存在正在运行的版本
2). 停止服务
sudo systemctl stop vboxweb-service
sudo systemctl stop vboxdrv
停止之后,再看,还是有 VBox 进程
ps -ef |grep VBox
3). 杀死进程
sudo ps -ef |grep VBox |awk '{print $2}'|xargs kill -9
sudo 始终不能清除干净!su 到 root 之后再来
4). root 身份杀死进程
** ubuntu 18.04 安装后,root 密码是随机的,所以,需要设置 root 密码之后再执行su
$ sudo ps -ef |grep VBox |awk '{print $2}'|xargs kill -9
kill: (29685): Operation not permitted
kill: (29689): Operation not permitted
kill: (30973): No such process
** 这次彻底停止了!然后重新卸载,ok!
sudo apt remove virtualbox virtualbox-5.2
3. 重新安装
1). 添加仓库
deb http://download.virtualbox.org/virtualbox/debian bionic contrib
2). 添加 Oracle 公钥
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
3). 安装依赖(之前已经安装过,重新安装一次无妨)
sudo apt update
sudo apt-get -y install gcc make linux-headers-$(uname -r) dkms
4). 开始安装新版
** 上vbox 官网看看新版本
https://www.virtualbox.org/wiki/Linux_Downloads
** 官网上看到最新版是 6.0.4,但是下载非常缓慢,放弃了!还是安装 5.2 版
sudo apt update
sudo apt-get install virtualbox-5.2
5). 查看一下版本号,顺便确认安装成功否
VBoxManage -v
5.2.26r128414
6). 安装扩展
** 以前装的是 5.2.14,5.2.24 和 5.2.24 扩展下载很慢,最后选择了 5.2.22
下载
wget https://download.virtualbox.org/virtualbox/5.2.14/Oracle_VM_VirtualBox_Extension_Pack-5.2.22.vbox-extpack
安装
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.22.vbox-extpack
4. 增加或设置vboxusers 组用户
** 如果不是使用当前系统账户,或者准备多账户操作vbox,先去 adduser 去!
cat /etc/group |grep vbox
...
vbox20190217
vbox20190217:x:1001:
3、重装 phpvirtualbox
1. 安装 phpViauslBox 依赖
sudo apt install apache2 php php-mysql libapache2-mod-php php-soap php-xml
2. 下载、解压
wget https://github.com/phpvirtualbox/phpvirtualbox/archive/5.2-1.zip
unzip 5.2-1.zip
3. 转移到 apache 网站目录下
sudo mv phpvirtualbox-5.2-1/ /var/www/html/phpvirtualbox
sudo chmod 777 /var/www/html/phpvirtualbox/
4. 复制配置文件,修改配置账号
sudo cp /var/www/html/phpvirtualbox/config.php-example /var/www/html/phpvirtualbox/config.php
sudo vim /var/www/html/phpvirtualbox/config.php
选择一个准备操作 vbox 的系统账户信息,对应修改
var $username = 'XXXX';
var $password = 'XXXXXXXXXX';
** 不是打算登录 phpvialbox 的管理员账户
** 我简单采用单一账户,多账户需要在这里分别设置 var $servers = array( ...
5. 设置缺省 vbox 操作账户
sudo vim /etc/default/virtualbox
6. 重启服务
sudo systemctl restart vboxweb-service
sudo systemctl restart vboxdrv
sudo systemctl restart apache2
4、打开 phpvirtualbox 控制台网址
http://192.168.0.XX:XXXX/phpvirtualbox/
可以看到之前已经安装的虚拟机列举在这里,顶部菜单可以设置 phpvisualbox 控制台密码
通过控制台,启动之前 VBoxManage startvm 12106623-ee6f-493a-bbfd-9c2bf1915854 失败的虚拟机
OK!起来了!
命令行启动为什么失败?以后再学习了!