一、系統環境
root@ubuntu:~# cat /etc/issue
Ubuntu 16.04.2 LTS \n \l
二、創建svn組和用戶
root@ubuntu:~# addgroup svnser
Adding group `svnser' (GID 1001) ...
Done.
root@ubuntu:~# useradd svnser -g svnser -m #新增svnser用戶,-g並指定所在的組svnser,-m同時創建svnser用戶所在的家目錄
三、安裝Apache和svnserver
root@ubuntu:~# apt-get -y install apache2
root@ubuntu:~# apt-get -y install subversion libapache2-svn
四、創建版本庫目錄
root@ubuntu:~# mkdir -p /data/svn
root@ubuntu:~# svnadmin create /data/svn/repos01
root@ubuntu:~# svnadmin create /data/svn/repos02
root@ubuntu:~# svnadmin create /data/svn/repos03
root@ubuntu:~# ls /data/svn/
repos01 repos02 repos03
root@ubuntu:~# ls /data/svn/repos01/
conf db format hooks locks README.txt
五、創建項目目錄結構並導入
root@ubuntu:~# mkdir -p test/{branches,tags,trunk}
導入項目到版本庫(初始化):
root@ubuntu:/data/svn# svn import /root/test file:///data/svn/repos01 -m "test import"
Adding /root/test/branches
Adding /root/test/tags
Adding /root/test/trunk
Committing transaction...
Committed revision 1.
========================================================
/root/test ----------------> 需要導入的項目
file:///data/svn/repos01 -----> 表示一個項目的版本庫
六、將SVN配置到apache中通過web方式訪問
root@ubuntu:/etc/apache2# mkdir svn-repos
root@ubuntu:/etc/apache2/svn-repos# vim repos01.conf
<Location /svn/repos01>
DAV svn
SVNPath /data/svn/repos01
AuthzSVNAccessFile /data/svn/repos01/conf/authz
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /data/svn/repos01/conf/dev_passwd
Require valid-user
</Location>
注:此配置文件告訴apache關於svn的訪問路徑已經相關配置文件,這裏注意訪問的根目錄。重啓apache服務器,然後就可以通過http://192.168.0.66:8000/svn/repos01進行訪問
###############################################
/etc/apache2/apache2.conf <===========此文件新增如下一行:
IncludeOptional svn-repos/*.conf
################################################
/etc/apache2/ports.conf <===========此文件修改Listen 80爲:Listen 8000
################################################
/etc/apache2/sites-enabled/000-default.conf <====此文件修改<VirtualHost *:80>爲:<VirtualHost 127.0.0.1:8000> ,新增一行ServerName 127.0.0.1
重啓apache服務:/etc/init.d/apache2 restart
======================================
七、添加svn用戶
root@ubuntu:/data/svn/repos01/conf# htpasswd -m -b -c /data/svn/repos01/conf/dev_passwd test01 'PWDtest' #第一次創建svn用戶需要通過-c參數,第二次增加用戶不用-c參數。
通過客戶端或者瀏覽器進行訪問輸入http://192.168.0.66:8000/svn/repos01
命令行使用svn checkout http://192.168.0.66:8000/svn/repos01 --username test01 --password PWDtest
八、用戶權限設置
新增如下配置
root@ubuntu:/etc/apache2/mods-enabled# cat dav_svn.load
.........略
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
用戶目錄權限設置:
root@ubuntu:~# cat /data/svn/repos01/conf/authz
[groups] #設置組
admin = test01,test #設置組用戶
[/] #項目版本庫根目錄,admin擁有讀寫權限
@admin = rw
* = # 其他用戶無任何權限
可以通過nginx+proxy+allow 來控制用戶IP訪問限制