基于Windows的Apache+Git服务器搭建

本文引自【DEVBEAN'S WORLD】的博文,原文请参看点击打开链接

1. 安装Git

        下载msysGit安装包并且安装Git,安装完毕后,开始菜单会多出 Git一项,里面有Git GUI和Git Bash,前者是图形界面,后者是命令行界面。msysGit 默认的安装路径是 C:\Program Files\Git。下面我们可以进入C:\Program Files\Git\libexec\git-core目录,双击运行 git-http-backend.exe 程序。这个程序的作用就是处理 HTTP 请求。不过,此时你应该得到一个错误:


        这个错误是说缺少 libiconv-2.dll。该文件位于 C:\Program Files\Git\bin。我们可以将其从这里复制到 C:\Program Files\Git\libexec\git-core即可。

        注:此处运行git-http-backend.exe后,缺少动态库,拷贝是种解决方法,更好的方法是:如果权限允许,将动态库所在路径加载系统环境变量。


2. 安装Apache服务器

        下载并安装Apache服务器,正常安装之后,Apache会自动启动,并且占据 80 端口。你可以根据需要修改监听端口。然后我们打开浏览器,进入 http://localhost。如果浏览器页面显示 It works! 说明我们的服务器已经正确安装,那么就可以进行下一步操作了。


3. 配置 Apache 服务器

        安装好Apache和Git for windows之后,下面就是配置 Apache 服务器。

        进入 Apache 安装目录下的 conf 目录,用记事本打开 httpd.conf 文件。首先,找到<directory />,修改如下:

<directory />
	Options FollowSymLinks
	AllowOverride None
	Order deny,allow
	Allow from all
</directory>
        然后在 httpd.conf 文件末尾追加:

# Set this to the root folder containing your Git repositories.
# 指定 Git 版本库的位置
SetEnv GIT_PROJECT_ROOT C:/workspace

# Set this to export all projects by default (by default,
# git will only publish those repositories that contain a
# file named “git-daemon-export-ok”
# 该目录下的所有版本库都可以透过 HTTP(S) 的方式存取
SetEnv GIT_HTTP_EXPORT_ALL

# Route specific URLS matching this regular expression to the git http server.
# 令 Apache 把 Git 相关 URL 导向给 Git 的 http 处理程序
ScriptAliasMatch \
"(?x)^/(.*/(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))$" \
"C:/Program Files/Git/libexec/git-core/git-http-backend.exe/$1"
 
<Location />
	AuthType Basic
	AuthName “GIT Repository”
	AuthUserFile “C:/Program Files/Git/htpasswd”
	Require valid-user
</Location>

        上面修改内容中,第一个指令设置 Git 的版本库位置;第二个指令表示,该目录下的所有版本库都可以通过 HTTP(S) 的方式存取;第三个指令则是让 Apache 把 Git 相关 URL 导向给 Git 的 HTTP 处理程序,也就是我们前面提到的 git-http-backend.exe。最后的<Location />区段设定了虚拟根路径 “/” 的验证规则;C:/Program Files/Git/htpasswd 是账号密码文件,该文件可以在任何位置,也可以使任何名字,只要在这里指定即可。
        完成上述修改之后,重启 Apache 服务。
        如果你希望将来透过远端存取版本库时,一律使用 http://my-server/git/* 开头的 URL,则可将 ScriptAliasMatch 指令改为 “(?x)^/git/(.*/(HEAD | \ …….”


4. 添加用户

        下面,我们将向 htpassword 文件添加用户名和密码。这样,在我们提交版本是,Apache 服务器就可以根据这里我们指定的用户名和密码判断是否具有权限。

        添加用户名和密码的操作应该使用 Apache 提供的 htpasswd 命令。使用命令提示符来到 Apache 安装目录下的 bin,输入命令:

htpasswd -cmb htpassword abc 123456
        该命令执行后,会在当前目录下生成一个名为 htpassword 的文件,用户名为 abc,密码为 123456(加密的)。
        htpasswd 命令还可以追加用户、修改用户密码、删除用户等,具体操作请查阅 htpasswd 使用手册。


5. 测试

        这里我们要建立一个测试库,以便查看我们的服务器是否能够正常运行。
        我们使用 Git Bash,来到 C:/workspace 目录,运行如下命令:

git init –bare myapp.git
        此时,会在 workspace 目录下建立一个空的版本库 myapp.git。然后我们运行
git clone http://localhost/myapp.git
        此时,Git 会要求我们提供用户名和密码,之后就可以正常 clone。然后尝试修改文件,运行一下

git push origin master
        在提供用户名和密码之后即可成功提交。


        如果上面的命令都可以正常进行,则说明我们的服务器基本已经搭建完成。


资料地址:http://blog.csdn.net/wangwei_cq/article/details/9379757;点击打开链接


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值