参考文档 https://blog.csdn.net/yufan_xiaowu/article/details/52513838
如果git托管到自己的服务器上,若有推送则自动部署,需要配置.git/hooks/post-receive文件
#!/bin/sh
echo "收到了推送\n" >> test.txt
# git pull
- 注意:需要有权限的用户才能执行
如果使用码云托管代码,若推送到码云,则利用码云的钩子通知部署网站的服务器下拉代码
- 设置码云钩子,项目-管理-WebHooks-添加POST地址参考
- 设置PHP调用shell_exec自动部署,若没有开启该函数,在php.ini中开启。
- 设置用户权限:我用的是LNMP搭建,运行PHP的用户是www,则需要把项目的文件夹及所有文件的权限授予www用户,执行
chown www.www * -R
,注意.git目录是否设置成功
// 下拉代码
public function gitpull(){
if(function_exists("shell_exec")){
$cute = "cd __ROOT__ && git pull https://user:pass@gitee.com/user/project 1>&2";
$exe = shell_exec($cute);
return "下拉完成-".date('Y-m-d H:i:s');
}else{
return '系统配置:shell_exec函数不可用';
}
}