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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

玩转git之webhook应用初探

發布時間:2023/12/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 玩转git之webhook应用初探 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.通過gitlab的webhook來進行測試項目的自動部署;
2.php程序以www用戶來執行,當執行exec("sh update.sh")時,update.sh腳本也是以www用戶執行的
注:exec("sh update.sh >& error.log");可以將文件重定向到error.log文件中
3.結果發現,之前設置的ssh密鑰是以root用戶來設置的,php以www用戶執行腳本中的git pull 命令時就沒有權限
4.通過設置www下的ssh密鑰, sudo -u www ssh-keygen ... ?以www用戶執行生成密鑰的操作
5.gitlab的deploy keys 可以設置ssh密鑰只能針對指定的項目,所以,針對項目的,我們將rsa.pub貼到指定項目的deploy keys中去,而針對用戶的,我們將ssh密鑰貼到gitlab的用戶信息的ssh keys中去;

======================================================================

在百度搜索了一下 git webhook 這個關鍵字,沒有看到有相關的詳細的應用教程。

所以決定把 自己這段時間以來的摸索 寫成文字 分享給大家 。

最近碰到這樣的一個需求,就是?本地提交代碼 到 git倉庫以后 需要 網站 遠程自動同步代碼?。

git 的 webhook ?正好能 滿足 這個需求。

?

具體步驟:

服務器端:

1. 服務器端 生成 apache 的 deploy key

sudo -u apache ssh-keygen -t rsa -C “jianl@example.com”

2.給apache 操作目錄的權限

第一種方法 直接給 目錄 777 權限 簡單粗暴

第二種方法 建立用戶組 ?把 ftp用戶 和 apache 添加到該組別里面 , 給予該組權限

groupadd gitwriters adduser [yourusername] gitwriters adduser apache gitwriters chgrp -R gitwriters /path/to/your/repo chmod -R g+rw /path/to/your/repo ?3.在需要自動同步的倉庫打開hook cd /項目/.git/ cp hooks/post-receive.sample hooks/post-receive vim hooks/post-receive #加入下面代碼 GIT_WORK_TREE=/home/www git checkout -f ?4.加入接收 webhook的 腳本, 在項目 創建 update.php $www_folder = "/2T/ftp/utools/uilib" ;//git倉庫地址 $git_repo = "git@git.dev/.......abc.git" ;//執行指令 echo shell_exec(" cd $www_folder && git pull $git_repo 2>&1 "); gitlab 端的設置: 找到項目的設置 , deploy key項 添加 直接 apache用戶 生成的 ssh key webhook 項 添加 網站地址/update.php (正常能夠訪問的鏈接) , 勾選 Push events 保存

完全以上配置 。服務器端自動同步代碼的功能就能夠實現了。

總結

以上是生活随笔為你收集整理的玩转git之webhook应用初探的全部內容,希望文章能夠幫你解決所遇到的問題。

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