一、檢查系統是否已經安裝若是安裝就卸載apache
rpm -qa subversion
yum remove subversion
二、安裝vim
yum install subversion
三、創建SVN庫dom
mkdir -p /home/svn/repos svnadmin create /home/svn/repos
執行上面的命令後,自動創建repositories庫,查看/home/svn/repos 文件夾發現包含了conf, db,format,hooks, locks, README.txt等文件,說明一個SVN庫已經創建。 四、進入/home/svn/repos/上面生成的文件夾下,進行配置 authz文件配置 目的是設置哪些用戶能夠訪問哪些目錄,向authz文件追加如下內容tcp
[/] afa4j = rw abs = rw
passwd文件配置 是添加用戶名和密碼文件,修改以下svn
[users] # harry = harryssecret # sally = sallyssecret afa4j = afa4j abs = abs123
svnserve.conf 文件配置 配置訪問權限測試
[general] anon-access = none auth-access = write password-db = passwd authz-db = authz realm = /home/svn/repos
五、啓動svnui
/etc/init.d/svnserve start
六、檢查進程和監聽端口this
ps -ef |grep svn |grep -v grep root 23580 1 0 20:10 ? 00:00:00 /usr/bin/svnserve --daemon --pid-file=/var/run/svnserve.pid netstat -antlp |grep :3690 tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 23580/svnserve
七、修改默認端口爲20016 打開rest
vim /etc/init.d/svnserve args="--daemon --pid-file=${pidfile} $OPTIONS --listen-port 20016"
找到這一行添加 --listen-port 20016
保存 八、重啓code
service svnserve restart ps -ef |grep svn |grep -v grep root 23580 1 0 20:10 ? 00:00:00 /usr/bin/svnserve --daemon --pid-file=/var/run/svnserve.pid --listen-port 20016 netstat -antlp |grep :20016 tcp 0 0 0.0.0.0:20016 0.0.0.0:* LISTEN 23580/svnserve
九、TortoiseSVN客戶端鏈接測試 版本庫URL svn://xxx.xxx.xxx:20016/home/svn/repos 彈出對話框輸入前面添加的用戶名密碼
十、SVN開啓apache支持
root@ UAT測試環境 @mc1.domain.com:yum install httpd mod_dav_svn root@ UAT測試環境 @mc1.domain.com:/home/svn/project#rpm -ql mod_dav_svn /etc/httpd/conf.d/subversion.conf /usr/lib64/httpd/modules/mod_authz_svn.so /usr/lib64/httpd/modules/mod_dav_svn.so root@ UAT測試環境 @mc1.domain.com:/home/svn/project#htpasswd /home/svn/project/password kcw New password: Re-type new password: Adding password for user kcw root@ UAT測試環境 @mc1.domain.com:/home/svn/project#cat /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 /path/to/passwdfile # Require valid-user # </LimitExcept> #</Location> <Location /svn> DAV svn #SVNParentPath /home/svn/project SVNPath /home/svn/project SVNListParentPath on AuthType Basic AuthName "Musingtec SVN Authorization" AuthUserFile /home/svn/project/password # Limit write permission to list of valid users. # <LimitExcept GET PROPFIND OPTIONS REPORT> # Require SSL connection for password protection. # SSLRequireSSL Require valid-user #</LimitExcept> </Location>
重啓apache後以http://IP/svn如圖
這裏說明以下
SVNParentPath:支持多個具有相同父目錄的Subversion版本庫。 SVNPath:只支持一個父目錄的Subversion版本庫
SVNPath /svn/repository/project1 #若是你想對每一個項目單獨配置,使用該項
SVNParentPath /svn/repository #設定一個根,全部項目均放在此目錄下
而且, 若是設置爲SVNParentPath .....,當訪問 http://localhost/XXXX時,即便也是要求輸入驗證,但會提示forbidden錯誤頁. 必須接着輸入 http://localhost/xxxx/project1..
轉自 http://blog.163.com/litianyichuanqi@126/blog/static/115979441201231701630864/ apache2 裏面的svn配置 <Location /svn/repository> DAV svn SVNPath /svn/repository #SVNParentPath /svn/repository #SVNListParentPath on
AuthType Basic #(鏈接類型設置 基本驗證) AuthName "Hello welcome to here"
AuthUserFile /svn/repository/conf/passwd
AuthzSVNAccessFile /svn/repository/conf/authz #(此處修改成訪問版本庫權限的文件) Require valid-user #("Require valid-user"告訴apache在authfile中全部的用戶均可以訪問。 </Location>
[groups] Admin=usr1 #/*這個表示admin羣組裏的成員 user1,user2 #Develop=u1, u2
#/*這個表示Develop羣組裏的成員 u1,u2 [repository:/] #/*這表示,倉庫www的根目錄下的訪問權限 user1 = rw #/www倉庫user1用戶具備讀和寫權限 user2 = r #/ www倉庫userl用戶具只有讀權限 #@develop=rw
#/*這表示 羣 develop的成員都具備讀寫權限 [/] #/*這個表示在全部倉庫的根目錄下