转载地址:https://blog.51cto.com/mailfile/1762515
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的
实验环境
centos6.5_x64
软件安装
cp -pv /etc/sysconfig/selinux /etc/sysconfig/selinux.bak
echo > /etc/sysconfig/selinux
echo SELINUX=disabled > /etc/sysconfig/selinux
yum install -y subversion httpd httpd-devel mod_dav_svn linux服务端安装
TortoiseSVN-1.10.0.28176-x64-svn-1.10.0 windows客户端安装
svn --version
svn, version 1.6.11 (r934486) compiled Aug 17 2015, 08:37:43
httpd -v
Server version: Apache/2.2.15 (Unix)
find /usr/lib64/httpd/ -type f \ ( -name "mod_dav_svn.so" -o -name "mod_authz_svn.so" \) 查看svn模块安装
/usr/lib64/httpd/modules/mod_authz_svn.so
/usr/lib64/httpd/modules/mod_dav_svn.so
mkdir -pv /usr/local/svn/test 创建项目目录
svnadmin create /usr/local/svn/test 生成项目目录配置
ls /usr/local/svn/test
conf db format hooks locks README.txt
cp -pv /usr/local/svn/test/conf/authz /usr/local/svn/test/conf/authz.bak
echo > /usr/local/svn/date/conf/authz
cat /usr/local/svn/test/conf/authz
[groups]
admin = admin,test1 admin组名 admin test1为组用户
[/test]
admin = rw
* =
cp -pv /usr/local/svn/test/conf/passwd /usr/local/svn/test/conf/passwd.bak
echo > /usr/local/svn/test/conf/passwd
cat /usr/local/svn/test/conf/passwd
[users]
admin = admin
test1 = test1 admin为用户名 admin为密码
cp -pv /usr/local/svn/test/conf/svnserve.conf /usr/local/svn/test/conf/svnserve.conf.bak
echo > /usr/local/svn/test/conf/svnserve.conf
cat /usr/local/svn/test/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = demo's svndata
[sasl]
# use-sasl = true
# min-encryption = 0
# max-encryption = 256 复制配置到配置文件
svnserve -d -r /usr/local/svn/ & 启动服务
killall svnserve 停止服务
cp -pv /etc/rc.d/rc.local /etc/rc.d/rc.local.bak
echo "svnserve -d -r /home/data/svn/ &" >> /etc/rc.d/rc.local 开机启动svn服务
ps -ef | grep svn | grep -v grep
root 24357 1 0 14:44 ? 00:00:00 svnserve -d -r /usr/local/svn/test
用户名为 /usr/local/svn/conf/passwd下文件用户名 密码
cp -pv /etc/httpd/conf.d/subversion.conf /etc/httpd/conf.d/subversion.conf.bak apache_svn结合
cp -pv /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
touch /usr/local/svn/passwd
cp -pv /usr/local/svn/test/conf/authz /usr/local/svn/authz
sed -i 's/AllowOverride None/AllowOverride All/g' /etc/httpd/conf/httpd.conf
sed -i 's/#ServerName www.example.com:80/ServerName *:80/g' /etc/httpd/conf/httpd.conf
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
<Location /svn>
DAV svn
SVNParentPath /usr/local/svn/test
AuthType Basic
AuthName "Authorization Realm"
AuthzSVNAccessFile /usr/local/svn/authz
AuthUserFile /usr/local/svn/passwd
Require valid-user
</Location> 写入配置到配置文件
service httpd restart
chkconfig --level 35 httpd on
htpasswd -cb /usr/local/svn/passwd/passwd admin 123456 admin为用户名 123456为密码
htpasswd -cb /usr/local/svn/passwd/passwd test1 123456 >> /home/data/svn/passwd -b用于第二个用户
cat /usr/local/svn/passwd/
admin:kvxK/.pJlKy82
test1:GybylD9bmDi1s
chown -R apache:apache /usr/local/svn/test
用户名admin 密码123456