Web高效管理多个项目的SVN仓库

转至:https://www.jianshu.com/p/a0af00642585
采用方案

Linux+Apache+Subversion+MySQL+JDK+Tomcat+Svnadmin

目录
0.安装准备

0.1 升级系统软件包
0.2 关闭SELinux
0.3 安装wget

1.部署Apache

1.1 安装apache
1.2 修改配置文件
1.3 启动apache服务
1.4 调整防火墙,允许80端口访问
1.5 浏览器访问测试

2.部署Subversion

2.1 安装SVN
2.2 重启apache服务
2.3 检查svn模块是否安装上了apache
2.4 查看svn版本
2.5 配置SVN仓库

2.5.1 创建SVN库主目录
2.5.2 编辑配置文件subversion.conf
2.5.3 创建/data/svn/passwd.http和/svn/authz文件
2.5.4 重启apache服务

3.部署MySQL

3.1 安装MySQL
3.2 mysql开机自动启动
3.3 启动mysql服务
3.4 调整防火墙,允许3306端口访问
3.5 设置mysql数据库的root用户密码

4.部署Tomcat

4.1 安装JDK
4.1.1 下载安装包
4.1.2 解压软件包
4.1.3 修改环境变量
4.1.4 使配置立即生效
4.1.5 检验是否生效
4.2 安装Tomcat
4.2.1 下载安装包
4.2.2 解压缩apache-tomcat软件包
4.2.3 修改tomcat的配置文件
4.2.4 调整防火墙,允许8080端口被访问
4.2.5 重启防火墙,使端口配置生效

5.部署jsvnadmin

5.1 删除tomcat/webapps目录中的默认文件
5.2 下载svnadmin软件包
5.3 解压缩svnadmin软件包
5.4 将svnadmin.war解压到tomcat/webapps的svnadmin目录中
5.5 修改svnadmin的jdbc属性文件中连接mysql的默认账户密码

6.初始化svnadmin的数据库

6.1 创建svnadmin数据库
6.2 导入sql文件(mysql5.sql 和en.sql )
6.3 启动tomcat服务

7.浏览器访问,初始化配置
8.补充部分

8.1 查看新增目录、文件,及authz配置参数
8.2 配置仓库的目录权限
8.3 配置rc.local让tomcat开机自动启动服务
8.4 权限公里中“认证失败”的问题

场景

互联网小型公司刚开始启动项目的时候,一般只有一个项目,这个时候,只需要在服务器上部署单库的SVN提供服务即可满足需求,运维人员刚开始只需要在命令行手动配置仓库,新人入职改改passwd和authz配置文件添加账号和权限就能搞定,但随着公司的日益发展壮大,研发队伍越来越壮大,人数越来越多,项目模块化,分布式,SOA服务化,多项目同时研发、测试、发布上线等等,运维人员忙的不可开交,旧法子已经完全不能满足需求了,怎么办呢?本着高效率工作,多玩耍的思想,运维人员要寻求更快更便捷的方法来解决问题,那么一定是服务化的方法了,通过WEB UI的方式管理,点点鼠标可以轻松搞定。

Jsvnadmin的出现,就改变了以往纯命令行或脚本的原始化方法,它是一个 Java 开发的管理 Svn 服务器的项目用户的 web 应用。安装好 Svn 服务器端好,把 Svn Admin 部署好,就可以通过 web 浏览器管理 Svn 的项目,管理项目的用户,管理项目的权限。使得管理配置 Svn 简便,再也不需要每次都到服务器手工修改配置文件。

svnadmin优点

多数据库: Svn 项目配置数据保存在数据库,支持所有数据库(默认MySQL/Oracle/SQL Server)

多操作系统:支持 Window,Linux 等操作系统。
权限控制:管理员可以随意分配权限、项目管理员可以管理项目成员、成员只能查看和修改自己的密码。
支持多项目、多用户、多用户组 Group(默认带有“项目管理组”、 “项目开发组”、 “项目测试组”)。
安全:密码加密保存。
多协议:支持 svn 协议和 http 协议(从 2.0 开始支持 Apache 服务器- - 单库方式,从 3.0开始支持 Apache 多库方式)
仓库浏览(从 3.0.2 开始)
多语言(从 3.0.2 开始)

解决方案

Svnadmin 在 Java 1.6、 Tomcat 6、 Subversion 1.6、 MySQL 5.1、 Apache 2.2、Windows 7 上开发测试通过,同时支持其他操作系统和数据库。

常采用的方案:
Linux+Apache+Subversion+MySQL+Tomcat+Svnadmin
Windows+Apache+Subversion+MySQL+Tomcat+Svnadmin
支持 svn 协议
Svn 的配置信息都在仓库目录的 conf 下的 authz,passwd,svnserve.conf 三个文件中,配置用户和权限都是通过修改 passwd 和 authz,立刻就生效。 Svn Admin 的本质是对这 3个文件进行管理,所有成员、权限的数据都保存在数据库中, 一旦在Svn Admin 的页面上修改,就会把配置信息输出到 conf 下的那 3 个配置文件中。
支持 http 协议
Apache+SVN 配置成功后可以有两种方式:

多库方式: SVNParentPath 指定一个父目录,所有仓库在这个父目录下,使用一个密码文件和一个权限配置文件。优点是增加删除仓库不需要改 apache的 httpd.conf,不需要重启 Apache。缺点是项目多会很混乱。
单库方式: SVNPath 每个仓库单独配置各自的密码和权限文件。优点是各自分开,互相不影响,维护方便。缺点是增加或删除仓库需要修改 apache 的httpd.conf 后重启。

0.安装准备
OS:CentOS6.8 x64
0.1 升级系统软件包
[[email protected] ~]# yum -y update

0.2 关闭SELinux
[[email protected] ~]# vim /etc/sysconfig/selinux
SELINUX=disabled

0.3 安装wget
[[email protected] ~]# yum -y install wget

准备工作做完以后,reboot命令重启服务器
1.部署Apache
1.1 安装apache
[[email protected] ~]# yum -y install httpd httpd-devel

1.2 修改配置文件
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf
276 ServerName localhost:80

1.3 启动apache服务
开机自动启动
[[email protected] ~]# chkconfig httpd on

启动apache服务
[[email protected] ~]# service httpd start

1.4 调整防火墙,允许80端口访问
[[email protected] ~]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
[[email protected] ~]# service iptables restart

1.5 浏览器访问:http://192.168.1.190
出现apache的欢迎页面

apache欢迎页面

2.部署Subversion
2.1 安装SVN
[[email protected] ~]# yum -y install subversion mod_dav_svn

2.2 重启apache服务
[[email protected] ~]# service httpd restart

2.3 检查svn模块是否安装上了apache
[[email protected] ~]# ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so

2.4 查看svn版本
[[email protected] ~]# svn --version
svn, version 1.6.11 (r934486)
compiled Aug 17 2015, 08:37:43

2.5 配置SVN仓库
2.5.1 创建SVN库主目录
多库模式,一份配置文件管理多个库
[[email protected] ~]# mkdir -p /data/svn #

2.5.2 编辑配置文件subversion.conf
[[email protected] ~]# cd /etc/httpd/conf.d/
[[email protected] conf.d]# ls
README subversion.conf welcome.conf
[[email protected] conf.d]# vim subversion.conf
#Include /data/svn/httpd.conf

DAV svn
SVNListParentPath on
SVNParentPath /data/svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /data/svn/passwd.http
AuthzSVNAccessFile /data/svn/authz
Require valid-user

RedirectMatch ^(/svn)$ $1/

2.5.3 创建/data/svn/passwd.http和/svn/authz文件
[[email protected] conf.d]# touch /data/svn/passwd.http
[[email protected] conf.d]# touch /data/svn/authz

2.5.4 重启apache服务
[[email protected] conf.d]# service httpd restart

3.部署MySQL
3.1 安装MySQL
[[email protected] ~]# yum -y install mysql-server mysql mysql-devel

3.2 mysql开机自动启动
[[email protected] ~]# chkconfig mysqld on

3.3 启动mysql服务
[[email protected] ~]# service mysqld start

3.4 调整防火墙,允许3306端口访问
[[email protected] ~]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

[[email protected] ~]# service iptables restart

3.5 设置mysql数据库的root用户密码
[[email protected] ~]# mysqladmin -u root password ‘mypassword‘

3.5 授权root账户远程访问mysql
[[email protected] conf.d]# mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON . TO ‘root‘@‘%‘ IDENTIFIED BY ‘mypassword‘ WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

4.部署Tomcat
4.1 安装JDK

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

4.1.1 下载安装包
[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz

4.1.2 解压软件包
[[email protected] src]# tar -zxvf jdk-8u121-linux-x64.tar.gz -C /usr/local/
[[email protected] src]# cd /usr/local/jdk1.8.0_121/
[[email protected] jdk1.8.0_121]# pwd
/usr/local/jdk1.8.0_121

4.1.3 修改环境变量
[[email protected] ~]# vim /etc/profile
# Java_Home
JAVA_HOME=/usr/local/jdk1.8.0_121
JRE_HOME=/usr/local/jdk1.8.0_121/jre
PATH=\(PATH:\)JAVA_HOME/bin:\(JRE_HOME/bin CLASSPATH=:\)JAVA_HOME/lib/dt.jar:\(JAVA_HOME/lib/tools.jar:\)JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

4.1.4 使配置立即生效
[[email protected] ~]# source /etc/profile

4.1.5 检验是否生效
方法1:
[[email protected] ~]# java -version
java version "1.7.0_131"
OpenJDK Runtime Environment (rhel-2.6.9.0.el6_8-x86_64 u131-b00)
OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)

方法2:
[[email protected] ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk1.8.0_121/bin:/usr/local/jdk1.8.0_121/jre/bin:/root/bin
[[email protected] ~]# echo $JRE_HOME
/usr/local/jdk1.8.0_121/jre
[[email protected] ~]# echo $JAVA_HOME
/usr/local/jdk1.8.0_121

4.2 安装Tomcat

下载地址:http://tomcat.apache.org/download-70.cgi
找到Core中tar.gz,右键复制链接

4.2.1 下载安装包
[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.76/bin/apache-tomcat-7.0.76.tar.gz

4.2.2 解压缩apache-tomcat软件包
[[email protected] src]# tar -zxvf apache-tomcat-7.0.76.tar.gz -C /usr/local/
[[email protected] src]# cd /usr/local/
[[email protected] local]# mv apache-tomcat-7.0.76/ tomcat

4.2.3 修改tomcat的配置文件
末尾增加URIEncoding参数为UTF-8
[[email protected] src]# vim /usr/local/src/svnadmin-tomcat/conf/server.xml
22
71 <Connector port="8080" protocol="HTTP/1.1"
72 connectionTimeout="20000"
73 redirectPort="8443" URIEncoding="UTF-8"/>

4.2.4 调整防火墙,允许8080端口被访问
[[email protected] src]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

4.2.5 重启防火墙,使端口配置生效
[[email protected] src]# service iptables restart

5.安装jsvnadmin

下载链接
https://code.google.com/archive/p/jsvnadmin/
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/jsvnadmin/svnadmin-3.0.5.zip

5.1 删除tomcat/webapps目录中的默认文件
[[email protected] ~]# rm -rf /usr/local/tomcat/webapps/*

5.2 下载svnadmin软件包
[[email protected] ~]# cd /usr/local/src/
[[email protected] webapps]# wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/jsvnadmin/svnadmin-3.0.5.zip

5.3 解压缩svnadmin软件包
[[email protected] src]# unzip svnadmin-3.0.5.zip -d svnadmin
[[email protected] src]# cd svnadmin

5.4 将svnadmin.war解压到tomcat/webapps的svnadmin目录中
[[email protected] svnadmin]# unzip svnadmin.war -d /usr/local/tomcat/webapps/svnadmin

5.5 修改svnadmin的jdbc属性文件中连接mysql的默认账户密码
[[email protected] svnadmin]# vim /usr/local/tomcat/webapps/svnadmin/WEB-INF/jdbc.properties
db=MySQL

#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=mypassword

6.初始化svnadmin的数据库
6.1 创建svnadmin数据库
[[email protected] ~]# mysql -u root -p
mysql> CREATE DATABASE svnadmin CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| svnadmin |
| test |
+--------------------+
4 rows in set (0.00 sec)

mysql> exit
Bye

6.2 导入sql文件(mysql5.sql 和en.sql )
[[email protected] svnadmin]# mysql -u root -p svnadmin < /usr/local/src/svnadmin/db/mysql5.sql
[[email protected] svnadmin]# mysql -u root -p svnadmin < /usr/local/src/svnadmin/db/lang/en.sql

6.3 启动tomcat服务
[[email protected] ~]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/jdk1.8.0_121/jre
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

7.浏览器访问,初始化配置
浏览器访问:http://192.168.1.190:8080/svnadmin/
页面提示:欢迎使用SVN ADMIN,第一次使用请设置管理员帐号和密码.
输入账号/密码,即为svnadmin的默认WEB登录账号密码,需要保存起来,以免忘记。

SVN ADMIN初始化页面

在SVN ADMIN的WEB页面中,可以看到项目管理的相关配置,改变了以往Linux Server上通过命令行管理svn的繁琐历史,而使用WEB GUI的配置方式,可以大大提高SVN仓库的管理效率;
在SVN ADMIN的WEB页面上不仅可以新建项目的SVN仓库,还可以针对不同的项目,进行账户、账户组的配置、权限的管理,非常适合中等型,或小型互联网公司进行管理;

创建库.png

提交成功

8.补充部分
8.1 查看新增目录、文件,及authz配置参数
[[email protected] ~]# cd /data/svn/
[[email protected] svn]# ls
authz project1 httpd.conf passwd.http

/data/svn目录中,已经产生了一个目录ddstore,和一个文件httpd.conf,它与subversion.conf是一样的,在/etc/httpd/conf.d/subversion.conf中已配置。
[[email protected] svn]# cat authz
[aliases]
[groups]
ddstore_developer=
ddstore_manager=
ddstore_tester=

[ddstore:/]
@ddstore_manager=rw

查看authz文件,可以发现,已经被添加了配置内容;这些改变,都是因为调用了svn做了相应的操作。
8.2 配置仓库的目录权限
[[email protected] ~]# chown -R apache.apache /data/svn/project1/
[[email protected] ~]# chmod -R 777 /data/svn/project1/

8.3 配置rc.local让tomcat开机自动启动服务
[[email protected] ~]# vim /etc/rc.local
#tomcat auto start
/usr/local/tomcat/bin/startup.sh

8.4 权限公里中“认证失败”的问题
原因:没有把admin加入项目的manager组中,因此进入权限管理中后,会出现认证失败的问题;
解决方法:设置用户组--->设置用户--->将admin添加到管理组

所有的部署过程已经完成,那么我们需要在SVN ADMIN管理页面中,查看仓库的状态,点击仓库URL链接,查看仓库的状态;若无任何错误信息,即表示仓库配置成功,若有报错,例如405信息等等,那么说明仓库的配置是有问题的,若您尝试多次解决无果,可以联系我,我有空的时候可以协助你troubleshouting。

点击仓库URL链接

查看仓库状态

原文地址:https://www.cnblogs.com/daixh/p/11330772.html

时间: 2024-07-31 07:06:48

Web高效管理多个项目的SVN仓库的相关文章

更换已存在项目的svn的地址

CreateTime--2017年11月23日16:20:14 Author:Marydon 如何更换已存在项目的svn的地址? 参考链接:http://blog.csdn.net/sinat_24928447/article/details/61912991 1.打开eclipse中的svn资源库 windows-->show view-->other-->SVN-->svn资源库/svn repositories: 2.右键单击需要更新地址的项目-->右键选择“重新定位/

取得项目的 Git 仓库

有两种取得 Git 项目仓库的方法.第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库.第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来. 在工作目录中初始化新仓库 要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行: $ git init 初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中.不过目前,仅仅是按照既有的结构框架初始化好了里边所有的文件和目录,但我们还没有开始跟踪管理项目中的任何一个文件.(

eclipse下清除项目的svn信息

点击项目右键->Team->Disconnect 选择第一个即可

.net项目的svn Global ignore pattern

*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__ *.rej *~ #*# .#* .*.swp .DS_Store [Tt]humbs.db packages [Bb]in [Oo]bj .vs *.GhostDoc.xml *.user *.pdb

Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)

目录 1.简介 2.安装Eclipse Maven插件 3.用Eclipse创建Maven Web项目 4.配置settings.xml 文件并下载项目依赖的JAR,并上传Web项目的api的JAR到Nexus 私服 1.简介 Maven.Nexus 私服的安装和配置和Maven的优点在Maven和 Sonatype Nexus私服的安装.配置及使用入门已经有介绍了,这里就不在介绍了,今天我们要介绍Maven创建并管理Web项目,方便我们项目的开发和管理. 2.安装Eclipse Maven插件

Visual Studio 中用于 ASP.NET Web 项目的 Web 服务器

Visual Studio 中用于 ASP.NET Web 项目的 Web 服务器 当您在 Visual Studio 中开发 Web 项目时,需要 Web 服务器才能测试或运行它们.             利用 Visual Studio,您可以使用不同的 Web 服务器进行测试,包括 IIS Express.Internet Information Services (IIS).外部主机或自定义 Web 服务器.  您可以将其中任何一种 Web 服务器用于基于文件的 Web 应用程序项目.

如何修改MyEclipse项目的web context-root

修改一个MyEclipse项目的名称很容易,右键点项目->rename就行了. 但此时项目的web context-root 还没有改变,需要右键点项目->properties->MyEclipse->Web->Web context-root,修改成你想要的新名,点OK就可以了. 细节如下图. 2016年8月23日11:29:58

干货|人人都是翻译项目的Master

在平时的工作中,我们都会经常查阅一些英文文档来解决平时遇到的问题和拓宽视野.看到好的文章或者书籍有没有想要和小伙伴分享的冲动,那么我们一起来翻译吧- 翻译主张 "信 达 雅" ."信"指意义不悖原文,即是译文要准确,不偏离,不遗漏,也不要随意增减意思:"达"指不拘泥于原文形式,译文通顺明白:"雅"则指译文时选用的词语要得体,追求文章本身的古雅,简明优雅.身为非专业翻译人员,要达到以上三点不是很容易的,但是我们要尽可能往这个方向

跨过Nginx上基于uWSGI部署Django项目的坑

先说说他们的关系,Nginx和uWSGI都是Web服务器,Nginx负责静态内容,uWSGI负责Python这样的动态内容,二者配合共同提供Web服务以实现提高效率和负载均衡等目的.uWSGI实现了多个协议,如WSGI,HTTP协议,还有它自己的uwsgi协议,想了解更多关于uWSGI和uwsgi协议内容可以查阅这里.这样和fastcgi类似,请求和响应的流程如下: Request > Nginx > uWSGI > Django > uWSGI > Nginx > R