共计 3566 个字符,预计需要花费 9 分钟才能阅读完成。
在 CentOS7 下搭建 SVN 服务,实现本地提交代码自动同步到 Web 目录。
1、安装 SVN 服务
[root@linuxidc ~]# yum -y install subversion
2、查看 svnserve 安装目录
[root@linuxidc ~]# whereis svnserve
svnserve: /usr/bin/svnserve /usr/share/man/man8/svnserve.8.gz
3、查看是否安装成功,如果出现以下提示则安装成功
[root@linuxidc ~]# svnserve -h
usage: svnserve [-d | -i | -t | -X] [options]
Valid options:
-d [–daemon] : daemon mode
-i [–inetd] : inetd mode
-t [–tunnel] : tunnel mode
-X [–listen-once] : listen-once mode (useful for debugging)
-r [–root] ARG : root of directory to serve
-R [–read-only] : force read only, overriding repository config file
–config-file ARG : read configuration from file ARG
–listen-port ARG : listen port
….
4、创建版本库
[root@linuxidc /]# 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” #默认版本库位置
4.1)[root@linuxidc /]# mkdir /var/svn #可自定义目录
4.2)[root@linuxidc /]# svnadmin create /var/svn/linuxidc.net
5、配置
5.1)新增用户
[root@linuxidc /]# vi /var/svn/linuxidc.net/conf/passwd
[users]
# harry = harryssecret
# sally = sallyssecret
#
linuxidc = www.linuxidc.net #用户名 = 用户密码
5.2)编辑用户权限
[root@linuxidc /]# vi /var/svn/linuxidc.net/conf/authz
[/]
linuxidc = rw #授予 linuxidc 用户对根目录的读写权限,也可指定子目录
5.3)编辑 svnserve.conf
[root@linuxidc /]# vi /var/svn/linuxidc.net/conf/svnserve.conf
anon-access = none #控制非鉴权用户访问版本库的权限
auth-access = write #控制鉴权用户访问版本库的权限
password-db = passwd #指定用户名口令文件名
authz-db = authz #指定权限配置文件名
realm = linuxidc.net #指定版本库的认证域,即在登录时提示的认证域名称
!!! 以上五项不仅要去掉前面的 #号,而且还要删除前面的空格,不然会报“xxxxx: Option expected”错误 !!!
6、启动 SVN
[root@linuxidc /]# systemctl start svnserve.service
7、设置开机自启
[root@linuxidc /]# systemctl enable svnserve
8、查看 SVN 端口,并设置防火墙开放其端口
[root@linuxidc /]# ss -tnlp | grep svnserve
LISTEN 0 7 *:3690 *:* users:((“svnserve”,pid=1869,fd=3))
[root@linuxidc /]# firewall-cmd –permanent –add-service=telnet
[root@linuxidc /]# firewall-cmd –permanent –add-port=3690/tcp
[root@linuxidc /]# firewall-cmd –reload
9、解决 SVN 报“xxxxx: permission denied”错误
[root@linuxidc /]# systemctl stop svnserve.service
[root@linuxidc /]# killall svnserve
[root@linuxidc /]# svnserve -d -r /var/svn/ #以 root 用户运行
10、在 Win10 下载安装 TortoiseSVN
checkout 时填写的 url: svn://www.linuxidc.net/linuxidc.net #svn://your/server/addr/ 版本库名
认证用户名:linuxidc
认证密码:www.linuxidc.net
11、提交代码自动同步到 WEB 服务目录
[root@linuxidc html]# cp /var/svn/linuxidc.net/hooks/post-commit.tmpl /var/svn/linuxidc.net/hooks/post-commit
[root@linuxidc html]# vi /var/svn/linuxidc.net/hooks/post-commit
!!! 把文件里所有行注释掉,添加如下关键代码:!!!
cd /LNMP/nginx/html
svn co file:///var/svn/linuxidc.net/ #checkout 本地 svn 版本库, 如果 WEB 服务与 SVN 服务不在同一主机,则用 http://svn/url/svn_name
svn cleanup
svn up /LNMP/nginx/html/linuxidc.net/ –username linuxidc –password 123456 –no-auth-cache
更多 Subversion (SVN) 相关教程见以下内容:
Ubuntu 14.04 下搭建 SVN 服务器 SVN:// http://www.linuxidc.com/Linux/2015-01/111956.htm
CentOS 7 下安装 iF.svnadmin 实现 Web 方式管理 SVN(源码安装)http://www.linuxidc.com/Linux/2016-08/134214.htm
CentOS7.2 编译安装 SVN1.9.5 客户端 http://www.linuxidc.com/Linux/2017-03/141387.htm
SVN 服务器搭建步骤及使用实战 http://www.linuxidc.com/Linux/2017-01/139282.htm
CentOS 7 下搭建配置 SVN 服务器 http://www.linuxidc.com/Linux/2017-05/144254.htm
CentOS 7.2 下 Nginx+MySQL+PHP-FPM+SVN 配置 Walle 自动化部署系统详解 http://www.linuxidc.com/Linux/2016-11/137703.htm
基于腾讯 CentOS 7 云服务器搭建 SVN 版本控制库 http://www.linuxidc.com/Linux/2017-05/144244.htm
CentOS 7.1 下 SVN 安装与配置 http://www.linuxidc.com/Linux/2016-12/138637.htm
CentOS 6.8 搭建 SVN(版本控制系统)及 SVN 的使用 http://www.linuxidc.com/Linux/2017-04/143093.htm
Linux 上手动搭建 svn 服务器 http://www.linuxidc.com/Linux/2017-12/149777.htm
Subversion (SVN) 的详细介绍:请点这里
Subversion (SVN) 的下载地址:请点这里
更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14
本文永久更新链接地址:http://www.linuxidc.com/Linux/2018-01/150098.htm