使用http協議訪問svn
阿新 • • 發佈:2019-02-04
svn伺服器有2種執行方式:svn服務和借用apache執行,也就是http服務.
為什麼使用http服務
svn服務是svn預設的訪問形式,但是人們通常習慣於使用域名或者ip地址來訪問一個專案,如果我們把svn伺服器當做一個專案的話,使用http協議來訪問svn服務更加符合我們的習慣.而且對於沒有接觸過svn的其他運維人員或者其他人員,http訪問版本伺服器要優於svn服務訪問.
關於mod_dav_svn模組
由於Subversion需要版本化的控制,因此標準的HTTP協議不能滿足需求。要讓Apache與Subversion協同工作,就要使用WebDAV(Web-based Distributed Authoring and Versiong)Web分散式創作和 版本控制協議。 mod_dav_san模組就是作為Subversion與Apache之間的介面,通過它,Apache就可以訪問版本庫,並且可以讓客戶端也使用HTTP的擴充套件協議WebDAV/DeltaV進行訪問。參考http://www.linuxfly.org/post/449/
mod_dav_svn安裝
[plain] view plain copy print?- # yum install mod_dav_svn
建立版本庫
與以前的步驟基本相同,唯一不同的是,需要讓執行的Apache使用者擁有改倉庫的許可權
[plain] view plain copy- # mkdir /var/www/svn
- # cd /var/www/svn/
- # svnadmin create stuff
- # chown -R apache.apache stuff/
修改/etc/httpd/conf.d/subversion.conf配置檔案的內容為:
[plain] view plain copy print?- vi /etc/httpd/conf.d/subversion.conf
-
LoadModule dav_svn_module modules/mod_dav_svn.so
- LoadModule authz_svn_module modules/mod_authz_svn.so
- #
- # Example configuration to enable HTTP access for a directory
- # containing Subversion repositories, "/var/www/svn". Each repository
- # must be both:
- #
- # a) readable and writable by the 'apache' user, and
- #
- # b) labelled with the 'httpd_sys_content_t' context if using
- # SELinux
- #
- #
- # To create a new repository "http://localhost/repos/stuff" using
- # this configuration, run as root:
- #
- # # cd /var/www/svn
- # # svnadmin create stuff
- # # chown -R apache.apache stuff
- # # chcon -R -t httpd_sys_content_t stuff
- #
- <Location /repos>
- DAV svn
- SVNParentPath /var/www/svn
- # # Limit write permission to list of valid users.
- <LimitExcept GET PROPFIND OPTIONS REPORT>
- # # Require SSL connection for password protection.
- # # SSLRequireSSL
- #
- AuthType Basic # 使用基本認證方式,即使用者名稱、密碼認證
- AuthName "Authorization Realm" # 在認證對話方塊中出現的提示資訊
- AuthUserFile /etc/svn/svnusers.conf # 指定存放使用者名稱資訊的檔案路徑
- AuthzSVNAccessFile /etc/svn/accesspolicy.conf # 指定存放使用者訪問路徑資訊的檔案路徑
- Require valid-user # 限定只有使用者輸入正確的使用者名稱和密碼後才能訪問該標籤所指向的路徑
- </LimitExcept>
- </Location>
加入認證資訊
1.建立存放使用者資訊的檔案
[plain] view plain copy print?- # mkdir -p /etc/svn/
- # htpasswd -c /etc/svn/svnusers.conf admin
- New password:
- Re-type new password:
- Adding password for user admin
具體的使用者操作可以檢視htpasswd指令
2.建立存放使用者訪問路徑的檔案
[plain] view plain copy print?- # mkdir -p /etc/svn/
- # cd /etc/svn/
- # vi accesspolicy.conf
新增如下內容
[plain] view plain copy print?- [groups]
- admin = admin
- [/]
- *=r
- @admin = rw
- [stuff:/]
- *=rw
- @admin = rw
啟動httpd服務:
[plain] view plain copy print?- # /etc/init.d/httpd restart
訪問svn服務