2019独角兽企业重金招聘Python工程师标准>>>

本次集成的SVN版本管理系统由Apache 、Subversion 、Jsvn admin构成,其中,Apache 是应用服务器中间件,Subversion 是SVN软件,Jsvn admin是管理 Svn 服务器的项目用户的 web 应用,即Jsvn admin运行在apache服务器,并对我们的SVN访问权限进行管理。

1. 安装apache

  • 安装服务
yum install httpd httpd-devel# 启动服务
service httpd start
# 设置为开机启动
chkconfig httpd on
  • 配置
 vim /etc/httpd/conf/httpd.conf

找到 ServerName 并修改成 ServerName localhost:80

  • 防火墙中打开 80 端口
# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# service iptables restart
  • 测试服务器是否安装成功

浏览器中访问 http://你的IP/

2. 安装SVN

  • 安装服务
#安装SVN相关模块
yum -y install mod_dav_svn subversion
#重启apache
service httpd restart
#查看SVN服务是否安装成功
svn --version
  • 配置SVN

创建svn主库目录

mkdir /svn/

配置密码和权限管理文件所在目录

touch /svn/passwd.http
touch /svn/authz
vim /etc/httpd/conf.d/subversion.conf

添加以下内容,里面有SVN库的目录和多库的父目录

#Include /svn/httpd.conf
<Location /svn/>
DAV svn
SVNListParentPath on
SVNParentPath /svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /svn/passwd.http
AuthzSVNAccessFile /svn/authz
Require valid-user
</Location>
RedirectMatch ^(/svn)$ $1/

3. 安装jsvn admin

翻墙后,到 https://code.google.com/p/jsvnadmin/ 下载最新版。

** 关闭 SELinux( Linux 的访问控制)**

修改/etc/selinux/config 文件

vim /etc/selinux/config

将 SELINUX=enforcing 改为 SELINUX=disabled 后重启机器

  • ** 安装MYSQL**
# 查看该操作系统上是否已经安装了 mysql 数据库,有的话,可以通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉
rpm -qa | grep mysql #开始安装
yum install mysql-server mysql mysql-devel
service mysqld start
chkconfig mysqld on

防火墙中打开 3306 端口

 vim /etc/sysconfig/iptables

加入以下文本

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

重启防火墙, 使端口配置生效

service iptables restart

设置 MySQL 数据库 root 用户的密码

mysqladmin -u root password '123456'

登录数据库后,授权远程访问

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH
GRANT OPTION;
mysql> FLUSH PRIVILEGES;
  • ** 使用 Tomcat7 部署 svn admin**

上传tomcat7并解压到/usr/local/tomcat/svnadmin-tomcat,修改tomcat的端口为和容器编码为 UTF-8

vim /usr/local/tomcat/svnadmin-tomcat/conf/server.xml

修改为

<Server port="9005" shutdown="SHUTDOWN">
<Connector port="9000" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />

防火墙中打开 9000 端口,重启防火墙

上传svnadmin.war,解压到/usr/local/tomcat/svnadmin-tomcat/webapp下

unzip  svnadmin.war -d /usr/local/tomcat/svnadmin-tomcat/webapps/svnadmin

修改svnadmin的JDBC配置

vim /usr/local/tomcat/svnadmin-tomcat/webapps/svnadmin/WEB-INF/jdbc.properties

配置如下:

#MySQL
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=123456#Oracle
#Oracle.jdbc.driver=oracle.jdbc.driver.OracleDriver
#Oracle.jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:svnadmin
#Oracle.jdbc.username=root
#Oracle.jdbc.password=123456

利用客户端工具创建一个 svnadmin 数据库实例并导入相应数据,数据库脚本是安装包下的db/mysql5.sql 和 db/lang/en.sql 文件。下图是运行脚本后创建好的表。

启动tomcat,输入网址 http://192.168.88.15:9000/svnadmin/ 登录svn管理后台,看到该页面后即部署成功。第一次登录需要设置账户和密码。

4. 使用svnadmin

假设现在有以下需求:svntest项目组有jack、rick、rose三个成员,其中jack是项目经理,rick是开发人员,rose是测试人员。svntest项目的仓库URL是http://192.168.88.15/svn/svntest,仓库的目录结构如下:

svntest|_____tags|_____trunk|_____branches

jack是属于管理组,对根目录以及所有的子目录拥有读写权限;rick属于开发组,只拥有trunk以及所有的子目录读写权限, rose可以读取tags目录,但不能写。

4.1 创建仓库

为SVN仓库创建一个名为svntest的库

创建完毕后,在SVN库的根目录下将会被创建一个svntest的文件夹

[root@www svn]# ls /svn
authz  httpd.conf  passwd.http  svntest

authz 文件是权限管理文件,通过上面创建了svntest这个库后,这里默认建立了三个角色(组):developer、manager、tester,其中manager给予了读写权限。

[root@www svn]# cat authz
[aliases]
[groups]
svntest_developer=
svntest_manager=
svntest_tester=[svntest:/]
@svntest_manager=rw

** 重要:修改项目仓库目录拥有者和赋予读写权限,每次创建新的仓库都要重新授权**

因为现在项目仓库目录归属为root,但是我们通过svn管理控制平台操作该目录的时候默认是使用apache的账户,所以对该目录没有读写权限。

现在的/svn所属

[root@www svn]# ll /svn
drwxr-xr-x 6 root   root   4096 Mar  2 14:54 svntest
[root@www svn]# vim /etc/httpd/conf/httpd.conf#文件的内容里面有以下字段
User apache
Group apache

修改所属组和权限

chown -R apache.apache /svn/svntest
chmod -R 777  /svn/svntest

4.2 创建用户和添加为组员

点击右上角的用户分别创建jack/rick/rose三个用户。

把admin和jack用户设置为管理组,rick设置为开发组,rose设置为测试组。** admin添加到管理组才能为相应的组给予相应的权限。**

4.3 建立项目的目录

利用乌龟SVN使用管理组的账号jack检出项目,并在根目录下建立相应的子目录,最后上传代码库。

4.4 权限控制

登录SVN管理平台,点击相应的项目进行权限授予。

转载于:https://my.oschina.net/thinwonton/blog/848746

持续集成-SVN版本管理系统的安装相关推荐

  1. SVN版本管理系统的安装 CentOS + Subversion + Apache + Jsvnadmin

    CI服务器:192.168.4.221 root用户操作 建议安装前更新操作系统 yum update 更新完成后重启 reboot 安装apache yum install httpd httpd- ...

  2. Jenkins——持续集成及Jenkins介绍和安装配置(插件,用户权限,凭据,Maven安装打包,配置tomcat用户权限)

    持续集成及Jenkins介绍和安装配置 持续集成及Jenkins介绍 软件开发生命周期 持续集成 持续集成的组成要素 持续集成的好处 Jenkins介绍 Jenkins安装和持续集成环境配置 Gitl ...

  3. sonarqube连mysql_.net持续集成sonarqube篇之sonarqube安装与基本配置

    原标题:.net持续集成sonarqube篇之sonarqube安装与基本配置 Sonarqube下载与安装 Sonarqube下载地址是:https://www.sonarqube.org/down ...

  4. 持续集成服务器(CruiseControl)安装和配置

    1.下载安装 我使用的是CruiseControl-2.8.4 CruiseControl:http://cruisecontrol.sourceforge.net/ SVN:http://subve ...

  5. Jenkins持续集成环境之Maven的安装和配置

    在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目. 1)安装Maven tar -xzf apache-maven-3.6.2-bin.tar.gz 解压 2)配置环境变量 vi ...

  6. .net持续集成sonarqube篇之sonarqube安装与基本配置

    Sonarqube下载与安装 Sonarqube下载地址是:https://www.sonarqube.org/downloads/下载版本有两个,一个是长期支持版,另一个是最新版,此处安装的是最新版 ...

  7. SVN版本管理系统的使用(CentOS+Subversion+Apache+Jsvnadmin+TortoiseSVN)

    1.服务器: 192.168.4.221 root 用 户操作 安装 装 apache # yum install httpd httpd-devel # service httpd start # ...

  8. 持续集成之jenkins下载及安装

    个人推荐rpm方式安装-- 一.yum方式安装: jenkins官方下载地址 https://www.jenkins.io/zh/download/https://www.jenkins.io/zh/ ...

  9. Jenkins持续集成环境之tomcat的安装和配置

    1)安装tomcat 把Tomcat压缩包上传到服务器 tar -xzf apache-tomcat-8.5.47.tar.gz 解压 bin/startup.sh 启动tomcat 注意:服务器已经 ...

最新文章

  1. unity 角色 动画脚本_Unity Animation --动画剪辑(外部来源的动画)
  2. WIFI航模图传模块
  3. React数据获取为什么一定要在componentDidMount里面调用?
  4. 设置finder窗口大小_五个Finder技巧让你快速提高工作效率
  5. 记帐数据只记部分后如何处理
  6. 吴恩达深度学习笔记11-Course4-Week2【深度卷积网络:实例探究】
  7. 使用PHP创建一个REST API(译)
  8. LNMP单机高并发的简单优化
  9. 以深圳.NET俱乐部名义 的技术交流会圆满成功
  10. SpringMvc @RequestParam、 @RequestBody、@RequestPart 的区别
  11. python读单行文本求平均值_如何从文本文件python中的数字列表中找到平均值
  12. oracle连接工具_扯一扯Tableau软件配置数据源系列之Oracle
  13. 最短路径(信息学奥赛一本通-T1378)
  14. 在ubuntu 8.04下安装Oracle 11g
  15. java.sql.SQLException: Protocol violation 问题解析
  16. keras+yolo实现旗帜识别
  17. java的gui的design模式怎么打开_手机越用越卡怎么办?打开这五个隐藏按钮,1分钟解决卡顿问题...
  18. 计算机是uefi启动 不能装win7,uefi+gpt分区安装win7图文教程 uefi加gpt模式安装win7 64位的方法...
  19. 企业合并_OA替换 | K2 BPM 为你解决企业“变革”大烦恼
  20. 计算机专业必读哪两本经典书籍?

热门文章

  1. web前端自动化测试(基于QT4W框架)
  2. 2021年电工(初级)考试及电工(初级)试题及解析
  3. 高斯分布和正态分布有什么区别?Gaussian VS Normal
  4. mybatis中aplication.properties配置
  5. compact set(紧集)、close set(闭集)、open set(开集)
  6. 跨境新风向——海外众筹
  7. 写一个程序从键盘输入两个整数,然后显示第1个整数占第二个整数的百分比,保留到小数点后1位
  8. 单片机中灯泡显示miss_基于单片机的交通灯计 参考文献1.doc
  9. 鼠标计算机,事实:计算机鼠标在哪里?
  10. 将电子书转为PDF涉及的PDF拆分合并总结