發表於 2013-08-27 做者 Haoxian Zeng
php
在剛開始接觸 VPS 服務器的時候,爲了測試各類程序和配置是否能用,就在本地使用 VirtualBox建立了一個與 VPS 配置差很少同樣的虛擬機,也裝上了 Linux 的 CentOS 發行版,內存大小、系統和軟件都照着 VPS 的模式來。這是個練手的好方法。node
由於只是將它看成一個 VPS 來用的,安裝以前考慮這麼幾件事情:linux
操做系統。Linode VPS 上佈置 Linux 系統的時候都是從 Linode 提供的優化過的 Linux 發行版直接安裝的。我不知道 Linode 對 CentOS 進行了哪些優化配置,因此乾脆選擇 CentOS 的 minimal 版原本安裝。c++
分配的內存大小。按照個人 Linode VPS 的大小分爲 512MB。(後來 Linode 將內存免費升級到了 1G。)之後也能夠根據須要來調整內存大小,很是方便,只要該虛擬機處於關機狀態就行。web
硬盤容量。系統分區也搞得很簡單,只配置了一個硬盤分區。可是由於只是簡單的測試目的,硬盤容量不須要那麼大,考慮到後期還要安裝一些服務器程序,3GB 是個比較好的選擇。實際上,若是後期發現容量不夠,還有方法給 VirtualBox 虛擬機以及裏面的 CentOS 系統擴容。windows
下面開始建立這麼一個 CentOS 的 VirtualBox 虛擬機的過程。分四個部分介紹:下載 CentOS 安裝光盤、建立虛擬機、安裝 CentOS 系統、設置。centos
若是系統中尚未 VirtualBox,能夠參考這裏給系統下載安裝 VirtualBox。服務器
下載最小化(minimal)版本的 CentOS 安裝光盤,大約 350MB。國內有幾個鏡像網站(搜狐、163、華中科技大學),速度挺快的。打開鏡像網站,看到的是目錄結構的頁面,逐次找到CentOS –> 6.4 [這是版本號,目前的最新版] –> isos –> i386 / x86_64 [請看下一段的解釋,根據本身的狀況選],而後下載 minimal.iso 結尾的那個就好了。網絡
關於架構:操做系統的位數要與電腦的 CPU 相適應。早期的英特爾 CPU 都是 32 位的。後來出了雙核,採用 EM64T 技術弄出了個等效 64 位 CPU。而 AMD 很早就是 64 位 CPU 了。如今的電腦,硬件上基本上都支持 64 位操做系統了。可是這裏的狀況有些特殊,由於這個是「虛擬機」。所謂虛擬機,就是利用真實電腦的硬件,經過軟件來模擬出一個虛擬的電腦。你給這個虛擬機分配資源的時候,好比內存、硬盤、CPU,不能超過硬件所能提供的最大限度。而後,若是母機(安裝 VirtualBox 的系統)是 64 位的系統,則其中的 VirtualBox 裏能夠安裝 64 或 32 位的系統;母機是 32 位的話,就只能安裝 32 位的虛擬機。
架構
須要注意的是,這麼個最小化的 Linux 系統,是沒有可視化圖形界面的,一切都從命令行來操做。
打開 VM VirtualBox,按照下面的步驟建立虛擬機。若是尚未安裝 VirtualBox 程序,請參考這裏。
在 VirtualBox 主界面上單擊「新建」,以下圖左上角的位置。
VirtualBox 主程序界面
在「虛擬電腦名稱和系統類型」窗口裏,先輸入「名稱」,如 CentOS。由於 CentOS 很明確,這時候 VirtualBox 會自動填入下面的「類型」(Linux)和「版本」(Red Hat,由於CentOS 其實是 Red Hat 的社區版本)。單擊「下一步」。
分配內存。如前所述,這裏移動滑塊選擇,或者直接輸入 512。單擊「下一步」。
虛擬硬盤。點選「如今建立虛擬硬盤」(這個是默認選中的),而後單擊「建立」。
虛擬硬盤文件類型。看我的喜愛了。建議使用默認的」VDI (VirtualBox 磁盤映像)。而後單擊「下一步」。
建議選擇「動態分配」。窗口界面上有介紹。動態分配是隨着使用慢慢增大佔用實際物理硬盤的空間,最大到分配的大小;固定則是一次性分配好。單擊「下一步」。
文件位置和大小。如今要開始分配虛擬硬盤了,選擇虛擬硬盤的存放位置;而後設置大小。如前所述,大小直接輸入爲 3.00 GB。以後單擊「建立」。
如今,應該能在 VirtualBox 主界面上看到建立好的虛擬主機了(以下圖所示)。可是尚未安裝系統,如今它只是象一臺剛組裝好的電腦,還沒開始裝系統和軟件。
建立了 CentOS 虛擬主機的 VirtualBox 主界面
下面開始給虛擬機 CentOS 安裝咱們在前面第 1 步那裏下載的 CentOS minimal 系統。下面,主要使用的設備是鼠標,以及鍵盤上的 Tab、上、下、左、右、Enter、空格等。
在上圖所示位置,單擊選中 CentOS 這個虛擬機,而後點擊上面的「啓動」(至關於電腦「開機」)以啓動虛擬機。由於是第一次開機,開頭會提示虛擬機會獨佔鼠標。也就是說,你在這個虛擬機的界面(至關於這個小電腦的顯示器)裏點一下,鼠標就被限制在這個區域了。要想將光標切回到外面的系統裏,能夠按 Right Ctrl(也就是鍵盤右邊那個 Ctrl 鍵)。爲了讓它之後不要再提示了,能夠勾選那個小方框,而後單擊「肯定」。
如今就開始啓動了,可是由於沒有安裝系統,它會提示讓選擇一個光盤鏡像來從光盤啓動。此時選擇前面下載的那個 CentOS……-minimal.iso 光盤文件便可(這裏沒有將文件名寫全,太長了)。
若是錯過了選擇這個光盤來啓動系統,還能夠單擊虛擬機界面上面的「設備」——>「分配光驅」——>「選擇一個虛擬光盤…」,來選擇那個光盤文件,以下圖所示。
爲 VirtualBox 虛擬機中的 CentOS 分配一個光盤
從新啓動該虛擬機,方法是單擊上圖中左上角的「控制」——>「重啓」。由於默認的啓動順序是軟盤-光盤-硬盤,因此重啓後就會自動由光盤引導進入 CentOS 安裝界面。以下圖所示。
在 VirtualBox 中開始安裝 CentOS 最小化版操做系統
上圖中選擇第一項「Install or upgrade an existing system」,直接回車(Enter)便可。等待系統安裝初始化,直到進入亮藍色背景的安裝界面。以下圖所示,這裏要求進行光盤完整性檢查。
安裝 CentOS 之光盤檢查 – Disc Check
不須要檢查,按 -> (右)鍵切換到 Skip,而後 Enter。再等一下子,會出現 Welcome to CentOS! 的歡迎窗口,直接 Enter 進入安裝選項設置。
第一個要設置的是安裝過程當中使用的語言(Language),不要高興得太早,在這種文本模式下,簡體中文是不能用的,因此仍是老老實實的直接 Enter 進入下一個界面吧。
下一個是鍵盤佈局(Keyboard Selection),沒什麼好說的,直接按 Enter 鍵選擇默認的 us 吧。
再等一下子,系統開始檢查存儲設備(也就是看看硬盤怎麼樣,下面就要分區了)。嗯,不知道我這裏怎麼出了個須要從新初始化硬盤(固然是虛擬硬盤)的警告,以下圖。
CentOS 安裝之硬盤初始化
估計是由於這個虛擬硬盤剛分出來吧。無論它,反正是虛擬的,不怕壞。使用 Tab 鍵來選中 Re-initialize 並按 Enter 鍵確認。一下子就行了。
而後開始設置系統時區(Time Zone),無所謂啦,按 Tab 鍵選中 OK 按鈕後,直接 Enter 進入下一步。
如今,請輸入 root 用戶的密碼(至少 6 位長度),至關於 Windows 的超級管理員密碼。輸入一次後,按 Tab 鍵切換到下一行從新輸入一次。再按 Tab 鍵切換到 OK 按鈕並直接按 Enter 鍵確認。
CentOS 安裝時設置 root 密碼
該分區了!這是個比較麻煩的任務。若是是通常的我的電腦桌面應用,通常分三個區就好:一個主分區,ext4 格式,大約 5~20GB,掛載到 / ;一個交換分區,在如今內存廣泛較大的狀況下,分區大小與內存同樣就能夠了,或者稍多些也無所謂,這個就只能是 swap 格式了,掛載到 swap;剩下的作爲一個大的分區,能夠是 ext4 或者其它文件系統,做爲用戶文件的存放區,掛載到 /home。
可是這裏就不一樣了,由於只是個簡單的測試服務器,先分出一個小的 swap 分區(這個是不可少的),而後直接將全部可用磁盤分紅一個大區掛載到 / 就好了。
在 VirtualBox 中安裝 CentOS 之分區
如圖所示,這裏選擇使用整個硬盤(虛擬的),Tab 選定 OK 按鈕後直接 Enter 到下一步。
而後,須要再確認一次。Tab 到按鈕「Write changes to disk」後按 Enter 鍵確認。一直等就是了。安裝程序會對虛擬硬盤進行格式化,並自動分區。默認狀況下采用的是 LVM 方案。
分區完成後程序會自動檢查安裝包的依賴關係,而後自動安裝。由於是最小化系統(minimal),光盤上全部東西都會被安裝(應該是這樣吧,我沒有確認)。
又是一次漫長的等待。最後,出現下面的完成提示,直接按 Enter 鍵回車便可重啓進入虛擬機裏的 CentOS 系統。
VirtualBox 中安裝 CentOS 完成需重啓提示
重啓後使用前面輸入的 root 賬戶密碼便可登陸 root 賬戶(用戶名 root,回車,密碼,回車),而後就能夠對這個系統隨心所欲了。
VirtualBox 中安裝 CentOS 完成後登陸進入系統
好比:
輸入 fdisk -l 能夠查看到當前的磁盤分區狀況;
輸入 ifconfig 能夠查看到當前的網絡鏈接狀況等。
由於是要作 VPS 的模擬器,下面進行簡單的設置以後就能夠開始模擬 VPS 上的各類操做了,好比安裝 LAMP 服務器環境,而後裝個 WordPress 玩玩……除了不能從家庭網絡以外的地方訪問以外,這個小服務器絕對能夠知足你建網站的練習須要。
按照上面的方法安裝以後,還須要一些簡單的設置,好比網絡訪問。而後既然是作網頁服務器,還須要讓它可使用域名來訪問。
可是由於各家的上網狀況可能有所不一樣,這裏預設一種情景:使用路由器在家裏的各臺設備之間共享網絡鏈接。目前,這應該是一種很常見的方式吧?!這裏假設無線路由器的 IP(網關的 IP)是 192.168.0.1,那麼家裏各臺電腦就是 192.168.0.2 等等。假設當前使用的電腦的 IP 就是 192.168.0.2,而 192.168.0.10 這個 IP 目前尚未設備使用。
下面的命令行直接輸入界面裏的 # 號後面並回車便可。
修改網絡配置文件 ifcfg-eth0,
vi /etc/sysconfig/network-scripts/ifcfg-eth0
這會打開一個文本編輯區域。按 i
鍵開始編輯,用上下左右鍵將光標移動到 ONBOOT=no
那裏,刪除 no
,輸入 yes
。
而後按 Ctrl+c 鍵退出編輯狀態,再按 shift+; 組合鍵輸入 : ,緊接着輸入 wq 保存並退出文本編輯器。
關閉虛擬機:
poweroff
在 VirtualBox 主界面(如前第 2 節最後一個圖所示),選中 CentOS 這個虛擬機,而後單擊上面的「設置」按鈕打開虛擬機設置界面,並從左側欄切換到「網絡」條目。以下圖所示。
VirtualBox 虛擬機的網絡設置界面
其中「網卡 1」已經默認設置爲「網絡地址轉換(NAT)」模式,可讓虛擬機經過母機的網絡來訪問互聯網。點擊「網卡 2」,勾選「啓用網絡鏈接」,將「鏈接方式」更改成「橋接網卡」,其它不須要修改,可是須要點開「高級」而後記下 「MAC 地址」後面的字符(我這裏是 080027f26be7)。下面的「界面名稱」實際是虛擬機內部的網卡須要橋接到的母機的網卡的名稱。而後單擊窗口下部的「肯定」保存設置。
再次啓動該虛擬機並登陸。而後執行下面的操做。先將 ifcfg-eth0 複製一份保存爲 ifcfg-eth1:
cp -rf /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
而後編輯 ifcfg-eth1(編輯方法同前述編輯 ifcfg-eth0 的方法):
vi /etc/sysconfig/network-scripts/ifcfg-eth1
將其中的內容改成其中 HWADDR 就是剛纔記下的那一串字符,只不過用 : 分割開了):
DEVICE="eth1" HWADDR=08:00:27:F2:6B:2E NM_CONTROLLED=no ONBOOT=yes IPADDR=192.168.0.10 NETMAK=255.255.255.0 GATEWAY=192.168.0.1
注:ONBOOT的值修改成「yes」;NM_CONTROLLED這個屬性值,根據RedHat公司的文檔是必須設置爲「no」的(這個值爲「yes」表示能夠由服務NetworkManager來管理。NetworkManager服務不支持橋接,因此要設置爲「no」)。而後保存退出編輯器,接着執行下面的指令:
service network restart
若是沒什麼意外的話,如今,從母機(也就是安裝了 VirtualBox 的系統)裏應該能夠 ping 到這個虛擬機了:
ping 192.168.0.10
修改網絡配置文件 ifcfg-eth0,
vi /etc/sysconfig/network-scripts/ifcfg-eth0
這會打開一個文本編輯區域。按 i
鍵開始編輯,用上下左右鍵將光標移動到 ONBOOT=no
那裏,刪除 no
,輸入 yes
。
而後按 Ctrl+c 鍵退出編輯狀態,再按 shift+; 組合鍵輸入 : ,緊接着輸入 wq 保存並退出文本編輯器。
關閉虛擬機:
poweroff
在 VirtualBox 主界面(如前第 2 節最後一個圖所示),選中 CentOS 這個虛擬機,而後單擊上面的「設置」按鈕打開虛擬機設置界面,並從左側欄切換到「網絡」條目。以下圖所示。
VirtualBox 虛擬機的網絡設置界面
其中「網卡 1」已經默認設置爲「網絡地址轉換(NAT)」模式,可讓虛擬機經過母機的網絡來訪問互聯網。點擊「網卡 2」,勾選「啓用網絡鏈接」,將「鏈接方式」更改成「橋接網卡」,其它不須要修改,可是須要點開「高級」而後記下 「MAC 地址」後面的字符(我這裏是 080027f26be7)。下面的「界面名稱」實際是虛擬機內部的網卡須要橋接到的母機的網卡的名稱。而後單擊窗口下部的「肯定」保存設置。
再次啓動該虛擬機並登陸。而後執行下面的操做。先將 ifcfg-eth0 複製一份保存爲 ifcfg-eth1:
cp -rf /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
而後編輯 ifcfg-eth1(編輯方法同前述編輯 ifcfg-eth0 的方法):
vi /etc/sysconfig/network-scripts/ifcfg-eth1
將其中的內容改成其中 HWADDR 就是剛纔記下的那一串字符,只不過用 : 分割開了):
DEVICE="eth1" HWADDR=08:00:27:F2:6B:2E NM_CONTROLLED=no ONBOOT=yes IPADDR=192.168.0.10 NETMAK=255.255.255.0 GATEWAY=192.168.0.1
注:ONBOOT的值修改成「yes」;NM_CONTROLLED這個屬性值,根據RedHat公司的文檔是必須設置爲「no」的(這個值爲「yes」表示能夠由服務NetworkManager來管理。NetworkManager服務不支持橋接,因此要設置爲「no」)。而後保存退出編輯器,接着執行下面的指令:
service network restart
若是沒什麼意外的話,如今,從母機(也就是安裝了 VirtualBox 的系統)裏應該能夠 ping 到這個虛擬機了:
ping 192.168.0.10
默認狀況下Linux系統不容許外部訪問80與8080端口, 咱們要訪問虛擬機裏的Web服務器的話, 方法一 : 關閉防火牆(不推薦)
service iptables stop
或者修改防火牆配置開放8080端口:
vi /etc/sysconfig/iptables
複製添加紅色兩行, 表示接收80與8080商品的請求:
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
若是沒什麼意外的話,如今,從母機(也就是安裝了 VirtualBox 的系統)裏應該能夠 ping 到這個虛擬機了:
ping 192.168.0.10
VPS 上的服務器是能夠用域名來訪問的,並且測試網站程序(好比 WordPress)的時候也須要使用域名。下面就耍些花招來欺騙系統,讓虛擬機能夠小範圍的擁有某個域名(其實是任意域名),母機也可使用域名來訪問虛擬機。
如今修改母機的 HOSTS 文件(即文件%systemdrive%/windows/system32/drivers/etc/hosts,在後面添加下面的內容:
192.168.0.10 domain.com 192.168.0.10 www.domain.com
保存。如今就能夠直接經過域名 domain.com 和 www.domain.com 訪問虛擬機了:
ping domain.com
複製添加紅色兩行, 表示接收80與8080商品的請求:
# Firewall configuration written by system-config-firewall
若是沒什麼意外的話,如今能夠開始使用你的專屬Linux了:
yum install -y wget #安裝wget yum install -y install gcc #安裝gcc yum install gcc-c++ #安裝g++
這是個人 VPS 學習之路系列總結文章中的一篇,是我建立本身的網站的經驗。©
本文轉至水景一頁。永久連接:<http://cnzhx.net/blog/minimal-centos-in-virtualbox/>。轉載請保留此信息及相應連接。