前言
平时工作中遇到的一些问题的排查和记录
walle (1.0)
walle
一个web
部署系统工具,配置简单、功能完善、界面流畅、开箱即用!支持git
、svn
版本管理,支持各种web
代码发布,PHP
,Python
,JAVA
等代码的发布、回滚,可以通过web
来一键完成。
1.0版本的官方文档:http://www.walle-web.io/docs/1/
检测时的问题解决
walle
部署的大概流程是:拉取代码到代码检出仓库 —> 同步代码到目标机器的发布版本库release
目录 —>webroot
目录软链到最新上线的目录
-
宿主机代码检出检测出错,请确认
php
进程用户www
有代码存储仓库/data/www/deploy
读写权限。这一步是执行进程的用户没有对宿主机目录
/data/www/deploy
的操作权限,把/data/www/deploy
这个目录权限给执行进程的用户
1、执行进程的用户:没有改的话,就是www
用户,可以执行ps -ef|grep nginx
这个命令看看
2、宿主机:就是walle
这个web
项目所部署的机器chown www:www /data/www/deploy
-
宿主机代码检出检测出错,请确认把php进程用户www的ssh-key加入git的deploy-keys列表。
这一步是将生成的
id_rsa.pub
文件内容,放到git
里面的ssh key
的配置里面,就是保证可以直接git clone git@xxxxx
拉取到代码,不需要其他的额外操作假设
www
是执行程序的用户,按下面的操作,得到id_rsa.pub
的内容,一般用户www
的家目录(/home/www
)是没有的,直接创建一个就好了su - www ssh-keygen -t rsa cat .ssh/id_rsa.pub
-
目标机器检测出错,请确认
php
进程www
用户ssh-key
加入目标机器的root
用户ssh-key
信任列表。1、目标机:代码需要发布到的机器
2、root
用户:配置的目标机的用户
把执行进程的用户的id_rsa.pub
文件内容,放到目标机的authorized_keys
里面就可以了 -
目标机器检测出错,请确认
root
有目标机器发布版本库/data/releases
写入权限。确认配置的目标机用户有发布版本目录
/data/releases
的权限 -
还有一个好像是把
git
的域名,放到known_hosts
里面,报错是什么样的,不记得了在执行进程的用户里面,先操作一次拉取代码
以上这些问题都解决了的话,就可以使用walle
部署你的项目了,具体的前期搭建运行walle
可以查看官方文档,文档很详细
walle & opcache
使用walle
部署php
项目的时候,如果开启了opcache
并且配置不当,会存在文件缓存的问题,每次上线之后,一直是在走老代码,这里需要改改配置,增加代码路径检测和检测间隔的配置
opcache.revalidate_path=1
opcache.revalidate_freq=60
后记
有什么不懂的可以加群问我
QQ群:630661697