1、通过 yum 命令安装 svnserve,命令如下:
# 此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行 yum -y install subversion # 若需查看svn安装位置,可以用以下命令: rpm -ql subversion
2、创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
# 选择在 var 路径下创建版本库,当前处于根目录下,一次性创建如下: mkdir /var/svnrepos
3、创建 svn 版本库
# 在第二步建立的路径基础上,创建版本库,命令如下: svnadmin create /var/svnrepos/xxxx (xxxx为你预期的版本库名称,可自定义) # 创建成功后,进入 xxxx 目录下 cd /var/svnrepos/xxxx # 进入目录,可以看见如下文件信息: total 24 drwxr-xr-x 2 root root 4096 May 2 13:48 conf drwxr-sr-x 6 root root 4096 May 2 13:48 db -r--r--r-- 1 root root 2 May 2 13:48 format drwxr-xr-x 2 root root 4096 May 2 13:48 hooks drwxr-xr-x 2 root root 4096 May 2 13:48 locks -rw-r--r-- 1 root root 229 May 2 13:48 README.txt
4、配置修改
# 进入已经创建好的版本库目录下,也就是前文说创建的 xxxx,进入 conf cd /var/svnrepos/xxxx/conf # conf 目录下,一共存放三份重要的配置文件,如下: total 12 -rw-r--r-- 1 root root 1080 May 2 13:48 authz -rw-r--r-- 1 root root 309 May 2 13:48 passwd -rw-r--r-- 1 root root 3090 May 2 13:48 svnserve.conf # authz:负责账号权限的管理,控制账号是否读写权限 # passwd:负责账号和密码的用户名单管理 # svnserve.conf:svn 服务器配置文件
- 编辑 authz 文件(注意:[/] 也是必须的)
# 用户组(权限分组管理,组名 = 用户1,用户2) [groups] teacher = zhengying,zhugc class1 = zhangsan # 拥有根目录(版本库)下权限的用户组配置,r 代表可读权限--可以从 svn 服务器上dowm 资料,但是不能上传和删除资料;rw 代表可读可写权限--可以从 svn 服务器上dowm 资料,也可以上传和删除资料 [/] @teacher = rw # 拥有版本库下 class1 文件夹权限的用户组配置(xinfs 为版本库) [xinfs:/class1] @class1 = rw
- 编辑 passwd 文件,管理用户密码(用户名 = 密码)
- 编辑 svnserve.conf 文件,取消下面几行注释(注意:配置的前面不能有空格,一定要顶格写)
anon-access = none # 表示禁止匿名用户访问。 auth-access = write # 表示授权用户拥有读写权限。 password-db = passswd # 指定用户名口令文件,即 passwd 文件。 authz-db = authz #指定权限配置文件,即 authz 文件。 realm = /var/svnrepos # 指定认证域,即 /var/svnrepos 目录。
5、防火墙开启(iptable 防火墻)
- 多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题【注意:如果是阿里云,腾讯云的服务器,还需在安全组添加端口开启规则】
vi /etc/sysconfig/iptables # 添加配置信息 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT wq: # 保存退出 service iptables restart # 重启防火墙使配置生效
6、启动 svn 服务器(注意:重启命令中不要带入版本号)
svnserve -d -r /var/svnrepos # 启动 svn 服务 ps -ef | grep 'svnserve' # 查看 svn 进程
7、客户端访问 svn 服务器
- 在 windows 客户端,输入地址:svn://ip地址:3690/xxxx (IP 地址为你 linux 的 IP,xxxx 为前文创建的版本库名称,3690 为 svn 默认端口)
- 弹出输入用户名和密码,输入即可访问
- 弹出输入用户名和密码,输入即可访问
- 或者在 linux 服务器输入命令测试
- svn co svn://ip地址:3690/xxxx
- 如下为例子:
8、问题
- 输入账号密码后,提示 svn: Authorization failed 解决办法
- 把 authz 文件 [/] 改为 [] 试试