1. 更新系統
首先確保系統軟體包是最新的:
sudo yum update -y
2. 安裝Apache和Subversion
2.1 安裝Apache HTTP伺服器和Subversion
sudo yum install -y httpd subversion mod_dav_svn
2.2 啟動並設定Apache自啟動
sudo systemctl start httpd
sudo systemctl enable httpd
3. 建立SVN倉庫
3.1 建立倉庫的父目錄
sudo mkdir -p /var/svn
3.2 建立倉庫
sudo svnadmin create /var/svn/myrepo
3.3 設定檔案許可權
sudo chown -R apache:apache /var/svn/myrepo
sudo chmod -R 755 /var/svn/myrepo
4. 配置Apache來支援SVN
4.1 編輯Apache配置檔案
在 /etc/httpd/conf.d/
目錄下建立或編輯 subversion.conf
檔案:
sudo vi /etc/httpd/conf.d/subversion.conf
新增以下內容:
# 載入Subversion模組
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/svn-auth-users
Require valid-user
</Location>
4.2 建立使用者認證檔案
sudo htpasswd -cm /etc/svn-auth-users user1
4.3 配置防火牆
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
4.4 重啟Apache服務
sudo systemctl restart httpd
5. 測試SVN伺服器
5.1 透過Web瀏覽器測試
訪問 http://<your-server-ip>/svn/myrepo
。
5.2 使用SVN客戶端測試
svn checkout http://<your-server-ip>/svn/myrepo
6. 配置SVN訪問控制
編輯倉庫的 authz
檔案:
sudo vi /var/svn/myrepo/conf/authz
示例內容:
[groups]
developers = user1, user2
[/]
* = r
@developers = rw
7. 日誌和故障排查
7.1 檢查Apache日誌
sudo tail -f /var/log/httpd/error_log
7.2 檢查SVN倉庫日誌
sudo tail -f /var/svn/myrepo/logs/repository.log
8. 高階配置(可選)
8.1 配置SSL(啟用HTTPS)
在 subversion.conf
中更改以下內容:
<Location /svn>
DAV svn
SVNParentPath /var/svn
SSLRequireSSL
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/svn-auth-users
Require valid-user
</Location>
8.2 使用鉤子(Hooks)
SVN支援鉤子指令碼,可以在倉庫的 hooks
資料夾中找到相關模板。
8.3 備份和恢復SVN倉庫
備份:
svnadmin dump /var/svn/myrepo > /backup/myrepo-backup.dump
恢復:
svnadmin load /var/svn/myrepo < /backup/myrepo-backup.dump