在Linux上用Apache搭建Git伺服器

2022-01-14 22:04:34 字數 2188 閱讀 7733

最近在學linux,終於在linux上用apache搭建起了git伺服器,在此記錄一下。

伺服器:阿里雲伺服器

linux版本:centos 6.5

apache版本:apache/2.2.15

git版本:git 1.7.1

git訪問方式:基於http的基本驗證(非ssl)

apache的安裝

1. 安裝apache軟體:yum install httpd

2. 設定apache在伺服器啟動時執行:chkconfig --levels 235 httpd on

git的安裝與配置

1. 安裝git

yum install git

2. 安裝 git-core(為了使用git-http-backend——支援git的cgi程式,apache支援git就靠它)

yum install git-core

3. 建立存放git repository的資料夾,比如這裡是/home/git

cd /home && mkdir git && cd git

4. 建立一個空的專案

mkdir git-test && cd git-test

5. 修改上一步建立的資料夾git-test的所有者與所屬群組,要讓apache能讀/寫這個資料夾

chown -r apache:apache .

apache的配置

1. 建立用於git使用者驗證的帳戶(使用者帳戶由apache管理)

1.1 建立新使用者

htpasswd -m -c /etc/httpd/conf.d/git-team.htpasswd

然後輸入該使用者要使用的密碼。

1.2 修改git-team.htpasswd檔案的所有者與所屬群組

chown apache:apache /etc/httpd/conf.d/git-team.htpasswd

1.3 設定git-team.htpasswd檔案的訪問許可權

chmod 640 /etc/httpd/conf.d/git-team.htpasswd

2. 修改apache配置檔案httpd.conf

2.1 用vim開啟httpd.conf:vi /etc/httpd/conf/httpd.conf

2.2 將游標移至檔案結尾:0g

2.3 新增如下的內容:

servername git.cnblogs.com

setenv git_http_export_all

setenv git_project_root /home/git

scriptalias /git/ /usr/libexec/git-core/git-http-backend/

authtype basic

authname "git"

authuserfile /etc/httpd/conf.d/git-team.htpasswd

require valid-user

servername是git伺服器的域名

/home/git是**庫存放的資料夾

scriptalias是將以/git/開頭的訪問路徑對映至git的cgi程式git-http-backend

authuserfile是驗證使用者帳戶的檔案

2.4 儲存並退出:x

3. 重啟apache使設定生效

service httpd restart

客戶端訪問git伺服器

執行以下命令簽出git-test專案:

git clone

輸入使用者名稱與密碼,如果輸出下面的資訊,就說明簽出成功。

remote: counting objects: 6, done.

remote: compressing objects: 100% (4/4), done.

remote: total 6 (delta 0), reused 0 (delta 0)

unpacking objects: 100% (6/6), done.