Tools
首页
画图
音乐
采集
记事
博客
实验室
登录
lypeng
146
文章
11
分类
46
记事
分类
生活-[23]
Linux-[24]
前端-[9]
数据库-[16]
PHP-[31]
git-[7]
其他-[6]
python-[20]
算法-[4]
React-Native-[4]
中草药-[2]
广告位1
广告位2
首页
/ git
返回列表
php通过exec更新git文件
阅读:315
发布:2021-09-20
作者:lypeng
代码推送到git后,怎么更新服务器上部署的网站? 之前说过一种方法,利用webhook,每次代码推送后,执行自定义shell脚本,通过安装fcgiwrap,执行sh脚本,稍微复杂点; 原文【[怎么让URL执行一个shell脚本](https://www.lypeng.com/article/view?id=126 "怎么让URL执行一个shell脚本")】 今天说一种简单的,用exec命令来执行,代码如下: ```php ``` 即,每次推送后,手动请求下这个php文件,更新服务器代码。 ### 报错1: 不能打开文件.git/FETCH_HEAD,没权限 开始怀疑是用户或组的问题,chown改了也不起作用;后来不停尝试折腾,看了一下,文件是存在的,猜测是没有写权限 ``` cd /home/wwwroot/tp6 chmod a+w .git -R ``` ### 报错2:密钥不对,没有权限或仓库不存在 检查,php是以www用户运行的,我的www家目录默认在/phpStudy/www,没有.ssh目录 创建了/phpStudy/www/.ssh目录,把本地的文件都传上去,OK,成功!喜悦~~ ``` 2021-09-20 20:15:08int(0) array(1) { [0]=> string(19) "Already up to date." } ``` ``` 2021-09-20 21:28:29int(0) array(4) { [0]=> string(25) "Updating c29aa36..491c288" [1]=> string(12) "Fast-forward" [2]=> string(41) " app/home/controller/Article.php | 4 ++--" [3]=> string(48) " 1 file changed, 2 insertions(+), 2 deletions(-)" } ``` ### 报错3:更新成功,没有权限删除文件,unlink file 解决:把文件夹归属到www用户,`chown www:www tp6 -R` #### 附:进程的执行用户 Nginx nginx.conf第一行,user root root; PHP /usr/local/php/etc/php-fpm.d/www.conf 文件的后面 user = www group = www 说明,PHP不能以root用户执行,否则报错 www用户的家目录在哪,看/etc/passwd文件 我的是:/phpStudy/www
------本文结束
感谢阅读------
上一篇:
centos安装gitlab简单记录
下一篇:没有了