码云使用WebHooks钩子文件自动部署代码

在你的码云仓库里面按如下执行:管理-》WebHooks -》添加一个WebHooks钩子文件,这个文件就是回调文件,当你在本地有git push 操作时这个回调文件自动执行,等下我们来创建这个回调文件,主要作用是什么一看就知道。
在这里插入图片描述

执行添加:

在这里插入图片描述
url 填钩子的地址,即回调地址,例如你的域名下的webHooks.php 文件。
你可以设置一个密码,如123456或者不填。
push 一定要勾上,其他也可以勾上。
点击添加即可。

啥也不说了,直接贴出这个webHooks.php文件。

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2020/11/12
 * Time: 11:09
 */
file_put_contents('v999.log', date('Y-m-d H:i:s', time()) . '执行了一次git pull任务。' . PHP_EOL, FILE_APPEND);

$savePath = "/home/wwwroot/xxxx.com"; // 你的代码部署地址
$gitPath = "https://gitee.com/xxxx/xxxx.com.git";//你的仓库地址
shell_exec("cd {
    
    $savePath} &&   git pull {
    
    $gitPath} 2>&1");//拉代码
echo date('H:i'). "  git pull success";

这个脚本直接免去了克隆代码那一步,如果你的代码没有在/home/wwwroot/ 下你自己去克隆一下。
然后回到码云仓库我们测试一下:
在这里插入图片描述
我们手动点一下测试,如果输出正确说明钩子文件配置成功。如果有报错,你地址可能填写错误。

如果你的代码没有pull 到线上,一般是shell_exec 没有生效,可以在php.ini中设置一下。进入php.ini
找到 disable_functions,配置如下:
disable_functions =
将其中的shell_exec 等函数删除。

如果依然无法git pull 到线上,那么按一下方法解决:
把该项目整个目录修改为:www用户和www组
进入项目:
chown -R www:www *
 
然后切换到www用户
su www

去目录那里执行git pull 如果要输入账号密码的话就按下面的方式解决:
首先进入到项目目录,输入下面的命令:
git config --global credential.helper store
这个命令会在生成一个文件 ~/.git-credentials 用来记录账号和密码。

然后输入 git pull 命令,会提示输入账号密码,命令执行完后 ~/.git-credentials 文件里会保存你的账号密码,这样下次再次 git pull 的时候就不用输账号密码了。

然后再切到root 下改点本地的文件上传到码云,再看下是否自动部署,一般都会成功。

猜你喜欢

转载自blog.csdn.net/weixin_42433970/article/details/109719968
今日推荐