ubuntu伺服器中搭配碼雲git自動更新鉤子
阿新 • • 發佈:2018-11-19
本次主要以配置碼雲git的自動pull鉤子記錄與分享:
- 一臺 Ubuntu18.10 的伺服器
由於本人最近心血來潮買了一臺伺服器,開一個新專案,所以作為此次記錄與分享
- 搭配環境 PHP7.2 mysql Nginx Git
這裡不講解如何搭配環境,如有需要 看這裡 https://blog.csdn.net/qq_14824885/article/details/80752013
- 配置
由於我的專案是私有的,所以這裡有幾點要注意
git config --global user.name ‘使用者名稱’ #配置使用者名稱 git config --global user.email '郵箱‘ #配置郵箱 git config --global credential.helper store #記住賬號密碼 cd /www/ git clone http://{使用者名稱}:{密碼}@gitee.com/name/project.git #必須要用這種形式進行克隆專案
以下是pull時候呼叫的php程式碼
public function gitPull(Request $request) { // 接收的密碼資訊 由於我是寫在專案裡面的 用的是ThinkPHP 所以接受資訊的方式有點不同,根據實際情況修改 $password = $request->param('password'); $savePath = "/www/ordering_system"; $gitPath = "origin master"; //自定義字串掩碼 用於驗證 $access_token = '密碼'; $client_token = $password; //驗證token 有錯就寫進日誌並退出 if ($client_token !== $access_token) { echo "error password"; exit(0); } //執行shell命令並把返回資訊寫進日誌 exec("cd {$savePath} && /usr/bin/git pull {$gitPath} 2<&1 ",$output); // $output = shell_exec("cd {$savePath} ; git pull {$gitPath} 2<&1"); trace($output, "--------自動更新檔案--------"); trace(date('Y-m-d H:i:s',time()), "--------自動更新檔案--------"); echo json_encode($output); }
可以開啟地址試試 以下是效果
之後試試看,如果發現git許可權不足,就是因為你的環境PHP中不是跟你的專案同一個使用者組,所以需要更改PHP啟動的服務使用者和你的專案一致,或許是相同使用者組
https://blog.csdn.net/qq_14824885/article/details/84197579
之後進入到碼雲的相關專案詳情中 新增一個
填寫 如果push操作的時候 就呼叫的 url地址 然後還有密碼 是上邊程式碼裡面需要驗證獲取的
附
在composer 專案的時候發生了一個錯誤
proc_open(): fork failed - Cannot allocate memory
據說是交換空間不足,需要建立交換空間。解決方案:
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo /sbin/swapon /var/swap.1