菜鸟随意写写,欢迎斧正,有建议和问题欢迎在评论中指出。

经常做本地测试的同学,尤其是经常使用WINDOWS进行开发测试的童鞋,对各种LAMP,XAMP,lnmp工具包一定耳熟能详。

比如大名鼎鼎的XMAPP,AMPserv,PHPNow等等…

理想的测试环境需要具备那些条件呢,苏洋认为下面几点必不可少:

  1. 首先是数据隔离要好。本地操作系统和测试环境数据相互隔离,互不影响,尤其指开发环境中,系统进程和服务软件不会影响到开发或者开发结束不会影响到系统正常使用。
  2. 接着是重复使用成本要足够低。诸如测试工具和测试环境的流行,很大程度上是基于便携或者简单部署(包括再次部署),下载解压,(一键安装或者编译),点击一个按钮,或者输入一条指令就完成要实现的功能。
  3. 然后是扩展性强,可定制能力高。APACHE/NGIX + PHP/TOMCAT/PYTHON/NODEJS + MEMCACHE/REDIS + MYSQL/NOSQL + ...想用什么就加什么。

那么,基于上面的三点,之前的现成工具包不能完全满足我们日益增长的开发需求,并且会限制到我们的一些实践开发过程。 比如对于配置好的测试工具的再分发,我们配置好一个环境,想和好基友或者童鞋一起使用,但是发现他也要下载很多依赖环境或者软件,或者修改很多系统配置。

所以,我认为使用虚拟机做测试环境是一个不错的实践。 虚拟机做测试环境的优势:

  1. 数据隔离性好。相比较在本机安装一堆东西,并且修改本机配置的话,会更加的纯净。
  2. 重复使用便捷,学习无成本。把镜像打包就可以分发给别人或者自己在其他地方部署。
  3. 扩展性极佳。虚拟机环境是独立的操作系统,想安装什么就安装什么,想配置什么就添加什么。

虚拟机的环境我们按照自己的喜好或者需求来,如果你强烈希望使用WINDOWS作为环境,那么使用WINDOWS也无可厚非,只是如果使用LINUX的话,开发和服务器软件都有大量的资源可供我们使用,并且文档会更加的齐全,并且性能效率稳定性都不错,消耗资源好少。所以,本文使用的是CentOS 6.4 本地环境,是WINDOWS 8(全系列适用)+ORACLE公司出品的Virtual Box[本文使用4.2.10版本] 熟悉Virtual Box的童鞋可以跳过第一步,熟悉CentOS操作的童鞋可以跳过本文。

一.安装虚拟机

关于WINDOWS下安装Virtual Box 出现错误可以看看 之前写的一篇文章,或许可以帮你解决问题。

环境安装好之后,我们要开始创建虚拟机了。

这里需要注意一下虚拟机设置,因为Virtual Box没有提供CentOS的默认配置。

在创建类型,我们选择Linux 2.6(如果你的机器支持X64的话,选择X64会获得更好体验)

2013-04-13_055748

内存分配按照个人机器配置的不同给不同的配额就好,小到256大到系统物理内存的一半,任君选择。

不过选择CentOS的做测试环境的话,给1G就很奢侈了有木有,这里我们为了获得更好体验,奢侈一下。

2013-04-13_060150

接着创建硬盘,选择现在创建硬盘,或者使用自己闲置的整个分区都无可争议,这个要看你对自己机器的资源使用态度了。

为了便于分发和再次使用,我选择屌丝节约型,就是创建虚拟硬盘,文件类型VDI,硬盘大小为动态创建,节约硬盘占用和方便备份和分发。

2013-04-13_060621

点击创建后,我们开始设置虚拟机。 2013-04-13_061406

接着是CPU和硬件虚拟 2013-04-13_061728

接着是声音和光盘设置。

光盘选择:CentOS-6.4-x86_64-minimal.iso

下载地址:http://centos.arcticnetwork.ca/6.4/isos/x86_64/CentOS-6.4-x86_64-minimal.iso

2013-04-13_062310

接着是重要的网络设置。 这里我们要实现的是虚拟机可以访问互联网,本机可以访问互联网,虚拟机可以被主机访问。

最简单的配置是虚拟机双网卡,也就是NAT+HOST-ONLY模式。 第一块NAT网卡利用主机来进行网络访问,第二块网卡则是为了实现主机和虚拟机的数据互通。

2013-04-13_063127

2013-04-13_063151

最后其他的设置就相当随意了,不过有可能的话,给显示-显存分配可以多一点,我这里选择了128MB。 启动机器,开始安装系统。 随意选择第一或者第二项,进入安装引导。

2013-04-13_064221

然后选择SKIP跳过光盘检查这个虚拟机木有营养的步骤。

2013-04-13_064302

须臾之后,进入正式安装。

2013-04-13_064501

安装过程语言选择什么都好,自己看得懂就成,汉语英语或者霓虹语或者鸟语,随意选择。 出现储存设备选择基本储存设备,弹出新界面选择忽略所有数据。

主机名输入一个霸气外露的,比如soulteary(这里无所谓的,你懂的),建议和你的电脑的主机不要一样。 然后设置一下时区,北京/上海。 密码可以设置一个弱口令,然后选择无论如何都使用这个密码,接着下一步选择使用所有硬盘空间, 继续下一步将修改保存到硬盘,最后等待 真.安装过程的结束,结束后,右下角有重启系统的按钮,按下之后,我们等待系统重启。

2013-04-13_065621

二.配置虚拟机操作系统环境

又是须臾之后,我们进入系统,使用root和你刚刚设置的密码进行登录,注意,密码输入是不显示的,输入完成之后,回车即可。

2013-04-13_065731

目前我们的机器是不可以访问网络的,所以我们要配置一下网络。 输入ifconfig显示虚拟机就绪的网络接口设备,发现只有一个lo回环接口。 接着输入ifconfig -a显示所有设备,确定eth0,eth1,lo接口都存在,那么安装是正确的,网卡都正确被识别了。 现在修改NAT网卡的配置

#切换目录到系统配置目录中
cd /etc/sysconfig/network-scripts/
#先修改NAT网卡的配置
vi ifcfg-eth0

配置中需要修改和增加的项目,其他的网卡原有设置请保留。

#启动服务的时候启动这个网卡配置
ONBOOT=yes
#IP获取方式为静态指定
BOOTPROTO=static
#IP地址(注1)
IPADDR=192.168.56.103
#IP掩码
NETMASK=255.255.255.0

用惯了图形界面的童鞋可能对VI不熟悉,但是请不要排斥用多之后,你会发现命令模式真的很高效。 如果你对VI相当熟悉,那么请忽略这段内容。 修改内容需要按下Insert键,修改完毕之后,请先按ESC,在输入:wq保存并退出,相关操作可以自行百度。 有童鞋会问,注1的IP和掩码是怎么获得的呢。 答案很简单,在你的主机操作系统中WIN+R打开运行,输入CMD,回车打开命令提示符。 接着输入ipconfig/all

以太网适配器 VirtualBox Host-Only Network:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : VirtualBox Host-Only Ethernet Adapter
   物理地址. . . . . . . . . . . . . : XX-XX-XX-XX-XX-XX
   DHCP 已启用 . . . . . . . . . . . : 否
   自动配置已启用. . . . . . . . . . : 是
   IPv4 地址 . . . . . . . . . . . . : 192.168.56.1(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

接着我们配置网卡二。

#先修改HOST网卡的配置
vi ifcfg-eth1

相比NAT网卡,这块HOST网卡只需要设置自启动就好。

#启动服务的时候启动这个网卡配置
ONBOOT=yes

重启网络服务。

service network restart

等提示全部OK之后,进行一下PING测试。

#PING WLAN
ping weibo.com
#PING HOST
ping 192.168.56.1

同时在主机里可以打开CMD,ping一下虚拟机。

ping 192.168.56.3

确定都是通畅的话,我们继续下一步。 先更换官方软件源为国内比较快的源。 这里先替换为网易源。

官方中国源列表地址:http://www.centos.org/modules/tinycontent/index.php?id=32

#切换到源目录
cd /etc/yum.repos.d/
#备份一份
cp CentOS-Base.repo CentOS-Base.repo.backup
#安装wget工具
yum install -y wget
#下载网易源
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
#删除原始文件
rm CentOS-Base.repo
#提示删除?
#输入 y 回车
#修改源文件名
mv CentOS6-Base-163.repo CentOS-Base.repo
#生成缓存
yum makecache

接着开始更新系统内核

#更新全部
yum update -y
#更新完毕之后,重启
reboot

更新完毕后,重启之后,我们再次登录。

#中文语言支持
yum groupinstall "Chinese Support"

安装开发环境包

yum groupinstall -y "Development Tools"
yum groupinstall -y "Additional Development"
yum groupinstall -y "Sever Platform Development"

准备安装虚拟机增强包

yum install -y kernel-devel
yum install -y man
#重启并将VboxGuestAdditions.iso手动挂载到虚拟机下
reboot
#输入用户和密码后,挂载光驱到/mnt
mount /dev/cdrom /mnt
#运行安装脚本
sh VboxLinuxaddition.run
#OPENGL安装失败,如果你需要的话
#http://wiki.centos.org/HowTos/Virtualization/VirtualBox/CentOSguest

然后在设置中添加一个共享目录,用于两个操作系统中的数据交换

2013-04-13_165333

#挂载共享文件夹
mount -t vboxsf share /mnt
#切换目录到共享文件夹
cd /mnt

接下来安装WEB SERVER(APACHE)+PHP+MEMCACHE+PHP的MEMCACHE扩展

yum groupinstall -y "Web Server"
yum groupinstall -y "PHP Support"
yum groupinstall -y "MySQL Database server"

yum install -y memcached
yum install -y php-pecl-memcache
#关闭selinux
cd /etc/selinux
vi config
#添加
SELINUX=disabled

#关闭防火墙,如果你想添加规则也可以
service iptables stop && chkconfig iptables off
service ip6tables stop && chkconfig ip6tables off

忘记了,还要有SFTP来方便我们进行文件的上传。

yum groupinstall -y "FTP server"

现在更新python为2.7.4

wget http://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz
tar zvxf Python-2.7.4.tgz
cd Python-2.7.4
./configure
make && make install
#重启
reboot
#查看Python版本
python2.7 -V     

安装NODEJS v0.10.4

wget http://nodejs.org/dist/v0.10.4/node-v0.10.4.tar.gz
tar zvxf node-v0.10.4.tar.gz
cd node-v0.10.4.tar.gz
./configure
make && make install
#重启
reboot
#查看Python版本
node -V 

基本需要玩的环境就简单的搭建好了,然后我们开始使用这个环境。 当然你可以继续安装redis等任何你想要玩的环境。

三.使用搭建好的环境

1.NODEJS

cd /var/www
mkdir nodejs && cd nodejs
npm install socket.io

#创建一个NODEJS经典的HELLO WORLD
vi app.js

在app.js中输入

var http = require('http');
var io = require('socket.io');
var server = http.createServer(function(req, res) {

	res.writeHead(200, {
		'Content-Type': 'text/plain'
	});
	res.end('Hello world');
});

server.listen(process.argv[2]);

var socket = io.listen(server);
socket.on('connection', function(client) {
	console.log('client has connected');
	client.on('message', function() {});
});

然后使用nodejs启动app.js

node app.js 80

本机浏览器访问http://192.168.56.103 显示HELLO WORLD,NODEJS DONE. CTRL+C 中断进程,我们来测试apache+PHP 2.APACHE+PHP

service httpd start

接着访问192.168.56.103 apache启动正常。 创建一个PHP脚本并尝试访问

cd /var/www/html
vi test.php

在test.php中输入然后本机浏览器访问: http://192.168.56.103/test.php 显示HELLO WORLD ,PHP运行正常。 忘记一点,就是测试的时候,如果有一个好记的域名就更好了。 既然是本地环境,绑定test.com好了,当然你绑定

baidu.com

也行。 编辑虚拟机的HOST

vi /etc/hosts
#添加一条记录
127.0.0.1 test.com
#退出编辑之后,虚拟机PING一下test.com
ping test.com
#如果返回结果是127.0.0.1那么说明修改成功
#如果修改失败,可以尝试http://www.soulteary.com/2012/03/08/macwinlinux%E6%B8%85%E9%99%A4dns%E7%BC%93%E5%AD%98.html

接着我们要修改本机的host 添加一条 192.168.56.103 test.com 接着PING一下 test.com 查看返回结果是否是192.168.56.103 如果不是的话,那么和上面一样,尝试清理缓存。 如果你喜欢使用SFTP来传文件的话,那么先启动SFTP服务

service vsftpd start

然后用户名为root,密码为你的密码,端口为22,即可连接虚拟机 至此一个简单的简单的虚拟机测试环境就搭建完毕。 可以在机器上测试开发PHP,NODEJS,MYSQL,MEMCACHE, 本机可以通过SFTP或者同享的虚拟文件夹进行数据交互。 稍后继续完成redis,mongo,以及虚拟机上的简单开发记录。

附: 启动MYSQL,MEMCACHE

service mysqld start
service memcached start