• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Gitgithubwebhook自动更新/部署代码php自动更新脚本

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

这几天尝试了利用github的webhook,当代码更新到github,我们的测试服务器自动更新最新的gitbub仓库代码。

先列几个大概步骤,有时间再补充详细

1 . 服务器生成ssh key,一般在个人的家目录下,root用户在  /root/.ssh/id_rsa.pub。配置到github

2 . php.ini配置开启 shell_exec  函数(可以在php中执行shell脚本)

3. 查看php的运行用户,下一步要用。在nginx配置文件中查看。一般是www或者nginx

4.在我们部署代码的服务器写一个php接口 ,配置到github的webhook。

<?php

dump(shell_exec('sudo /home/wwwroot/deploy.sh'));

?>

5.写一个git更新代码的脚本(deploy.sh)。注意,git要写绝对路径。可以用  which git 命令查看。

#!/bin/bash

WEB_PATH='/home/wwwroot/PHPMailer/'
WEB_USER='www'
WEB_USERGROUP='www'
 
echo "Start deployment"
cd $WEB_PATH
echo "pulling source code..."
/usr/local/git/bin/git  reset --hard origin/master
/usr/local/git/bin/git  clean -f
/usr/local/git/bin/git  pull
/usr/local/git/bin/git  checkout master
echo "changing permissions..."
chown -R $WEB_USER:$WEB_USERGROUP $WEB_PATH
echo "Finished."

6.最后一步,因为我们是php脚本调用shell脚本。php是php运行的,php的执行用户一般缺少一些权限,直接运行shell脚本可能会权限不够。可以通过修改 /etc/sudoers,

使普通用户可以通过 sudo  + 命令 ,临时获取root权限。具体设置请百度

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP标记、发布时间:2022-07-10
下一篇:
PHP设置http头信息发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap