利用WebHook實現PHP自動部署Git代碼


平時項目代碼都托管在Coding,然后每次提交了代碼之后都要SSH到服務器上去git pull一次,很是繁瑣,在看了OverTrue的《使用PHP腳本遠程部署git項目》后就嘗試在自己服務器上搞一下自動化部署,下面把部署步驟列出來算是一個分享與備忘。

首先在Coding上創建一個項目,然后在本地clone一份。

在服務器上(以Nginx環境為例,Apache請看OverTrue的教程)

1. 生成公鑰

公鑰有兩個:1. git用戶公鑰,2. 部署公鑰:

git用戶公鑰

 

 

部署公鑰

sudo -Hu www ssh-keygen -t rsa # 請選擇 “no passphrase”,一直回車下去

2. 准備鈎子文件

創建和修改目錄權限:

 

 

寫入鈎子文件:

 

 

 

 

確保你的hook文件可以訪問:http://example.com/hook/index.php,鈎子准備完成。

3.修改git配置和保存git用戶名密碼

 

 

在Coding網站

1.添加用戶公鑰

復制/root/.ssh/id_rsa.pub內容到個人設置頁的SSH公鑰里添加即可(https://coding.net/user/account/setting/keys)

2.添加部署公鑰

復制/home/www/.ssh/id_rsa.pub的內容並添加到部署公鑰:

選擇項目 > 設置 > 部署公鑰 > 新建 > 粘貼到下面框並確認

3.添加hook

選擇項目 > 設置 > WebHook > 新建hook > 粘貼你的hook/index.php所在的網址。比如:http://example.com/hook/index.php, 令牌可選,但是建議寫上。

稍過幾秒刷新頁面查看hook狀態,顯示為綠色勾就OK了。

初始化

1.我們需要先在服務器上clone一次,以后都可以實現自動部署了:

 

 

這個時候應該會要求你輸入一次Coding的帳號和密碼,因為上面我們設置了永久保存用戶名和密碼,所以之后再執行git就不會要求輸入用戶名和密碼了。

**!!注意,這里初始化clone必須要用www用戶**

2.往Coding.net提交一次代碼測試:

在本地clone的倉庫執行:

 

OK,稍過幾秒,正常的話你在配置的項目目錄里就會有你的項目文件了。

初始化Laravel框架

1. 下載Composer

在項目目錄下執行:

 

 

**!!記得在本地提交的時候在.gitignore中加上composer.phar**

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

以上只是針對我個人服務器環境的一個搭建過程,歡迎大家指正、探討。

服務器環境:Linux(CentOS) - AMH - Nginx & MySql
WWW用戶目錄:/home/www
項目目錄:/home/wwwroot/Dev/website.com/web/
Hook目錄:/home/wwwroot/Dev/m.website.com/web/hook/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM