日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Git搭建自己的网站服务器(Linux)

發布時間:2025/7/25 linux 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git搭建自己的网站服务器(Linux) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

git服務器弄了半天終于搞定了,還是記錄下吧,不然下次有得忘了

流程:

服務器

  • 構建git目錄
    • git用戶,git組作為倉庫管理
    • ssh授權(遠程無需密碼接入)
    • hook(post-receive)自動部署代碼到網站目錄
  • 網站目錄
    • 準備接代碼就行啦

客戶端

  • 建立開發目錄
  • ssh連接key生成
  • git操作。。。

開始實作吧!

先是git源碼編譯

https://www.kernel.org/pub/software/scm/git/

下載最新版本git(.gz)到/usr/local

安裝

tar -zxf git-2.2.1.tar.gz cd git.2.2.1 make prefix=/usr/local/git all make prefix=/usr/local/git install

源碼編譯是不如 yum install git-all 方便,但是版本可以更新點,筆者用的阿里centos6.5,對應的git版本只能到1.7.2

自己裝的git沒有在系統PATH環境里,用修改 /etc/profile 的方法手動貼入

vim /etc/profile #找到 PATH=/usr/local/php/bin:$PATH 這行修改為 PATH=/usr/local/php/bin:/usr/local/git/bin:$PATH #保存,退出shell重新連接就生效了

git倉庫

groupadd git useradd git -g git cd /home/git mkdir repo.git #名字自定義 cd repo.git git init --bare #生成裸倉庫,存放除代碼的版本信息 chown -R git:git /home/git/repo.git

這里有一點要注意,網上有為安全考慮,只為git用戶的ssh連接啟用git-shell,源碼安裝需如下操作

#修改/etc/passwd vim /etc/passwd #找到git的用戶設置 如: git:x:502:503::/home/newbmiao:/bin/bash #將最后一個執行文件路徑改為 git:x:502:503::/home/git:/usr/local/git/bin/git-shell #在安裝包bin目錄下 #要啟用還需源碼報的git-shell命令交互 cp /usr/local/git-2.2.1/contrib/git-shell-commands /home/git/ #這樣用戶用git賬戶ssh連接后只能使用git命令了

ssh免密碼驗證連接

su git #切換git身份 cd /home/git/ ssh-keygen -C 'your@email.com' -t rsa #為你生成rsa密鑰,可以直接一路回車,執行默認操作

客戶端生成密要方式同上。
生成密鑰后,會出現

.ssh ├── id_rsa └── id_rsa.pub #公鑰 服務端需要里邊內容驗證連接著身份

在客戶端上,打開 id_rsa.pub 復制里邊內容

vim /home/git/.ssh/authorized_keys #粘貼客戶端生成的公鑰,保存退出 #然后要啟動sshd和git-daemon /etc/init.d/git-daemon restart #上邊git-daemon在安裝目錄下/usr/local/git/libexec/git-core/git-daemon,直接復制過去就行 /etc/init.d/sshd start

這樣服務端的git倉庫就搭好了

客戶端 git開發

在客戶端(筆者的是window的git bash)git操作提交試試

#進入一個空的工作目錄 git init #初始化git vim test #編輯些內容保存退出 git add test #添加到git緩存中 git commit -m 'init test' #提交修改 #添加遠程git倉庫 git remote add origin git@your_host_name:/home/git/repo.git git push origin master #這樣就同步到服務器了

其他人要同步

#克隆和推送: git clone git@your_host_name:/home/git/repo.git cd repo vim README git commit -am 'fix for the README file' git push origin master

代碼同步(HOOK)
上邊git用于做了中心的版本控制
但是還想讓服務器接到修改更新后自動同步代碼到網站目錄中,便于測試開發
如下操作是可以實現

#假定網站目錄在/www/web下 cd /home/git/repo.git/hooks vim post-receive #創建一個鉤子 #寫入下面內容 GIT_WORK_TREE=/www/web git checkout -f #保存退出 chown git:git post-receive chmod +x post-receive

如此,下次提交修改,代碼會自動同步到指定目錄中

不過開始時筆者還是遇到一個問題解決不了,就是ssh公鑰交給服務器,也啟動git-daemon和sshd后,客戶端 git clone 時居然還要密碼,而且輸入密碼后提示 Permission denied, please try again.

后邊卻又離奇的可以了,可能是權限更改,不知道為什么,尤其是ssh怎么免密連接過程

大家有了解的告我一下,原理還沒搞明白。


本文鏈接 : http://blog.newbmiao.com/2014/12/28/build-your-git-server-on-linux.html

轉載于:https://www.cnblogs.com/newbmiao/p/build-your-git-server-on-linux.html

總結

以上是生活随笔為你收集整理的Git搭建自己的网站服务器(Linux)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。