手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

CentOS 6.x 部署Subversion 集成 SvnAdmin Web管理界面

[日期:2017-12-22] 来源:简书  作者:YOGAGREEN [字体: ]

前言:

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。当然也可用于文件文档类型的共享。
SvnAdmin是一个 Java 开发的管理 Svn 服务器的项目用户的 web 应用。安装好 Svn 服务器端好,把 Svn Admin 部署到 Tomcat ,就可以通过 web 浏览器管理 Svn 的项目,管理项目的用户,管理项目的权限。使得管理配置 Svn 简便,再也不需要每次都到服务器手工修改配置文件。

一:环境介绍

1.操作系统:CentOS 6.* ( 双核4G、硬盘至少20G)
2.应用软件:

apr、apr-util、apache subversion、sqlite-amalgamation、jdk、apache-tomcat、svnadmin、mysql

二:软件下载

(下载最新版本即可)
apr、apr-util 下载:http://apr.apache.org/download.cgi

apr-1.5.2.tar.gz
apr-util-1.5.4.tar.gz

apache subversion 下载:http://subversion.apache.org/download.cgi

subversion-1.9.5.tar.gz

sqlite-amalgamation-*下载:http://www.sqlite.org/download.html

sqlite-amalgamation-3190300.zip

jdk下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

jdk-8u131-linux-x64.tar.gz

apache tomcat 下载:http://tomcat.apache.org/download-70.cgi

apache-tomcat-7.0.78.tar.gz

svnadmin项目下载(需要VPN连接):https://code.google.com/archive/p/jsvnadmin/downloads

svnadmin-3.0.5.zip

二:安装subversion

1.yum 安装依赖库
yum install unzip openssh-clients zlib zlib-devel gcc-c++ -y
2.编译安装 apr 和 apr-util
tar -zxf apr-1.5.2.tar.gz 
cd /root/apr-1.5.2
./configure --prefix=/usr/local/apr && make && make install

tar -zxf apr-util-1.5.4.tar.gz 
cd /root/apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
3.编译安装subversion
tar -zxf subversion-1.9.5.tar.gz

unzip sqlite-amalgamation-3071501.zip

mv sqlite-amalgamation-3071501 subversion-1.9.5/sqlite-amalgamation

cd  subversion-1.9.5

./configure --prefix=/usr/local/subversion --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-zlib --enable-maintainer-mode
make
make install
4.将subversion 加入系统环境变量
echo "export SVN_HOME=\"/usr/local/subversion\"
export PATH=\"\$PATH:\$SVN_HOME/bin\"" >> /etc/profile
source /etc/profile
5.创建subversion库
mkdir /opt/subversion/svn/test -p
svnadmin create /opt/subversion/svn/test
6.指定库 指定端口 启动subversion
svnserve -d -r /opt/subversion/svn --listen-port=3690

查看svn端口3690是否存在

netstat -ntpl

防火墙打开3690端口
vim /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

重启防火墙

/etc/init.d/iptables restart

查看防火墙
iptables -L -n

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:3690 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:3306 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8080 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

二:部署svnadmin

1.安装jdk,将jdk的tar包解压,然后加入系统环境变量即可
tar -zxf jdk-8u131-linux-x64.tar.gz -C /usr/local

编辑/etc/profile文件在末尾加入下列语句
vim /etc/profile

JAVA_HOME=/usr/local/jdk1.8.0_131
JRE_HOME=/usr/local/jdk1.8.0_131/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HOME/bin:/sbin:/usr/bin:/usr/sbinexport:/usr/local/sbin:/usr/local/bin:/bin:/usr/sbin:/root/bin
CLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

source /etc/profile
[root@localhost ~]#java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

至此jdk安装完毕

2.mysql的安装请转到  http://www.linuxidc.com/Linux/2017-12/149714.htm 查看

配置mysql用户并创建svnadmin库即可

mysql> create database svnadmin;
3.解压tomcat,删除webapps下的文件
tar -zxf apache-tomcat-7.0.78.tar.gz -C /opt
rm -rf /opt/apache-tomcat-7.0.78/webapps/*

4.配置svnadmin

解压svnadmin-3.0.5.zip将svnadmin.war 移动到/opt/apache-tomcat-7.0.78/webapps/

unzip svnadmin-3.0.5.zip
mv svnadmin.war /opt/apache-tomcat-7.0.78/webapps/

启动tomcat,让tomcat自行解压war包,然后编辑数据库配置文件的#mysql段,使其可以正常连接数据库

/opt/apache-tomcat-7.0.78/bin/startup.sh

vim /opt/apache-tomcat-7.0.78/webapps/svnadmin/WEB-INF/jdbc.properties
#MySQL
MySQL.jdbc.driver=com.mysql.jdbc.Driver
MySQL.jdbc.url=jdbc:mysql://127.0.0.1:3306/svnadmin?characterEncoding=utf-8
MySQL.jdbc.username=root
MySQL.jdbc.password=root

导入svnadmin项目mysql数据库和语言包

mysql -uroot -p svnadmin < db/mysql5.sql
mysql -uroot -p svnadmin < db/lang/en.sql

再重启tomcat

/opt/apache-tomcat-7.0.78/bin/shutdown.sh
/opt/apache-tomcat-7.0.78/bin/startup.sh

此时svnadmin已经配置启动完毕

防火墙开通8080端口

[root@localhost opt]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:3690 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:3306 
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8080 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
5.进入svnadmin的web界面进行配置
浏览器输入地址访问tomcat,提示第一次使用请设置管理员帐号和密码,这里设置一个admin
http://IP:8080/svnadmin/

 

配置svnadmin和subversion的集成,在web管理界面输入下列信息,并提交

提交完毕后项目已经集成

现在可以对svn增加用户,以及配置用户权限

首先设置用户组,将之前第一次设置的svnadmin管理员账号加入manage用户组内

设置用户  ↑

增加用户  ↑

现在对此项目有第一个管理员用户了,现在需要创建其他用户

创建用户

给a用户配置权限

给a用户配置可读权限

6.配置完用户权限过后,通过tortoisesvn的windows客户访问svn服务

tortoisesvn 客户端下载地址:https://tortoisesvn.net/downloads.html

windows下直接双击运行msi文件进行tortoisesvn的安装

安装完成后在桌面上空白处右键进入版本库浏览"Repo-browser"

输入SVN地址

输入管理员用户名和密码

进入后创建文件夹

7.subversion的备份

第一种:指定版本备份,以及恢复方式(subversion库版本号可以通过windows客户端tortoisesvn的"版本库浏览"进行查看)

svnadmin dump /opt/subversion/svn/test/ --revision 1010 > 20171111.svn
svnadmin load /opt/subversion/svn/test/ < 20171111.svn
第二种:全备份,以及恢复方式
svnadmin dump /opt/subversion/svn/test/ > 20172222.svn
svnadmin load /opt/subversion/svn/test/ < 20172222.svn
第三种:备份并压缩,以及恢复方式
svnadmin dump /opt/subversion/svn/test/ | gzip /opt/backup/subversion/20171212.svn.zip
zcat 20171212.svn.zip | svnadmin load /opt/subversion/svn/test/
可以将备份命令写成shell脚本

vim /opt/backup/subversion/svndump.sh

#!/bin/bash

DBNAME=`date  "+%Y.%m.%d_%H%M%S_test_subversion"`.svn
/usr/local/subversion/bin/svnadmin dump /opt/subversion/svn/test/ > /opt/backup/subversion/$DBNAME
给脚本添加执行权
chmod +x /opt/backup/subversion/svndump.sh
写crontab计划任务让其自动备份

crontab -e

#每周六的3:30执行脚本svndump.sh
30 3 * * 6 /opt/backup/subversion/svndump.sh

更多用法请参照svn官方文档

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-12/149716.htm

linux
相关资讯       subversion  svnadmin 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款