參考文檔 https://blog.csdn.net/yufan_xiaowu/article/details/52513838
如果git托管到自己的服務(wù)器上柬祠,若有推送則自動部署,需要配置.git/hooks/post-receive文件
#!/bin/sh
echo "收到了推送\n" >> test.txt
# git pull
- 注意:需要有權(quán)限的用戶才能執(zhí)行
如果使用碼云托管代碼棍好,若推送到碼云杠人,則利用碼云的鉤子通知部署網(wǎng)站的服務(wù)器下拉代碼
- 設(shè)置碼云鉤子丘侠,項目-管理-WebHooks-添加POST地址參考
- 設(shè)置PHP調(diào)用shell_exec自動部署,若沒有開啟該函數(shù)饭望,在php.ini中開啟塑娇。
- 設(shè)置用戶權(quán)限:我用的是LNMP搭建澈侠,運行PHP的用戶是www,則需要把項目的文件夾及所有文件的權(quán)限授予www用戶埋酬,執(zhí)行
chown www.www * -R
哨啃,注意.git目錄是否設(shè)置成功
// 下拉代碼
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 '系統(tǒng)配置:shell_exec函數(shù)不可用';
}
}