版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36864496/article/details/79670511
目的:不用每次代码git提交以后,再去服务器pull一次。
比设置定时任务的好处是:不用一直请求,而是push时触发
具体步骤:
1. 码云上建库
2. 服务器上git配置
2.1安装git
2.1.1、yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel
安装必备库
2.1.2、yum -y install git-core
安装git核心版
2.1.3、git --version
查看是否安装成功
2.2 配置git
2.2.1、git config --global user.name "xxx"
2.2.2、git config --global user.email xxx@xxx.com
2.3. 切换到要存放项目是目录
cd /home/wwwroot
2.4. 克隆代码
2.4.1、git clone git@gitee.com:xxx/xxx.git mytest.xxx.com-test
ps: 地址分为HTTPS和SSH,如果用SSH需要生成公钥,然后添加到码云的公钥列表里
默认创建的项目文件夹是码云上的项目名称,需要修改要在地址后面加一个空格和要自定义的名字
git clone git@gitee.com:xxx/xxx.git mytest.xxx.com
2.4.2、生成公钥
ssh-keygen -t rsa -C "xxx@xxx.cn"
执行完命令会输入存放公钥的文件夹,如:/root/.ssh/
3. 参考链接
Gitee码云通过WebHooks实现自动同步代码部署
http://blog.csdn.net/LMH820822/article/details/78356399?locationNum=10&fps=1
4. 问题解决
PHP shell_exec或exec执行权限问题
设置让php能够以root权限来执行exec() 或者 shell_exec()
https://www.cnblogs.com/miaoshiqian/p/4482666.html
将 PHP 的执行用户加到 sudo 免密输入的列表中
主要还是权限的问题,最好用 sudo git pull
修改配置以后需要重启 php-fpm 或 Nginx
chmod -R 777 /home/cookiex/abc
其他参考
PHP shell_exec或exec执行权限问题
http://www.metsky.com/archives/843.html
实际上执行的命令:
cd /home/wwwroot/mytest.xxx.com/ && git pull
重启Nginx
service nginx start
重启PHP-fpm
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
或
service php-fpm restart
如果遇到手动执行git pull 报错 Please, commit your changes or stash them before you can merge
使用这个命令
git reset --hard
git pull
解决问题的思路和思考:
PHP代码执行不成功,手动通过xshell执行命令,看是否提示错误
如果没有错误,查看是否用户权限问题,PHP执行默认www用户或别的,xshell是root用户
写日志错误,文件夹没有权限
shell_exec函数执行错误, 修改PHP配置文件,默认是禁用此类函数
多查资料多尝试多比较多总结多思考,量变引发质变
参考代码:
码云WebHooks自动化部署
http://t.cn/RnoGJC0
————————————————
版权声明:本文为CSDN博主「qq_36864496」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36864496/article/details/79670511
|
|