Windows使用Apache2配置Git服務器

Windows使用Apache2配置Git服務器php

本文地址:http://www.cnblogs.com/cnscoo/p/3373095.htmlhtml

Git下載:git

網站:https://code.google.com/p/msysgit/apache

文件:https://msysgit.googlecode.com/files/Git-1.8.4-preview20130916.exe瀏覽器

Apache下載:服務器

網站:http://httpd.apache.org/網絡

文件:http://101.36.96.118/data/4/57/b5/57b5b14df1e1dcffaf5a302c93c57b2d.zip/realuri/apache//httpd/binaries/netware/httpd_2.4.6-netware-bin.zipide

·以上文件安裝和配置過程就省略了,這個網絡上的資料比較多的。工具

1.打開Apache的 httpd.conf 配置文件,修改 <Directory /> 中的 Deny from allAllow from all,並在配置文件末尾添加網站

1 #
2 # Git Server Configured
3 #
4 Include conf/extra/httpd-git.conf

·這個配置能夠避免在主要的配置文件中添加太多的內容,將咱們的配置單獨放在一個文件中。

2.在Apache的 conf/extra 文件夾中新建配置文件 httpd-git.conf,而後在文件中添加如下內容

 1 # 設置Git管理庫位置
 2 SetEnv GIT_PROJECT_ROOT E:/GitServer # 這裏的E:/GitServer 表示Git服務的庫位置
 3 SetEnv GIT_HTTP_EXPORT_ALL
 4 SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
 5 
 6 # 設置Git處理方式,其中的 ...^/git/(.*/... 部分也能夠寫成 ...^/(.*/...
 7 # 前者表示訪問的時候使用 http://ServerName/git/Git庫 的方式訪問,後者使用 http://ServerName/Git庫 的方式訪問
 8 # 下面的 F:/Program Files/Git/libexec/git-core/git-http-backend.exe 是Git的http處理程序,在Git中有的。
 9 ScriptAliasMatch "(?x)^/git/(.*/(HEAD | info/refs |  objects/(info/[^/]+ | [0-9a-f]{2}/[0-9a-f]{38} | pack/pack-[0-9a-f]{40}.(pack|idx)) | git-(upload|receive)-pack))$" "F:/Program Files/Git/libexec/git-core/git-http-backend.exe/$1"
10 
11 # Enable mod_rewrite
12 RewriteEngine On
13 
14 # Detect git push
15 RewriteCond %{QUERY_STRING} service=git-receive-pack [OR,NC]
16 RewriteCond %{REQUEST_URI} ^/*.git/.*/git-receive-pack$ [NC]
17 RewriteRule .* - [E=AUTHREQUIRED:yes]

 保存這個文件,將Git目錄中的 bin/libiconv-2.dll 文件複製到 Git下的 libexec\git-core\ 中,這個是 git-http-backend.exe 須要用到的組件。而後(重)啓動 Apache 服務器。

3.在E盤建立文件夾GitServer,並運行如下命令

1 git init --bare 項目名.git  # 生成項目庫文件夾
2 cd 項目名.git
3 git update-server-info

4.如今使用 http://localhost/git/項目名.git 的路徑就能夠克隆項目了,而後修改文件、add、commit、push...

-- 如下爲可選項:

5.配置訪問權限

在Apache的conf/extra/httpd-git.conf中添加:

1 <Location /git/> # 這個路徑和上面的ScriptAliasMatch處需一致
2     AuthType Basic
3     AuthName "GIT Server"
4     AuthUserFile "E:/.htpasses" # 這個是須要驗證的密碼文件
5     Require valid-user # 聽說若是將「Require valid-user」註釋掉,就不須要密碼認證了,在內網用時會很方便,但這是隻容許pull,而不容許push。
6 </Location>

而後在使用Apache的 htpasswd.exe 工具生成對應的密碼文件,運行如下命令

1 htpasswd -bc E:\.htpasses 用戶名 密碼

若是隻是要添加用戶,則把 -bc 的操做改爲 -b 操做便可。重啓服務器,再操做該Git項目時就須要密碼驗證了。

6.添加Git的Web瀏覽工具gitphp

下載gitphp: http://www.gitphp.org 

解壓到 E:\GitServer (能夠是其餘位置) 並將文件夾命名爲 gitphp,而後在Apache的conf/extra/httpd-git.conf中添加配置

 1 <IfModule alias_module>
 2     Alias /gitphp "E:\GitServer\gitphp"
 3 </IfModule>
 4 <Directory "E:\GitServer\gitphp">
 5     Options Indexes FollowSymLinks
 6     AllowOverride None
 7     Order allow,deny
 8     Allow from all
 9 </Directory>
10 <Location /gitphp/> #這裏也是添加密碼驗證
11     AuthType Basic
12     AuthName "GIT Server"
13     AuthUserFile "E:/.htpasses"
14     Require valid-user
15 </Location>

而後將其中的 config/gitphp.conf.php.example 複製新文件爲 config/gitphp.conf.php,並修改其中的配置項,好比我這裏修改的就是:

1 $gitphp_conf['gitbin'] = 'F:\\Progra~1\\Git\\bin\\git.exe'; // git.exe文件路徑
2 $gitphp_conf['projectroot'] = 'E:\\GitServer\\'; // Git項目庫位置(不是項目文件夾)

而後從新啓動Apache,使用瀏覽器瀏覽 http://localhost/gitphp則就能夠看到Git的Web瀏覽工具了。

很晚了,打完收工。今晚又被公司加班了,此夜綿綿無絕期啊...

相關文章
相關標籤/搜索