介绍:挂载好共享文件夹后,把项目放到里面,在虚拟主机里面跑项目,window中访问项目,感觉就像是在访问服务器一样。
这样的好处是避免项目在本地跑的时候没问题,一推到测试环境就各种bug,比如window环境下对大小写不敏感,linux环境中队大小写敏感等等等。
Linux环境搭建:
准备:下载虚拟机安装包
下载Xshell(在windows下连接虚拟主机,可复制粘贴,比较好用)
Centos6.4镜像(我用的是纯命令行的,没有图形界面)
1、 安装虚拟机
百度“vmware“或者”virtualBox“进入官网下载虚拟机(个人感觉vm好用些),安装到自己选择的位置。
虚拟机装好后把镜像文件装载到虚拟机上。
创建安装教程:http://jingyan.baidu.com/article/75ab0bcbe8bc4dd6864db28f.html
2.挂载共享文件
1):虚拟机设置->共享文件夹—>添加—>选择‘自动挂载‘和’固定分配‘(比如我在d盘建个test文件夹作为共享文件夹)。
然后执行以下命令:
umount test&& umount none && mount -o loop/dev/sr0 /tmp/mnt && mount -t vboxsf test/test&& servicenginx restart
注:挂载好后记得得重启nginx
2):可能出现的问题:每次重启服务器后,进入共享文件夹,输入“ls“,显示不了共享文件目录,共享文件没有挂载上
解决方案:执行1)的命令,或者在配置文件中添加挂载命令,启动后自动挂载。
3):停止 nginx:nginx: [error] open() "/var/run/nginx.pid" failed (2: Nosuch file or directory)。 报这个错误是因为之前nginx没有启动。执行servicenginx restart就会报这个错误。 在servicenginx start之后执行service nginx restart就不会报这个错误
3.配置虚拟机nginx
1):cd /etc/nginx/sites-enabled 进入配置目录
2):vim xxxx.conf 新建一个配置文件,写入需要的配置
server {
listen 80;
server_name 这里写项目域名;
root 这里写项目路径;
index index.html index.htmindex.php; //这里是项目默认启动文件类型,项目的入口文件
include phpcgi.conf;
error_log/tmp/tianpeng/logs/error.log debug;
sendfile off; //处理一些乱码,XX,等bug
}
3):按“esc“ 输入”:wq“,保存退出。
4):执行servicenginx restart 重启nginx
4.配置host
在windows环境中,默认在C:\Windows\System32\drivers\etc目录下,编辑host文件,在末尾添加之前添加的nginx配置文件的域名;
5在windows环境使用Xshell链接VirtualBox虚拟机中的centos。
1) 在虚拟机和centos安装好以后,配置虚拟机端口转发:
关闭虚拟机->右键虚拟机->设置->网络,连接方式选择NAT,转发端口配置如下图:
2):在上图界面选择端口转发,添加一项,客户端也就是虚拟机填写ssh默认的22,填写一个你想转发给主机的端口号,比如9023。NAT网络地址转换,客户端虚拟机的所有网络包都会由主机也就是你正在用的机器转发,所以这里设定端口转发后,你连接本机的9023端口就相当于连接客户机的22端口。
比如,主机上执行:
ssh [email protected] -p 9023
就相当于连接客户机的22端口。
如果你有两个以上虚拟机的话,要把每个22端口转发到不同的主机端口上,比如9022和9023。
3):检查客户端能否上网
Ping www.baidu.com --能ping通表示能上网 4):上面配置的转发端口有点麻烦,每次测试项目的时候都必须加上端口号,如xxx.xx.com:8081 ,解决方案如下: 配置“主机端口—子系统端口”分别为, 22-22 80-80。这样就能直接通过xxx.xx.com 访问你的项目。