日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

在gitlab 中使用webhook 实现php 自动部署git 代码

發布時間:2023/11/29 php 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在gitlab 中使用webhook 实现php 自动部署git 代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在技術團隊討論中,我們決定從svn 遷移到 git ,于是使用了gitlab,代碼自動部署使用了webhook

在服務器上

1.開啟PHP需要的環境支持

服務器環境必須先安裝git 環境,webhook 依賴php運行環境,同時需要使用shell_exec 和 exec 等函數。使用前先開啟php部分可執行函數。

$ which php /usr/local/php/bin/php$ sudo vi /usr/local/php/etc/php.ini;disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,popen

2.查看nginx 運行用戶

因為gitlab 的 webhooks 的使用者都是web 服務器在用,我使用的是nginx ,所以必須的知道nginx和php-fpm的所有者是誰

$ ps aux | grep php$ ps aux | grep php-fpm

我的環境下是nginx

3.生成部署公鑰

sudo -Hu nginx ssh-keygen -t ras #一路回車下去就可以了

然后把公鑰添加到gitlab 上去,不要問我怎么添加的,如果使用過github,就應該知道這個是怎么回事

4.首次從gitlab clone,指定目錄需要為空

git clone git@git.xxxx.com:test/test.git /data/www/git_test/

在網站根目錄下放置webhook 自動部署文件webhook.php,然后gitlab 對應項目的webhook 配置使用該文件的網址

<?php //git webhook 自動部署腳本 //項目存放物理路徑 $path = "/data/www/git_test/test/";$requestBody = file_get_contents("php://input");if (empty($requestBody)) {die('send fail'); } $content = json_decode($requestBody, true);//若是主分支且提交數大于0 if ($content['ref']=='refs/heads/master' && $content['total_commits_count']>0) {$res = shell_exec("cd {$path} && git pull 2>&1");//以nginx用戶運行$res_log = '-------------------------'.PHP_EOL;$res_log .= $content['user_name'] . ' 在' . date('Y-m-d H:i:s') . '向' . $content['repository']['name'] . '項目的' . $content['ref'] . '分支push了' . $content['total_commits_count'] . '個commit:' . PHP_EOL;$res_log .= $res.PHP_EOL;file_put_contents("git-webhook.txt", $res_log, FILE_APPEND);//追加寫入}

修改這個文件的所有者為 nginx

chown -R nginx:nginx webhook.php

參考文章
1.http://www.piaoyi.org/linux/G...
2.https://docs.gitlab.com/ce/us...
3.https://m.aoh.cc/149.html

總結

以上是生活随笔為你收集整理的在gitlab 中使用webhook 实现php 自动部署git 代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。