php实现github代码托管自动化部署

首先我的线上部署环境是在宝塔。你们自己环境自己配置。

1.在宝塔服务器创建站点
在本地创建一个触发勾子的php脚本

代码如下

&1");
  exit();
}
}

http_response_code(404);
?>

这里用到的php代码会用到shell_exec函数
而宝塔默认是禁用这个函数的,你需要在软件商店的使用的对应php版本禁用函数把这个函数从列表删除即可

2.推送本地上远程同时配置github的勾子

php实现github代码托管自动化部署_第1张图片

主要配置箭头的这两个,url是上面给出的代码放在线上环境的位置。密钥是你对应上面代码$secret的内容。
3.远程登录服务器并用https协议clone项目代码

ssh [email protected] -p 22

用rm -rf 去删除掉之前的项目。这里删掉原来项目的原因是宝塔默认创建项目会有一个.user.ini,这个东西会导致我后面改权限会报错。

git clone github的项目。

3.修改权限

chown -R www .
chmod -R g+s .


这里为什么还要改权限,这里我是用root去登录,文件的拥有者和管理组都是root,而这个远程执行勾子是通过apache去做,它的执行者是www,所以我需要用这两个命令使它拥有这个目录的完全操作权。

至此整个部署已经完成,你会发现你线下修改只要推送到github,打开网页会立即看到变化。

你可能感兴趣的:(托管工具)