六、Centos7中配置svn服务器

今天配置了 SVN 记在这儿 备忘:

--svn开机自启动服务

systemctl enable svnserve.service 

--svn开机自启动服务

 systemctl disable svnserve.service
  1. 下载 svn 软件包和依赖包

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

cd /mydata/soft

wget http://labs.mop.com/apache-mirror/subversion/subversion-1.7.7.tar.gz

wget http://archive.apache.org/dist/apr/apr-util-1.5.1.tar.gz

wget http://archive.apache.org/dist/apr/apr-1.4.6.tar.gz

wget http://www.sqlite.org/sqlite-amalgamation-3071401.zip

  1. 安装 依赖软件包

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

tar zxvf apr-1.4.6.tar.gz

cd apr-1.4.6/

./configure --prefix=/usr/local/apr

make && make install

cd ../

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

tar zxvf apr-util-1.5.1.tar.gz

cd apr-util-1.5.1/

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

make && make install

cd ../

  1. 安装 svn

注意这里是 SVN 和 sqlite 解压到一起再安装的

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

tar xvf subversion-1.7.7.tar.gz

unzip sqlite-amalgamation-3071401.zip

mv sqlite-amalgamation-3071401 ./subversion-1.7.7/sqlite-amalgamation

cd subversion-1.7.7

./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --without-berkeley-db --with-ssl

make && make install

cd ..

  1. 修改环境变量

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

vi /etc/profile

开头加入:

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

PATH=$PATH:/usr/local/svn/bin

export PATH

可能需要断开当前 ssh 连接重新登陆才会生效

  1. 检测是否安装成功

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

svnserve --version

svnserve, version 1.7.7

  1. 开启防火墙 SVN 端口

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9999 -j ACCEPT

保存防火墙设置

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

/etc/rc.d/init.d/iptables save

  1. 创建 svn 库 www

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

mkdir -p /var/svn/

cd /var/svn/

svnadmin create www

cd www/conf/

ls

显示当前项目配置文件

authz passwd svnserve.conf

  1. 配置版本库信息

    项目配置:

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

vi svnserve.conf

修改:去掉注释符

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

[general]

anon-access = none

auth-access = write

password-db = passwd

authzauthz-db = authz

realm = www

定义版本库访问权限:

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

vi authz

添加:

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

[/]

svnuser = rw

[www]

svnuser = rw

设定用户密码:

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

vi passwd

添加:

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

svnuser = 123456

  1. 建立启动svn 的用户

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

useradd svn

passwd svn

回车后输入两次密码

然后设置用户所有权,允许 svn 访问版本库:

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

chown -R svn:svn /var/svn

  1. 启动 SVN

先写个提醒:

开放的 svn 根目录经测试应该只能是项目仓库的父级目录

10.1 用设定帐户启动

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

说明:

su svn 表示以用户svn 的身份启动svn

-d 表示以daemon 方式(后台运行)运行

–listen-port svn 默认端口是3690, 9999表示使用9999 端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root 权限

-r /var/svn/www 指定根目录是/var/svn/

10.2 对于单个代码仓库启动命令:

[plain]view plaincopy在CODE上查看代码片派生到我的代码片

svnserve -d -r /var/svn/www --listen-host 22.21.50.17 –listen-port 9999

说明:

-d 表示在后台运行,

-r 指定服务器的根目录,

这样访问服务器时就可以直接用svn://服务器ip 来访问了。

10.3 对于多个代码仓库:

通过 -r 开放 SVN 的根目录,

    # svnserve -d -r /var/svn/ --listen-host 22.21.50.17  –listen-port 9999  

客户端访问时再指定仓库目录即可访问 如: svn://22.21.50.17:9999/www 来分别访问每个项目

10.4 如果显示如下,即为启动成功:

    svn 6941 1 0 15:07 ? 00:00:00 svnserve -d -r /var/svn  

10.5 以 root 帐号 启动 SVN 服务

     # svnserve -d -r /var/svn/ --listen-host 22.21.50.17  --listen-port 9999  

10.6 检查是否启动成功

    # ps -ef|grep svnserve