# 1. 解開 Apache 自帶模塊註釋 (約 83-84 行)
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
# 2. 載入 Subversion 模塊 (追加到 LoadModule 區塊末尾,約 127 行)
LoadModule dav_svn_module "D:/Program Files/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module "D:/Program Files/Subversion/bin/mod_authz_svn.so"
關鍵點:直接指定 Subversion `bin` 目錄下的 `.so` 文件絕對路徑,避免複製到 Apache `modules` 目錄的兼容性問題 (作者實測複製法失效)。
<Location /svn>
DAV svn
SVNParentPath "d:/svn" <!-- 版本庫父目錄,每個子目錄為一個倉庫 -->
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd <!-- 相對路徑,指向 Apache 根目錄下 passwd 文件 -->
Require valid-user
</Location>
# 進入 Apache 安裝目錄 (非 bin 目錄)
bin\htpasswd -c passwd testuser <!-- -c 創建文件並添加首用戶 -->
# 後續添加用戶
bin\htpasswd passwd user2
**注意**:在 Apache 根目錄執行 `bin\htpasswd`,確保 `passwd` 生成在正確位置。
# 修改 httpd.conf 中 Listen 指令
Listen 8080 <!-- 避開 IIS/Tomcat 佔用的 80 端口 -->
修改後**必須重啟 Apache 服務**生效。
<Location /svn>
...
AuthzSVNAccessFile authz <!-- 新增授權文件 -->
</Location>
`authz` 文件示例:
[groups]
admins = admin1, admin2
devs = dev1, dev2
[/]
@admins = rw
* = r
[/proj1/trunk]
@devs = rw
[/proj2/branches/release_1.0]
@devs = r
* =
Apache + Subversion + TortoiseSVN 是**零成本、成熟穩定、權限細粒度**的版本控制鐵三角。掌握 `httpd.conf` 模塊載入、`SVNParentPath` 多倉庫管理、`htpasswd` 用戶管理、`authz` 路徑授權四大核心配置,即可構建企業級穩健服務。配合熱備份、日誌審計、客戶端規範操作,版本資產安全無憂。