部署代码遇到坑

独立开发这个项目之后,各种杂事也要单独处理了,也许这就是服务端「杂」的原因之一吧。

之前已经在自己的机器上去除了XAMPP的开发环境,手动部署了MAMP的环境,只差mysql环境没装好,brew安装mysql有些权限的问题,mysql还是使用的XAMPP中的mysql。把Apache服务器切换到Nginx(openresrty),本来以为部署这个环境已经没有什么问题。以下今天早上将代码部署到 内部测试机器 沙箱 遇到的坑。

1、scp 沙箱没有scp,需要传一些文件到沙箱服务器,当时确实考虑到换一个方法来发文件。也是年轻,想着沙箱现在也是内部使用,我装个scp应该不会有问题,yum安装,机器竟然就挂了 orz,找运维重启了机器。以后遇到这种事情还是不要轻举妄动。

2、机器重启,个人目录下的文件全部没了,这个点,我竟然就想过要先解决!这个坑最深。

3、我直接jenkins部署了项目管理后台的代码,jenkins应该是root权限运行,直接clone了最新代码,权限为root,坑3。因为使用smarty,会生成模板缓存文件,nginx的运行用户为www,无法读写某个文件夹,产生不了文件,导致后台进去一只是白屏,也没有报错。一度认为是rewrite的原因。后来查看了nginx的error.log才发现这个问题。

4、沙箱是一台docker机器,不是我熟悉的centos,开启各种环境的指令也不一样。

5、线上是集群,代码里面一些host指向各个机器,沙箱机器却无法编辑/etc/hosts文件,也无法修改为可写。无法执行sudo命令。只能手动更改代码里面的host了。机器挂掉之前hosts文件是被修改过的,后面要找运维询问如何修改这个文件,否则每次部署代码都要修改host。

6、数据库变更文件没有先导入。

7.沙箱是测试机器,一起开发人员上传过很多测试文件,但是因为坑1,文件全没了....找运维恢复后,以上步骤请重新来过......

总结一下我犯的错误:

1、不该随便在陌生的机器上执行会产生修改机器的指令,安装软件,修改陌生的系统文件等。

2、遇到问题一定不能着急,一定要先想办法进行最大程度的恢复。

3、由于项目部分没有设置jenkins,需要手动进行代码合并,对于代码的修改我必须现有一个记录。

4、先想好一个部署的checklist,确保万无一失。

在总结一下之后需要部署这台服务器的步骤。

1、代码合并提交到svn仓库。

2、数据库迁移文件。

3、需要手动合并的代码,一定要现有一个记录,好进行文件替换。

4、重启nginx


暂时想到这些,其实也不是全是坏消息。

好消息是  scp 能用了哭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值