项目相关部署

1.使用2台阿里云服务器,做了负载均衡

2.使用1台阿里云redis服务器,作为session存储,以及cache缓存,保证了2台服务器获取一致
	redis服务器的相关配置,涉及到的文件:
		config/database.php - redis的配置文件
		.env - 'session驱动配置' 和 '缓存驱动配置入口' (设置为redis)
		config/cache.php - 所有的缓存驱动(我们需配置里面的redis驱动,指向到 config/database.php 中的redis配置)
		config/session.php - 配置session驱动,也使用redis
	参考文档:
		http://laravelacademy.org/post/228.html - redis
		http://laravelacademy.org/post/1839.html - redis
		http://laravelacademy.org/post/3128.html - cache
		http://laravelacademy.org/post/3261.html - session

3.代码部署:
	当前整个项目的假设,大体上分3部分:
		1>线上2台nginx服务器代码
		2>coding.net上的代码
		3>开发团队中,每个人的本地环境代码
	核心,都是通过git来控制!所以,必需熟悉下git(有时间需要看看git相关书籍,需要一个好的git开发模式)

	简述下,目前3部分的整个流程:
		1>日常的团队开发:
			coding.net上的master分支,为稳定版本。主要用于开发团队共享的代码,团队中的每个人pull&push都在这里交互,一旦有人本地开发测试完毕,直接推送到远程master上,另一个人拉去最新代码,接着开发,有冲突则解决冲突,完毕后重新提交! 
		2>项目组的部分用户,具有2台nginx服务器的git的授权!本地从coding上拉取的,就是最新的代码,也就是可以同步上线的代码!直接将本地的代码push到线上的2台服务器!从而完成了线上代码部署!

4.代码部署,涉及到的git相关的知识:
	1>线上2台nginx服务器,1.需搭建git环境;2.对项目组某些人,需要推送权限。
		搭建git环境:
			参考文章:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000
		我这里简述下文章内容:
			1)安装git 
				yum -y install git
			2)创建 'git' 用户,来运行git
				adduser git
			3)创建git用户的ssh授权:
				这个也是完整的一块知识。这里先简述下具体操作:
				1.项目组成员,在自己本机,输入:ssh-keygen -t rsa,会在 '~/.ssh/' 下生成一个 'id_rsa' 和 'id_rsa.pub' 2个文件,分别代表 '私钥' 和 '公钥'
				2.每个人将自己的 'id_rsa.pub' 文件,发送给nginx服务器管理员
					1>mkdir /home/git/.ssh
					2>vim /home/git/.ssh/authorized_keys
					3>将项目组的每个成员的 'id_rsa.pub' 里的内容,复制进来,每行一个!
					4>:wq,保存退出
			4)初始化git仓库
				在服务器的www目录下
					mkdir pinxuejianyou
					cd pinxuejianyou
					git init --bare 	// '--bare' 表示创建一个裸仓库,没有工作区,纯粹是为了共享,不让用户直接登录到服务器上去改工作区。
			5)修改git仓库的权限
				chown -R git:www pinxuejianyou
			6)禁用git用户的shell登录
				vim /etc/password
				git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell	// git用户修改shell

	2>具有推送给线上nginx服务器的用户本机(最初,应该是本地已经测试好了项目,然后往服务器上、coding上推送)
		1)本地安装好了git客户端,项目刚开始,就使用了git版本控制(假设目录是 'pinxuejianyou')
			cd pinxuejianyou
			git init 	// 初始化了git仓库
		2)因为本地已经有了项目,需要同 'nginx线上服务器' 的git,进行远程关联:
			git remote add server git@xxx		// 这里我们将 'nginx线上服务器' 仓库命名为 'server'
		3)将本地库的内容,推送到线上!
			git push -u server master			// 由于远程库是空的,第一次推送时,加上 '-u'
		注意:
			有个前提是:已经将该用户的 'id_rsa.pub' 内容添加到 'authorized_keys' 文件中,有推送权限了

		4)同样的,对于coding.net来说,是另一个远程库。
			1.注册coding帐号,账户里,设置 ssh认证!
			2.在coding上创建一个项目
			3.git remote add origin git@xxx 	// 将coding上的远程库命名为 'origin'
			4.git push -u origin master			// 首次加 '-u'
			5.之后一旦修改了文件,测试好后,执行:git push origin master

	3>对于新加入项目的成员:
		mkdir pinxuejianyou
		cd pinxuejianyou
		git clone git@xxx		// coding上的仓库地址
		修改文件后,执行  git push origin master

	4>coding服务器,上面其实提到了:
		登录、创建一个项目即可,大家以后在这块共享代码!

5.git管理的相关软件:
	1>管理公钥:
		Gitosis
	2>管理权限:
		Gitolite
	3>git客户端:
		TortoiseGit
		sourceTree - mac下也有

6.关于ssh,就不介绍了,我自己也需要更多学习,这有几篇文章不错:
	https://segmentfault.com/a/1190000002627706
	https://www.chenyudong.com/tag/ssh
	https://www.cyberciti.biz/faq/force-ssh-client-to-use-given-private-key-identity-file/ - 当公钥认证通过不了,直接指定私钥来认证

7.线上部署,还没研究:
	http://www.walle-web.io/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值