1. 程式人生 > >GitHub鉤子同步專案程式碼到網站目錄

GitHub鉤子同步專案程式碼到網站目錄

   對於個人專案而言,有的人專案託管在github上,線上訪問地址放在自有伺服器上。

    平時自己開發的話,要先push到github,在到自己伺服器上pull下來(伺服器上裝了git),特別麻煩。

    github有個webhook,可以在push之後觸發,這樣我們就可以利用鉤子出發伺服器指令碼,執行pull命令拉取最新程式碼了。

blob.png

但配置這個鉤子,有幾點坑需要提一下

  1.我們伺服器上的web檔案,大多是使用者和使用者組都是www(我用的一鍵lnmp指令碼配置的lnmp環境),

    所以平時執行那些PHP檔案,也都是www使用者執行的。那麼我們就必須以www使用者來吧程式碼倉庫clone下來

    然後以www的身份去生成ssh金鑰 

ssh-keygen -t rsa -C "[email protected]"

  生成之後記得把公鑰放在github裡的專案配置裡。

    2.github的鉤子,是在操作成功後header裡帶著金鑰以POST方式請求一個你的URL,所以金鑰演算法需要你在程式碼裡自己寫

blob.png

 這裡需要注意下,github裡有兩種請求方式可供選擇,一種是表單式post,我們可以正常用$_POST接收,還有一種是json式post,PHP只能用

php://input去接收了,每次調取url都是帶著金鑰的,你需要判斷金鑰對,在pull,否則任何人都可以pull了,下面是github金鑰的演算法PHP版本

$github_signa = $_SERVER['HTTP_X_HUB_SIGNATURE'];
list($hash_type, $hash_value) = explode('=', $github_signa, 2);
$payload = file_get_contents("php://input");$secret = '你在github配置的secret';$hash = hash_hmac($hash_type,$payload,$secret);if($hash && $hash === $hash_value)
{
	echo '認證成功,開始更新';
    echo
exec("./github_pull.sh"); echo date("Y-m-d H:i:s"); }

  3.由於執行shell命令涉及到 php的exec方法,預設是不開啟這個方法的,需要你去php.ini開啟它

下圖是鉤子訪問url的時候的返回資料

blob.png

最後 小貼士:為什麼我的提交記錄不被github記錄呢,為什麼無法點亮小綠點?

git config --global user.name "your name" //配置使用者名稱和github名稱一致 否則不計入提交次數
git config --global user.email "your email" //配置email

相關推薦

GitHub鉤子同步專案程式碼網站目錄

   對於個人專案而言,有的人專案託管在github上,線上訪問地址放在自有伺服器上。    平時自己開發的話,要先push到github,在到自己伺服器上pull下來(伺服器上裝了git),特別麻煩。

lunix或者centos伺服器下如何下載自己在github上面的專案程式碼

一、通過git下載 1、若電腦未安裝git,需先安裝git 檢視系統是否已經安裝git git --version 2、CentOS7 yum 安裝git yum install -y git 解除安裝git yum remove git 3、從github

使用git上傳專案程式碼github

如果一個人沒有github,都不好意思說自己是碼農,github作為一個開源的程式碼倉庫管理平臺,對程式碼的管理確實很方便 其次我們在GitHub,可以十分輕易地找到海量的開原始碼,是不是很開心 1、註冊Github賬號,註冊地址:https://github.com/join?s

使用git將專案程式碼上傳到github流程

用git將專案程式碼上傳到github流程   先上常用語句 git add . git commit -m "img commit" $ git pull $ git push -u or

github新建專案及上傳本地專案程式碼

本文章講解內容為github建立新專案並上傳本地已有專案程式碼 一.在github上新建倉庫 登入github後進入首頁點選“New repository”按鈕開始建立新倉庫,首頁如下: 2.點選後進入“Create a new repository”頁面,輸入專案名比

Github與Git的程式碼同步

現在自己的任務是將自己的專案程式碼放到git本地倉庫裡面,然後再傳到遠端倉庫github裡面去 下面的命令列在專案檔案所在路徑下的git bash中執行 git status 檢視專案程式碼檔案修改、新增、刪除的狀態(這些檔案我稱為改動檔案) git

後端程式碼之服務端 - 專案工程化建立目錄&&啟動服務 -講解篇

文章目錄 前言 一、 目錄建立 與 應用啟動 A. 步驟如下: B. 具體cmd命令執行流,截圖如下:(`部分無效,可忽略`) 二、 檢視Exp

Mac Git 學習教程 之 本地專案程式碼上傳到GitHub

在終端上輸入命令,拉一下遠端的程式碼,如出現報錯“fatal: refusing to merge unrelated histories”,只需要在該命令列新增允許即可“--allow-unrelated-histories”,然後跳出文件說明,退出即可,具體如下圖

Git的使用之提交本地專案程式碼GitHub

一、前提條件 下載Git工具(下載地址:https://git-scm.com/downloads) 註冊GitHub賬號(GitHub官網 https://github.com/)   二、相關命令 將遠端版本庫的檔案克隆到本地專案中

Github上fork專案後與源專案同步

先上一個流程圖 首先是fork一個專案到自己的Github上 把自己Github上的程式碼clone到本地 git clone https://github.com/wxxiong6/php

maven專案匯入出現jar檔案沒有同步釋出到自己專案的lib目錄

最近maven專案匯入出現配置都正確且run as都可以不報錯,但啟動時報如下錯誤:嚴重: Error configuring application listener of class org.springframework.web.context.ContextLoad

如何使用git將程式碼上傳至githup?以及如何利用github搭建自己的個人網站?

這裡是修真院前端小課堂,每篇分享文從 【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】 八個方面深度解析前端知識/技能,本篇分享的是: 【 如何使用git將程式碼上傳至githup?以及如何利用github搭建自己的個人網站?】

如何使用Git上傳專案程式碼github

配置Git 我們先在電腦硬盤裡找一塊地方存放本地倉庫,比如我們把本地倉庫建立在C:\MyRepository\1ke_test資料夾下 進入1ke_test資料夾 滑鼠右鍵操作如下步驟: 1)在本地倉庫裡右鍵選擇Git Init Here,會多出來一個.git資料夾,這就表示本地git建立成功。右

藉助GitHub託管你的專案程式碼

PS:話說自己註冊了GitHub都很久了,卻沒有怎麼去弄,現在系統學習一下,也把自己的學習經歷總結下來share給大家,希望大家都能把GitHub用起來,把你的專案程式碼happy地託管起來! 一、基本概念   1.1 必須瞭解的概念   (1)倉庫 - Repository   倉庫即你的專案,你想

windows環境下使用git客戶端、GitHub和TortoiseGit管理專案程式碼

最後更新於2017年01月24日 一、為什麼   為什麼不用svn? svn是一個優秀的程式碼和版本管理工具,使用svn只需要搭建好svn中央倉庫,配置本地svn客戶端即可,自從google code關閉服務之後,網際網路上已經沒有非常好的公共svn倉庫,如果是公司內部使用,還可以用上公司內網搭建的sv

使用Git上傳專案程式碼github(超詳細)

如何使用Git上傳專案程式碼到github github是一個基於git的程式碼託管平臺,付費使用者可以建私人倉庫,我們一般的免費使用者只能使用公共倉庫,也就是程式碼要公開。這對於一般人來說公共倉庫就已經足夠了。 註冊賬戶以及建立倉庫 要想使用gi

github~安裝和IDEA同步專案使用

註冊與下載 安裝 一直點選下一步即可 cmd進到dos下 輸入git,出下下圖內容 安裝成功 IDEA配置git setting–》填寫安裝目錄的路徑,點選test,會顯示成功! GitHub填寫你在官網中註冊的使用者名稱和密碼。

svn客戶端提交專案程式碼後自動同步svn伺服器上的專案程式碼到linux伺服器上

1.在linux伺服器建立專案資料夾  mkdir phsystem 2.手動同步svn伺服器上的程式碼到linux伺服器 svn  co  svn://192.168.1.99/hsh/phsystem(svn伺服器檔案路徑)       /home/phsystem(

用gitbash將專案程式碼上傳到GitHub

配置Git 我們先在電腦硬盤裡找一塊地方存放本地倉庫,比如我們把本地倉庫建立在C:\MyRepository\1ke_test資料夾下 進入1ke_test資料夾 滑鼠右鍵操作如下步驟: 1)在本地倉庫裡右鍵選擇Git Init Here,會多出來一個.git資料夾,這就表示本地git建立成功。右

github的基本操作-----同步專案(1)

github上同步專案 step1: 將github上的專案克隆到本地: 假設要在zhen賬戶下, 需要修改同步的專案叫XXX git clone https://github.com/zhen/xxx.git # 下載後會出現xxx目錄