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下載:服務器
·以上文件安裝和配置過程就省略了,這個網絡上的資料比較多的。工具
1.打開Apache的 httpd.conf 配置文件,修改 <Directory /> 中的 Deny from all 爲 Allow 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瀏覽工具了。
很晚了,打完收工。今晚又被公司加班了,此夜綿綿無絕期啊...