PS:這個辦法在權限上沒有考慮較詳盡,在正式要上線的伺服器,建議不要這樣做,避免伺服器安全出現漏洞
首先在git server自己的repository(這裡以
kejyun.git
為例)中,開啟config
的檔案,將設定值改成下面的範例,主要是bare設定為false
,worktree設定為你要同步的資料夾
(/var/www),denycurrentbranch設為ignore
如下圖
再到repository的
hooks
資料夾加入post-receive
檔案(kejyun.git/hooks/post-receive,若沒有此檔案則自行建立),檔案內容輸入git checkout -f
後存檔
因為在push上去後,git會執行hooks裡面的檔案,看有沒有什麼需要額外處理的,所以需要執行檔案的權限,所以需要讓他有執行檔案的權限,所以輸入
chmod +x post-receice
變更其權限
我們要統一控管git server可以寫入變更檔案權限,所以我們必需要建立一個
gitserver
的群組(以下必須使用管理者權限sudo -s才可以執行),所以輸入groupadd gitserver
建立一個git專用的群組,並開啟/etc/group
的檔案,可以看到剛剛加入的gitserver
群組,我們將我們要加入的帳號加到gitserver群組後方
(相關群組控管方式請參考鳥哥:第十四章、Linux 帳號管理與 ACL 權限設定)
接下來我們到網頁資料夾上一層(/var),輸入
chown -R root:gitserver www
,設定的網頁資料夾(/var/www)內所有檔案,將擁有者群組變更為gitserver
這樣我們就可以開始push檔案到git server看看,看看他會不會自動同步更新檔案至我們設定的網頁資料夾(/var/www)
沒有留言:
張貼留言