在FreeBSD 13.1上安裝VirtualBox 6.1.34當Host機用,並安裝phpvirtualbox web管理介面。在安裝過程中遇到一些問題,將一步一步安裝過程與遇到問題解決方法記錄下來。
✅完整安裝過程影片:
一、安裝VirtualBox 6.1.34
安裝方式可用FreeBSD 預先編譯好的packages最為方便
# pkg install virturalbox-ose
一行指令即可安裝好,亦會安裝相關的package,如下圖。
安裝virtualbox-ose-kmod後,在/boot/modules下有三個相關的vboxdrv。但是vboxdrv卻是FreeBSD 13.0的版本。因此無法載入使用。解決方法,只好使用FreeBSD port安裝,若在安裝FreeBSD OS時未安裝port與src,就先需安裝
- 安裝port:
# portsnap fetch
# portsnap extract - 安裝src
先安裝 svn:
# pkg install subversion
再下載 /usr/src:
# svn checkout https://svn.FreeBSD.org/base/head /usr/src - 安裝virtualbox-ose-kmod
# cd /usr/ports/emulators/virtualbox-ose-kmod
# make install - 安裝virtualbox-ose
# cd /usr/local/emulators/virtuslbox-ose
#make install
這樣就能安裝完成,但是build過程會花很長的時間,需耐心等待。相關過程可參閱下列影片片段:https://www.youtube.com/watch?v=2bD2QvutYkQ&t=54s
其他相關設定:
- /boot/loader.conf: vboxdrv_load="YES"
- /etc/rc.conf: vboxnet_enable="YES"
- # pw groupmod vboxusers -m vbox
新增vbox user可使用VirtualBox - 更改/dev/vboxnetctl owner與permisssion
# chown root:vboxusers /dev/vboxnetctl
# chmod 0660 /dev/vboxnetctl - /etc/devfs.conf:
own vboxnetctl root:vboxusers
perm vboxnetctl 0660
二、安裝phpvirtualbox網頁介面管理程式
若不需要在FreeBSD Server端執行VirtualBox,亦可只安裝virtualbox-ose-nox11,無論virtualbox-ose或virtualbox-ose-nox11均會安裝vboxwebsrv服務。
- 安裝web server程式:
使用lighttpd或其他web server均可
# pkg install lighttpd - 安裝 phpvirtualbox
# pkg install phpvirtualbox
設定相關configuration檔案
✅lighttpd相關檔案
- lighttpd.conf:
document root位置: /usr/local/www/data - modules.conf
- conf.d/fastcgi.conf
- 預設英文語言錯誤:
預設語言'en',會造成錯誤,直接將languages/source目錄下的en.dat移除或更名即可,其他語言不會有問題。 - 無法瀏覽選取安裝的iso檔案
修改/usr/local/www/phpvirtualbox/endpoints/jqueryFileTree.php
參閱下列影片片段:https://www.youtube.com/watch?v=2bD2QvutYkQ&t=834s
function getdir($dir, $dirsOnly=false, $recurse=array()) { global $allowed_exts; // 新加入
.
.
.
$ext = strtolower(preg_replace('/^.*\./', '', $path));
if(is_array($allowed_exts) && count($allowed_exts) && !$allowed_exts['.'.$ext]) continue; //約在256行更改紅色部分 - VirtualBox extensions未支援FreeBSD
遠端桌面只好搭配VNC,可參閱下列影片片段:https://www.youtube.com/watch?v=2bD2QvutYkQ&t=1140s