對於一線開發人員來講,一提到虛擬機平臺,每每會讓人聯想到在價格昂貴的服務器上部署VMware vSphere之類軟件來實現。php
筆者做爲一個資深碼農,也是一直夢寐着在本身家中打造一個真正的家庭私有云,秒殺那些硬盤廠商所吹噓的「Jia私有云」。html
功夫不負有心人,通過反覆的實驗,瀏覽了不少國外的社區之後,筆者真的實現了這個目標,並且,真的很便宜哦~!mysql
整理出一份教程放在這裏,但願能擴展一下你們的思路。web
材料sql
HP DL380 G7 2U 服務器apache
- Core 24, Mem 40G, SAS 146G * 2, Raid 0ubuntu
Ubuntu Server 16.04 LTS瀏覽器
Oracle Virtualbox 5.1服務器
Oracle_VM_VirtualBox_Extension_Pack 5.1oracle
選擇服務器
市場上有不少IDC機房淘汰的服務器在二手市場上銷售,真的是白菜價格。
想入手服務器的筒子們,能夠認真考察考察。
筆者在這裏不給任何人作廣告,只是說一點:在家用,必定要注意噪音問題,不然,被家裏的大領導給禁止了就沒的完了。
參考文章:
操做系統
因爲服務器是一種有別於通常家用機設備,所以,對於家用機(或者筆記本)來講天經地義的一些經驗和安裝方法,每每不能直接搬到服務器上。
筆者實際測試的系統包括:
其中,只有一下三種操做系統可以順利啓動:
考慮到維護和穩定性的要求,最終選擇了Ubuntu Server 16.04做爲服務器主機的操做系統。
虛擬機平臺
網上有衆多的文章都主張選用VMware vSphere,可是License是個大問題,反正筆者是買不起的。
使用了多年的VirtualBox天然成了個人首選,但是VirtualBox是否能在Server版本的Linux上成功虛擬帶有圖形界面的OS仍是個問題?
幸虧最終找到了一個叫作phpvirtualbox的軟件,可以經過網頁的形式將VirtualBox的操做界面展示出來,
再加上Extension Pack擴展包,一個Headless服務器的藍圖便浮出水面。
國外的一個網站提供了本教程後面一半的內容,感謝那個名叫SK的做者的分享。
好了,鋪墊的介紹就到這裏,讓咱們趕快開始吧。
安裝步驟
第一步 安裝Ubuntu Server 16.04 LTS
(安裝步驟省略,請自行用Bing搜索)
第二步 配置Ubuntu Server 16.04 LTS
使用固定IP地址。
1 vi /etc/network/interfaces
如下是筆者機器上的例子:
1 # The primary network interface 2 auto enp3s0f0 3 # iface enp3s0f0 inet dhcp 4 iface enp3s0f0 inet static 5 address 192.168.11.16 6 netmask 255.255.255.0 7 gateway 192.168.11.1
手工指定DNS服務器
- DNS服務器衆多,國外的不少DNS資源沒法訪問,因此筆者選擇了一個最保險的DNS:要要死(114)
vi /etc/resolvconf/resolv.conf.d/base
向其中添加一行:
nameserver 114.114.114.114
(若是你有多個DNS服務器的話,請採用上面的格式,每行添加一個DNS的IP地址)
讓剛纔的變動生效,你須要手工重啓networking服務
/etc/init.d/networking restart
第三步 更新Ubuntu操做系統
這多是你們最熟悉的一個指令了apt-get。他看起來太經典了,不是嗎?
1 apt-get update 2 apt-get -y dist-upgrade
升級完成後,順便安裝如下組件:
apt-get install build-essential dkms unzip wget
apt-get install apache2 php php-mysql libapache2-mod-php php-soap php-xml
到這裏,請必定重啓一下服務器。
因爲服務器啓動速度很慢,一般5 ~ 10分鐘的樣子,各位同窗盡能夠利用這段時間來放鬆一下。
第四步 安裝VirtualBox
VirtualBox提供了靈活的安裝方式,好比,能夠選擇經過deb包或者repository的來安裝。
筆者這裏使用repository的方式來進行說明,其它方式,請參考Oracle VirtualBox的官方網站。
首先,要作的就是註冊這個官方的repository:
vi /etc/apt/sources.list
筆者將URL地址添加進去。注:這裏"xenial"是Ubuntu的髮型代號,各位須要根據本身所使用的Ubuntu版本添加特定的倉庫地址,不能混用。
deb http://download.virtualbox.org/virtualbox/debian xenial contrib
註冊官方的Key
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
獲取官方repository信息,並開始安裝
1 apt-get update 2 apt-get install virtualbox-5.1
安裝完成後,請確認vboxdrv的狀態
systemctl status vboxdrv
接着,要作的就是安裝VirtualBox的擴展包。能夠說本方案之因此可以成功,主要依靠的就是這個擴展包的功能。
1 wget http://download.virtualbox.org/virtualbox/5.1.26/Oracle_VM_VirtualBox_Extension_Pack-5.1.26-117224.vbox-extpack 2 VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.1.26-117224.vbox-extpack
當你看到形以下面的提示,那麼恭喜你,到目前爲止安裝很順利。
第五步 安裝Web客戶端phpvirtualbox
也許你們對phpVirtualBox會比較陌生,引用官方網站上的一句話:A web-based front-end to VirtualBox written in PHP
能夠在這裏下載到最新版本。
wget https://sourceforge.net/projects/phpvirtualbox/files/phpvirtualbox-5.0-5.zip
unzip phpvirtualbox-5.0-5.zip
將解壓縮後的文件夾複製到apache的默認發佈路徑,並賦予權限
mv phpvirtualbox-5.0-5 /var/www/html/phpvirtualbox
chmod 777 /var/www/html/phpvirtualbox/
經過Example文件建立配置文件
cp /var/www/html/phpvirtualbox/config.php-example /var/www/html/phpvirtualbox/config.php
打開剛剛複製產生的配置文件,指定以哪個Linux用戶的權限運行
vi /var/www/html/phpvirtualbox/config.php
1 /* Username / Password for system user that runs VirtualBox */ 2 var $username = 'Linux用戶名'; 3 var $password = '密碼';
注:這個配置用的php裏有不少的設置選項,推薦準備用於生產環境的筒子們詳細的看一下。
建立/etc/default/virtualbox文件
vi /etc/default/virtualbox
仍然添加上面所指定的Linux用戶
VBOXWEB_USER=Linux用戶名
依次嘗試重啓如下三個服務
1 systemctl restart vboxweb-service 2 systemctl restart vboxdrv 3 systemctl restart apache2
第六步 激動人心的時刻到了
打開瀏覽器,輸入網址:http://服務器地址/phpvirtualbox/
在輸入了默認的用戶明(admin)和密碼(admin)之後,一個與原版VirtualBox一模一樣的界面就會展示出來
剩下的使用方式就和VirtualBox徹底相同了。篇幅所限,筆者這裏省略。
如何鏈接你的虛擬機桌面
你固然不但願僅僅在VM中運行命令行界面的OS,那麼如何才能遠程鏈接到VM的桌面環境呢?
兩個步驟輕鬆搞定:
第一,在虛擬機的設置裏面指定遠程桌面的端口,例如筆者設置的9061
第二,是使用Windows自帶的遠程桌面(或者任何支持RDP協議的客戶端)來鏈接服務器上面的這個端口。
注:這裏的IP(192.168.1.123)是服務器自己的IP,不是VM的IP。
而後....就沒有而後啦。
大功告成,累死了。但願能開闊你們的思路。