1. 程式人生 > >CentOS7 寶塔搭配git 實時更新專案原始碼

CentOS7 寶塔搭配git 實時更新專案原始碼

上一篇文章 介紹瞭如何在CentOS7上 搭建GIT環境 詳見連結:https://www.cnblogs.com/mverting/p/10206532.html

本章主要介紹git如何和wdcp搭配 , 做到實時提交修改

如果按照網上常見的教程, 一般都是要新建git使用者和使用者組, 而wdcp裡站點預設的使用者是www組裡的www使用者, 如果強制把站點使用者改成git , 很多專案會無法正常執行, 所以本章就介紹如果以www這個使用者作為git的預設使用者, 並實現git的倉庫和程式碼分離

一. 需要給www使用者建立使用者目錄

wdcp中www使用者預設的使用者目錄,指向的是dev/null, 我們需要修改成和自己建立的git使用者生成的使用者目錄同級的目錄 /home/www

如果原來已經建立過使用者 只需要在/home資料夾中新建 www資料夾  

cp /home/user1 /home/www

未建立過使用者的 先建立一個屬於www組的使用者 然後把目錄拷貝下就行了

adduser -g www aaa

cp /home/aaa /home/www

userdel git

二.  修改使用者設定  設定www的使用者目錄

vi /etc/passwd

找到www使用者  修改成如下 

www:x:xxx:xxx::/home/www:/usr/local/git/bin/git-shell

/home/www這是是使用者目錄,/usr/local/git/bin/git-shell 這個要設定成自己的git安裝的地址, 表示不允許www使用者使用ssh登入,只能使用git的相關命令

三.  建立.ssh 目錄, 

www使用者是wdcp安裝時候就生成的, 我們並不清楚是否有密碼, 也不能確定是否能設定密碼, 所以這裡不用密碼登入, 使用RSA驗證

cd /home/www/

mkdir .ssh #新建資料夾

chmod 700 .ssh

touch .ssh/authorized_keys #新建檔案

chmod 600 .ssh/authorized_keys

後續使用者只需要向authorized_keys中新增自己的公鑰

四  建立git倉庫並新增git的鉤子檔案

cd /home/www

git init --bare test.git #建立一個空倉庫 倉庫名字叫 test

cd test.git/hooks

vi post-receive  #git接收到使用者提交的提交更新後 會執行此檔案中的內容

寫入下面內容  --work-tree 代表程式碼資料夾 --git-dir  代表倉庫目錄

#!/bin/sh

git --work-tree=/www/web/test/public_html/addons/aaa --git-dir=/home/www/test.git checkout -f

儲存後 記得要改許可權 需要有可執行許可權

chmod  777 /home/www/test.git/hooks/post-receive

這樣就把倉庫和實際程式碼區域分開了  每當有改動提交到倉庫, 就會自動檢出到實際程式碼資料夾

五  修改倉庫資料夾所有者為www

chown www:www -R /home/www/test.git

就是說要保證--work-tree 程式碼資料夾和--git-dir  倉庫資料夾的所有者一致  wdcp站點的預設所有者是www 所以這裡把倉庫資料夾的所有者也修改成www

六  本地使用

git clone [email protected]:test.git

這裡就是要用www使用者了

剩下的就是正常的git使用了  

此教程的要點 實際只有一個 就是要保證git倉庫的所有者 和 實際程式碼資料夾的所有者一致 這樣才能做到實時的更新專案原始碼 

清空git快取

git rm -r --cached .

git add .

git commit -m 'update .gitignore'

伺服器上執行 可以直接把專案檔案新增到倉庫 



作者:非常帥氣的暱稱吧
連結:https://www.jianshu.com/p/30f11666a72d
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。