使用 GitLab WebHooks 功能在 Linux 下自动部署PHP代码

Web hooks 用于当 GitLab 上的项目有变化的时侯以 HTTP 接口的形式通知第三方

使用 GitLab WebHooks 功能在 Linux 下自动部署PHP代码_第1张图片
webhooksline.png

Web Hooks 脚本


在更新服务目录下新建 githooks.php
代码如下:

&1");
fwrite($fs, 'Info:'. $output.PHP_EOL);

fwrite($fs,PHP_EOL. '================ Update End ==============='.PHP_EOL.PHP_EOL);

$fs and fclose($fs);

设置 Deploy Keys


  1. 通过 $who=exec('whoami') 的命令日志,可以知晓脚本的执行用户,以 www 用户为例
  2. 切换到 www 用户 : su www
  3. 使用 www 用户生成 SSH Keys, 复制 SSH Keys;
  4. 登录到 GitLab 选择 Project -> Setting -> Deploy Keys -> New Deploy Keys,添加 SSH Keys . Deploy Keys 只有 read-only 权限,用于项目部署;
    使用 GitLab WebHooks 功能在 Linux 下自动部署PHP代码_第2张图片
    deploykeys.png
  5. 将 GitLab 上的项目 手动 pull 到 www_file 目录下;

添加 Web Hooks 地址


  1. 拼写 Web Hooks 地址:
    http://git.redoca.com/xxx/githooks.php?token= e1bfd762321e409cee4ac0b6e849876c
    token为自定义,与 githooks.php 中的 token 一致即可;
  2. 登录到 GitLab 选择 Project -> Setting -> Web Hooks 添加 Web Hooks 地址,Trigger 选择 Push events;
    使用 GitLab WebHooks 功能在 Linux 下自动部署PHP代码_第3张图片
    webhooks.png
  3. 在本地机器 push 一次提交,验证是否同步更新至服务器;如遇问题查看 gittesthooks.log;

你可能感兴趣的:(使用 GitLab WebHooks 功能在 Linux 下自动部署PHP代码)