0

0

在 Windows 系统上配置 Apache Git 服务器

看不見的法師

看不見的法師

发布时间:2025-07-21 08:04:02

|

250人浏览过

|

来源于php中文网

原创

本文详细介绍了在 windows 系统上如何配置 apache git 服务器,并使用 active directory (ad) 进行用户认证。

软件环境

  • Windows Server 2003
  • Apache 2.2
  • Git 1.8

安装 Apache
从 Apache Httpd 的官方网站下载最新版的 Windows 版本,我下载的是 2.2.22 版本。按照提示完成安装,我的安装目录为 C:\Apache2.2,接下来的配置都基于这个目录。

安装 Git
下载并安装 msysgit,建议使用便携版(Portable)。下载后解压到 C:\Git 目录下。然后创建 C:\GitRepos 目录,作为代码库的根目录,接下来的配置都基于这两个目录。

配置 Apache 使用 AD 认证
首先,停止 Apache 服务器。打开 C:\Apache2.2\conf\httpd.conf 文件,搜索 ,修改根目录配置,允许所有位置访问,如下:


    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    # 默认是 Deny from all,修改为 Allow from all
    Allow from all

在 httpd.conf 文件中搜索 ldap,确保 authnz_ldap_module 和 ldap_module 都已被加载(行首没有#)。

新建一个 git.conf 文件,与 httpd.conf 保存在同一目录。然后在 httpd.conf 的末尾添加一行 Include conf/git.conf 以包含这个文件。

保存 httpd.conf,打开 git.conf,添加以下内容:

Alias /git "C:/GitRepos"

将 C:\Repos 映射为 /git,接下来设置这个目录的认证:


    # 设置认证名称、类型
    AuthName "Git Access"
    AuthType Basic
    AuthBasicProvider ldap
    # 设置 LDAP 搜索的目录,使用 sAmAccountName 登录,位于这个 AD 目录下的所有用户都可以登录
    AuthLDAPURL "ldap://company.local:389/O=MyOrg,DC=company,DC=local?sAMAccountName?sub?(objectClass=*)"
    AuthzLDAPAuthoritative on
    # 设置 Apache 搜索 AD 时使用的凭据
    AuthLDAPBindDN "username@company.local"
    AuthLDAPBindPassword userpassword
    # 设置使用 AD 组过滤时搜索的条件
    AuthLDAPGroupAttributeIsDN on
    AuthLDAPGroupAttribute member
    # 通过认证的用户都可以访问
    Require valid-user

保存 httpd.conf 和 git.conf,启动 Apache HTTP 服务。如果一切顺利,访问 https://www.php.cn/link/46ec3ee8c6ef686a945d04daf92927f3 会显示 "It works!",表示 HTTP 服务正常运行。访问 https://www.php.cn/link/46ec3ee8c6ef686a945d04daf92927f3/git 会弹出登录框,输入用户名和密码后可以顺利访问。

配置 Git Smart Http
首先运行 C:\Git\libexec\git-core\git-http-backend.exe。如果出现下面的错误提示:

在 Windows 系统上配置 Apache  Git 服务器

则需要将 C:\Git\bin 和 C:\Git\cmd 添加到 Path 环境变量中,然后再运行 git-http-backend.exe,不应再出现错误提示。

接下来修改 git.conf,让 Apache 启动 git-http-backend.exe。打开 git.conf,将原来的

Shopxp购物系统Html版
Shopxp购物系统Html版

一个经过完善设计的经典网上购物系统,适用于各种服务器环境的高效网上购物系统解决方案,shopxp购物系统Html版是我们首次推出的免费购物系统源码,完整可用。我们的系统是免费的不需要购买,该系统经过全面测试完整可用,如果碰到问题,先检查一下本地的配置或到官方网站提交问题求助。 网站管理地址:http://你的网址/admin/login.asp 用户名:admin 密 码:admin 提示:如果您

下载
Alias /git "C:/GitRepos"

注释掉,改为:

# 设置 Git 代码库的根目录
SetEnv GIT_PROJECT_ROOT C:/GitRepos
# 默认通过 HTTP 导出所有的 Git 代码库
SetEnv GIT_HTTP_EXPORT_ALL
# 将 git-http-backend.exe 映射为 cgi 程序,请求 /git/ 下的所有请求都由
# git-http-backend.exe 处理
ScriptAlias /git/ C:/Git/libexec/git-core/git-http-backend.exe/

将原来配置的 修改为 ,如下所示:


    # 设置认证名称、类型
    AuthName "Git Access"
    AuthType Basic
    AuthBasicProvider ldap
    # 设置 LDAP 搜索的目录,使用 sAmAccountName 登录,位于这个 AD 目录下的所有用户都可以登录
    AuthLDAPURL "ldap://company.local:389/O=MyOrg,DC=company,DC=local?sAMAccountName?sub?(objectClass=*)"
    AuthzLDAPAuthoritative on
    # 设置 Apache 搜索 AD 时使用的凭据
    AuthLDAPBindDN "username@company.local"
    AuthLDAPBindPassword userpassword
    # 设置使用 AD 组过滤时搜索的条件
    AuthLDAPGroupAttributeIsDN on
    AuthLDAPGroupAttribute member
    # 通过认证的用户都可以访问
    Require valid-user

保存 git.conf,重启 Apache httpd 服务。现在,可以在 C:\GitRepos 目录下使用 git 新建一个测试库,打开命令行窗口,输入以下命令:

git init --bare Test.git

然后在新的命令行窗口中输入以下命令进行测试:

git clone https://www.php.cn/link/46ec3ee8c6ef686a945d04daf92927f3/git/Test.git

接下来会提示输入用户名和密码,最后看到以下提示表示成功:

C:\temp>git clone https://www.php.cn/link/46ec3ee8c6ef686a945d04daf92927f3/git/Test.git
Cloning into 'Test'...
Username for 'https://www.php.cn/link/46ec3ee8c6ef686a945d04daf92927f3': zhangzhimin
Password for 'https://zhangzhimin@localhost':
warning: You appear to have cloned an empty repository.

如果出现错误,可以查看 C:\Apache2.2\logs\error.log。如果错误原因是 “Repository not exported”,需要在 Test.git 目录下创建一个名为 git-daemon-export-ok 的空文件。如果提示关于 git-http-backend.exe 的问题,则可能是 git-http-backend.exe 无法运行造成的。

设置代码库权限
现在,Windows 上的 Git 服务器已经可以运行了,通常情况下,需要为每个库配置权限。例如,Test.git 只允许特定用户或特定用户组访问,则需要在 git.conf 文件中添加以下配置:


    AuthName "Private Git Access"
    # 允许特定用户访问
    Require ldap-user zhangzhimin
    # 允许用户组访问,把下面一行行首的#去掉即可
    #Require ldap-group CN=Developers,OU=GitUsers,O=MyOrg,DC=company,DC=local

改完后保存 git.conf 并重启 Apache httpd 服务。

注意问题
整个配置过程比较复杂,在 Windows 上配置的资料也比较少,很容易出错,因此在配置过程中,给出以下建议:

  • 将 Apache 的 LogLevel 设置为 DEBUG(在 http.conf 中修改),可以在 C:\Apache2.2\logs\error.log 文件中看到详细的调试信息,有时很有帮助;
  • 多运行 Apache 的 Test Configuration 快捷方式,如果配置有错,会有详细提示,并等待 30 秒钟;
  • 使用事件查看器查看系统日志,有时这里也会有详细的错误信息。

相关专题

更多
scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

188

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

288

2023.10.25

location.assign
location.assign

在前端开发中,我们经常需要使用JavaScript来控制页面的跳转和数据的传递。location.assign就是JavaScript中常用的一个跳转方法。通过location.assign,我们可以在当前窗口或者iframe中加载一个新的URL地址,并且可以保存旧页面的历史记录。php中文网为大家带来了location.assign的相关知识、以及相关文章等内容,供大家免费下载使用。

224

2023.06.27

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

663

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

528

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

265

2023.07.24

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

550

2024.04.09

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

513

2024.04.09

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

8

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
RunnerGo从入门到精通
RunnerGo从入门到精通

共22课时 | 1.7万人学习

尚学堂Mahout视频教程
尚学堂Mahout视频教程

共18课时 | 3.2万人学习

Linux优化视频教程
Linux优化视频教程

共14课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号