SVN 版本管理系统的安装

CentOS + Subversion + Apache + Jsvnadmin

安装Apache

安装前更新操作系统

# yum update

更新完成后重启

# reboot

 

安装 apache

# yum install httpd httpd-devel

# service httpd start

# chkconfig httpd on

 

# vim /etc/httpd/conf/httpd.conf

扫描二维码关注公众号,回复: 1554678 查看本文章

找到 ServerName

并修改成 ServerName localhost:80

防火墙中打开 80 端口:

# vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

# service iptables restart

输入如下所示的网址http://192.168.232.130/


安装 SVN 服务

# yum install mod_dav_svn subversion 

必须安装 mod_dav_svn 模块

安装完 svn 后要重启 apache

# service httpd restart

 

查看测试是否安装 svn 模块

# ls /etc/httpd/modules/ | grep svn

mod_authz_svn.so

mod_dav_svn.so

 

 # svn --version

 

创建 svn 库主目录(多库模式,一份配置文件管理多个库)

# mkdir /svn/

# cd /etc/httpd/conf.d

# ls  

此时可以看到一个 subversion.conf 配置文件(是在安装 mod_dav_svn 模块时生成的

# vi subversion.conf

添加以下内容

#Include /svn/httpd.conf

<Location /svn/>

DAV svn

SVNListParentPath on

SVNAdvertiseV2Protocol Off

SVNParentPath /svn

AuthType Basic

AuthName "Subversion repositories"

AuthUserFile /svn/passwd.http

AuthzSVNAccessFile /svn/authz

Require valid-user

</Location>

RedirectMatch ^(/svn)$ $1/

 

创建/svn/passwd.http /svn/authz

# touch /svn/passwd.http

# touch /svn/authz

 

重启 apache

# service httpd restart

 

安装 jsvnadmin

https://code.google.com/p/jsvnadmin/ https://jsvnadmin.googlecode.com/files/svnadmin-3.0.5.zip

3.1 什么是Svn Admin

Svn Admin是一个Java开发的管理Svn服务器的项目用户的web应用。安装好Svn服务器端好,把Svn Admin部署好,就可以通过web浏览器管理Svn的项目,管理项目的用户,管理项目的权限。使得管理配置Svn简便,再也不需要每次都到服务器手工修改配置文件。

3.2 有什么优点

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

· 多操作系统:支持Window,Linux等操作系统。

· 权限控制:管理员可以随意分配权限、项目管理员可以管理项目成员、成员只能查看和修改自己的密码。

· 支持多项目、多用户、多用户组Group(默认带有项目管理组项目开发组项目测试组)。

· 安全:密码加密保存。

· 多协议:支持svn协议和http协议(2.0开始支持Apache服务器单库方式,从3.0开始支持Apache多库方式)

· 仓库浏览(3.0.2开始)

· 多语言(3.0.2开始)

3.3 如何选择

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

· 支持svn协议

Svn的配置信息都在仓库目录的conf下的authz,passwd,svnserve.conf三个文件中,配置用户和权限都是通过修改passwdauthz,立刻就生效。Svn Admin的本质是对这3个文件进行管理,所有成员、权限的数据都保存在数据库中,一旦在Svn Admin的页面上修改,就会把配置信息输出到conf下的那3个配置文件中。

· 支持http协议

Apache+SVN配置成功后可以有两种方式:

1. 多库方式:SVNParentPath 指定一个父目录,所有仓库在这个父目录下,使用一个密码文件和一个权限配置文件。优点是增加删除仓库不需要改apachehttpd.conf,不需要重启Apache。缺点是项目多会很混乱。

2. 单库方式:SVNPath 每个仓库单独配置各自的密码和权限文件。优点是各自分开,互相不影响,维护方便。缺点是增加或删除仓库需要修改apachehttpd.conf后重启。

安装 MySQL

 # rpm -qa | grep mysql   

## 查看该操作系统上是否已经安装了 mysql 数据库, 有的话,可以通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉

# yum install mysql-server mysql mysql-devel

# service mysqld start

# chkconfig --list | grep mysqld

 mysqld        0:off   1:off   2:off   3:off   4:off   5:off   6:off

用上面的命令查看到 MySQL 并没有设置开机启动,所以需要设置开机启动

# chkconfig mysqld on

为了方便远程管理,防火墙中打开 3306 端口

# vi /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 'root'

登录数据库:

# mysql -u root -p

 

MySQL 授权远程访问(先用 root 登录 mysql远程连接密码

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123' WITH GRANT OPTION;

mysql> FLUSH PRIVILEGES;

 

 

使用 Tomcat7 部署 svnadmin

# cd /root

# tar -zxvf apache-tomcat-7.0.xx.tar.gz # mv apache-tomcat-7.0.xx svnadmin-tomcat

 

修改 Tomcat 的端口为 9000 和容器编码为 UTF-8

# vim /root/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 端口

# vim /etc/sysconfig/iptables

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

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

# service iptables restart

# cd /root/svnadmin-tomcat/webapps

# rm -rf *

上传 svnadmin.war /root/svnadmin-tomcat/webapps 目录

# cd /root/svnadmin-tomcat/webapps

解压

# unzip svnadmin.war -d svnadmin

备份

# mv svnadmin.war /root/tools/

 # cd svnadmin/WEB-INF

# vim 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=wusc.123

 

创建 svnadmin 数据库并导入相应数据(UTF-8 编码) 执行 db/mysql5.sql db/lang/en.sql

启动 svnadmin-tomcat

# /root/svnadmin-tomcat/bin/startup.sh

浏览器中打开:http://192.168.232.130:9000/svnadmin/

输入用户名 admin 密码 root 登陆系统

此时可以创建svn库了


点链接进去可以看到svn的库


/svn/目录下会创建一个 yon-team SVN 库目录。

-rw-r--r--. 1 root root  110 Jun  9 19:26 authz

-rw-r--r--. 1 root root  258 Jun  9 19:26 httpd.conf

-rw-r--r--. 1 root root    0 Jun  9 19:26 passwd.http

drwxr-xr-x. 6 root root 4096 Jun  9 19:26 yon-team

如上所示是创建以后生成的各种文件,在authz文件中


以上过程其实是调用了 svn 对应的命令做了相应的操作

配置库目录权限

# cd /svn

# chown -R apache.apache yon-team

# chmod -R 777 yon-team

(如创建新库,需要对新建的库目录执行以上两步授权操作)

 关闭 SELinuxLinux 的访问控制) 修改/etc/selinux/config 文件

# vim /etc/selinux/config

SELINUX=enforcing 改为 SELINUX=disabled

重启机器即可

# reboot



猜你喜欢

转载自blog.csdn.net/worn_xiao/article/details/80639988