1. 查看是否安装过svn
    • # rpm -qa | grep subversion
  2. 安装svn
    • # yum -y install subversion
  3. 创建仓库
    • mkdir /www/wwwroot/svn/projectName
    • svnadmin create /www/wwwroot/svn/projectName
  4. 配置仓库
    • 进入projectName目录,有如下文件:
    • conf db format hooks locks README.txt
    • # cd conf
    • authz passwd svnserve.conf (具体配置请参考下文:)
  5. 防火墙设置
    • 防火墙开放3690端口
    • 阿里云服务器网络安全组开放3690端口
  6. 启动svn
    • svnserve -d -r /www/wwwroot/svn
    • 客户端访问仓库:svn://ip地址/projectName 即可。
authz配置:

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
group_name = user1,user2 //设置项:group_name 是组名
[/foo/bar]
# harry = rw
# &joe = r
# * =
[repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[projectName:/] //设置项:设置目录
@group_name = rw //设置项:设置该目录下的组用户读写权限
*= r //设置项:所有用户可读
passwd配置:

[users]
# harry = harryssecret
# sally = sallyssecret
user1 = 123456
user2 = 123456
svnserve.conf配置:

anon-access = read //不允许匿名访问
auth-access = write //可写
password-db = passwd //用户密码文件地址
authz-db = authz //用户名配置文件地址
realm = projectName //根目录

利用systemctl设置开机自启动

CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,
需要开机不登陆就能运行的程序,存在系统服务里。
即:/usr/lib/systemd/system 目录下
每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]。

# cat /usr/lib/systemd/system
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve //运行文件路径
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS //运行命名
[Install]
WantedBy=multi-user.target

# vi /etc/sysconfig/svnserve

#OPTIONS is used to pass command-line arguments to svnserve.
#
#Specify the repository location in -r parameter:
#OPTIONS="-r /var/svn" svnserve默认仓库地址。
OPTIONS="-r /www/wwwroot/svn/" //修改项

保存后并添加权限754。

# systemctl enable svnserve.service
# systemctl restart svnserve.service //重启
# systemctl restart svnserve.service  //重启报错分析:

错误代码:Job for svnserve.service failed because the control process exited with error ...

解决:
# vi /etc/sysconfig/svnserve

#OPTIONS is used to pass command-line arguments to svnserve.
#
#Specify the repository location in -r parameter:
#OPTIONS="-r /var/svn" //问题出在此,svnserve默认仓库地址。
在没有创建该仓库,采用 # systemctl restart svnserve.service 启动异常。