@garygchai
2016-05-31T00:24:01.000000Z
字数 2679
阅读 1864
Linux
首先,应该说这是一篇教程,可以帮助大家自己动手挂载开发服的教程!所以学会之后,以后就可以不求人自己进行开发服挂载啦!我们的开发服挂载从当初的纯手工挂载发展今天的自动挂载已经很方便了,开发人员自己到研发组后台自己添加自己的挂载域名以及所需要的ip、共享目录、账号密码就可以实现自动挂载,确实比以前方便很多,不然每次都要找懂Linux命令的同事帮忙挂载,有时候还看人家脸色,真不爽,还不如自己动手来的实在。
其实我们用开发服挂载就两个目的:
享用开发服的nginx
做反向代理和php
执行环境
开发人员都把本地磁盘映射到开发服,就可以利用开发服安装好的服务配置来运行我们的程序,而不需要开发人员在本机自己折腾环境,多么爽的一件事。
域名解析
我们使用同样的规则去定义我们的访问域名,然后经过同一个nginx
,这样就可以做统一域名管理和解析,就不需要开发人员去手动配置host
,别人也可以轻松访问你的域名。
在享用开发服环境之前,我们要先做一下磁盘挂载,把我们本地的目录挂载到开发服的某个目录下面,挂载配置过程并不复杂,也不需要开发人员去手动执行挂载命令,因为忠信大神已经给我们搭好了工具,我们只需要做简单的配置就能自动挂载,下面就介绍一下我们的傻瓜式挂载的配置流程:
第1步,在本机新建一个共享目录
比如,我在我自己的E盘,新建一个fanxing.git
的目录,然后把它设置为共享目录。
第2步,进入研发组后台:http://mgr.fxwork.kugou.net/,账号密码私聊哈·
第3步,选择挂载
,然后挂载列表
:
第4步,新建一个属于你自己的挂载:
使用者:自己的中文名
共享用户:域账户,也就是自己的开机账号啦
共享密码:域密码,也就是自己的开机密码
共享机IP:本机IP
共享目录:自己共享的目录名
挂载目录:自己在开发服(10.16.6.91)所要挂载的目录,所有的挂载目录都在/data1/htdocs/下面,命名规则一般就是kf加上自己中文的首字母啦,比如我的,/data1/htdocs/kfgch/
是否使用:选择是
备注:备注一下
然后保存,正常情况一分钟以内就会产生一条状态正常的挂载记录:
原理说明:
之所以可以在研发组后台做一些简单的配置就能实现挂载的原因,是因为在我们的开发服后台在定时执行一个挂载脚本,shell脚本在cd ~ && cd ./fx-script/autoMount.sh
,有兴趣的同学可以去了解一下。这个挂载脚本会定时读取我们在后台配置的这些挂载记录,然后一条条地去执行这样的挂载命令:
$ mount -t cifs -o username=garygao,password=*****,codepage=cp936,isocharset=cp936 //172.17.22.151/fanxing.git /data1/htdocs/kfgch
意思就是把本机的共享的fanxing.git
目录挂载开发服的/data1/htdocs/kfgch
下面。所以要挂载项目之前,我们只需要在研发组后台加一下配置就可以啦。
上面的挂载配置只是做了本地目录到开发服的磁盘映射,还没有享受到开发服挂载给我们带来的好处,现在我就繁星主站为列,说一下如果挂载一个项目,实现我自己的开发服域名:http://kfgch.fxwork.kugou.com/。
第1步,git克隆繁星项目到fanxing.git
目录下:
$ git clone git@gitlab.fanxing.kgidc.cn:fanxing/fanxing.com.git
这样,就会在fanxing.git
目录下生成一个fanxing.com.git
目录,这个目录下面就是繁星网的所有代码了。
第2步,还是进入研发组后台,选择域名
,然后是开发域名
第3步,新建域名记录
域名IP:开发服IP,10.16.6.91
端口:域名端口,正常情况下都是80
域名:你的开发服域名,命名规则是kfxxx.fxwork.kugou.com,xxx是你中文名的首字母
项目目录:就是挂载开发服的目录,如/data1/htdocs/kfgch/fanxing.git/fanxing.com.git
责任人:就是自己啦
工作机IP:你本机IP
备注:备注清晰一点,因为你可以在导航网页上直接点击进入,比如繁星开发服
类型:选择开发组
是否使用:选是妥妥地
点击保存,正常情况下你就是看到一条挂载记录:
一分钟以内你就可以使用kfxxx.fxwork.kugou.com
域名访问你自己的开发服了!
整个过程下来,是不是很简单呢!?那这又是怎么做到的呢?下面我就来简单说一下实现的原理吧。
原理说明:
自动挂载脚本会读取你的配置文件,然后在开发服的/usr/local/webserver/nginx/vhost/conf
目录下面生成一个对应nginx
配置文件,比如kfgch.fxwork.kugou.com.conf
,nginx
就是根据这个配置文件,来分析你访问的域名要读取哪个文件目录,要跳到哪个地址等等,可以在里面做很多很多配置,这个就不细说了。自动挂载脚本生成配置文件之后,就会执行/etc/init.d/nginx reload
命令重新刷新nginx
配置,这样你的配置就生效了,你的域名也就可以使用啦。
1、mac挂载不上怎么解决?
我的mac使用上面挂载方式也挂载不上,不过百度一下,有人提供了解决办法:http://www.itstrike.cn/Question/97d1ea1d-b253-4124-842a-2d809f5d0fe2.html
要在 mount -t cifs
命令后面添加 nounix,sec=ntlmssp
,所以我把挂载命令改一下,手动执行一下就可以解决了:
mount -t cifs -o username=garygao,password=就不告诉你,codepage=cp936,isocharset=cp936,nounix,sec=ntlmssp //172.17.22.151/fanxing.git /data1/htdocs/kfgchmac
2、繁星开发服挂载跟域名都配置好了,为什么访问还会报网络错误?
给新人挂载繁星项目的时候常常会遇到一个问题就是访问新挂好的域名会出现404错误,显示网络请求失败,请截图联系客服
,原因是新的项目下面都没有Smarty
的编译目录,php
找不到目录就会报错。解决办法就是到App_Data/Smarty
目录下面创建一个名CompileDir
的目录就可以了。