发表于 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/>。转载请保留此信息及相应连接。