SVN安装使用文档

一、SVN客户端访问

1.软件安装及创建目录

查看系统有无安装

rpm -qa subversion

如果没有直接安装

yum -y install subversion

检查安装版本

svnserve –version

创建目录:

mkdir -p /home/data/svn/svnrepos

ln -s /home/data/svn /var/svn

关闭selinux

vim /etc/selinux/config

SELINUX=disabled

 

2.新建项目创建项目库

svnadmin create /var/svn/svnrepos

svnadmin create /var/svn/code

 

3.复制及编辑配置文件

mkdir -p /var/svn/conf

cd /var/svn/conf

cp ../conf/svnrepos/authz ../conf/svnrepos/passwd ./

编辑通用权限表

vi authz  #权限表

[groups]

admin = administrator

users = test

 

[/]                                     #[/]表示仓库根目录,在其中添加目录

@admin = rw                 #@admin表示用户组

@users = r

* =

 

[code:/]

@admin = rw

@users = r

 

#R代表可读

#W代表可写

 

编辑密码表

vi passwd

[users]

#格式 用户名 = 密码

Administrator = 123456

test = 123456

 

 

编辑项目配置文件

vi /var/svn/svnrepos/conf/svnserve.conf

auth-access = write              #授权用户可写

password-db = /home/data/svn/conf/passwd

authz-db = /home/data/svn/conf/authz

realm = /home/data/svn/svnrepos              #授权项目所在路径

 

code仓库配置同上只需修改授权路径为对应路径就可以

 

4.添加自启动

cd /etc/init.d/

vim svnd

#!/bin/sh

# chkconfig: 2345 10 90

# description: svn server

SVN_HOME=/var/svn

if [ ! -f "/usr/bin/svnserve" ]

then

echo "svnserver startup: cannot start"

exit

fi

case "$1" in

start)

echo "Starting svnserve…"

/usr/bin/svnserve -d --listen-port 3690 -r $SVN_HOME

echo "Finished!"

;;

stop)

echo "Stoping svnserve…"

killall svnserve

echo "Finished!"

;;

restart)

$0 stop

$0 start

 

;;

*)

echo "Usage: svn { start | stop | restart } "

exit 1

esac

 

chmod u+x svnd

chkconfig --add svnd

 

5.开启防火墙权限

firewall-cmd --zone=public --add-port=3690/tcp --permanent

firewall-cmd --reload

 

客户端访问地址svn://10.26.1.251:3690/svnrepos

 

 

二、添加http访问:

1.安装apache及模块

yum install subversion httpd mod_dav_svn

 

2.创建配置文件:

vim /etc/httpd/conf.d/subversion.conf

 

LoadModule dav_svn_module     modules/mod_dav_svn.so

LoadModule authz_svn_module   modules/mod_authz_svn.so

 

<Location />

   DAV svn

   SVNParentPath /home/data/svn

   AuthType Basic

   AuthName "Authorization Realm"

   AuthUserFile /home/data/svn/conf/httppasswd

   AuthzSVNAccessFile /home/data/svn/conf/authz

   Require valid-user

</Location>

 

若创建新库直接在使用svnadmin create /var/svn/xxx添加目录然后和以上以上步骤中操作相同中给与相应权限

chown -R apache:apache /var/svn/code

chown -R apache:apache /var/svn/svnrepos

 

 

3.添加http访问用户

初始化添加用户

htpasswd -bc /var/svn/conf/httppasswd admin 123456

原密码文件中新建用户或修改已有用户密码

htpasswd -b /var/svn/conf/httppasswd test 123456

删除用户

htpasswd -D /var/svn/conf/httppasswd test

4.启动apache并添加自启

systemctl enable httpd

systemctl start httpd

 

5.开启防火墙

firewall-cmd --zone=public --add-port=80/tcp --permanent

firewall-cmd --reload

 

访问:http://10.26.1.251//svn/project

 

 

三、安装svnmanager管理工具

  1. 安装php和必要软件包

yum groupinstall "PHP Support" 

yum install php-mysql php-mbstring 

# 安装VersionControl_SVN 

/usr/bin/pear install -f –alldeps VersionControl_SVN

  1. 修改svn父目录权限让apache对所有svn目录和conf配置文件目录拥有控制权限

chown -R apache.apache /home/data/svn

  1. 解压svnmanager

yum install unzip

unzip svnmanager-1.10.zip -d /var/www/html

cd /var/www/html

mv svnmanager-1.10 svnmanager && chown -R apache.apache svnmanager

  1. 配置apache

vim /etc/httpd/conf/httpd.conf

#添加页面目录

<Directory "/var/www/html/svnmanage">

    AllowOverride None

    Order deny,allow

    Deny from all

    Allow from all

</Directory>

  1. 安装mariadb及配置

yum install mariadb-server

systemctl start mariadb

systemctl enable mariadb

初始化

mysql_secure_installation

 

登录并创建数据库

mysql -uroot -p 

> create database svnmanager; 

> grant all privileges on svnmanager.* to svnadmin@localhost identified by 'newpassword';

> flush privileges;

> quit;

 

  1. 编辑配置文件

# 设置语言

$lang                                           = "en_US.UTF-8";

# 设置二进制文件的位置

//Shell command's

$htpassword_cmd      =       "/usr/bin/htpasswd";

$svn_cmd             =       "/usr/bin/svn";

$svnadmin_cmd        =       "/usr/bin/svnadmin";

# 设置Svn配置文件目录,Svn的父目录,Svn的http方式的认证文件,权限控制文件

//Subversion locations

$svn_config_dir        =       "/var/svn/svnconf";

$svn_repos_loc        =       "/var/svn/svnrepos";

$svn_passwd_file      =       "/var/svn/htpasswd";

$svn_access_file      =       "/var/svn/accessfile";

# 设置svn协议密码文件的位置

$svnserve_user_file="";

# 设置mysql数据连接

$dsn                            =       "mysqli://svnadmin:newpassword@localhost/svnmanager";

 

注:首次进入会自动创建数据文件刷新一次页面即可正常显示

         需重新创建管理员账号密码,否则退出后无法使用

 

报错解决:

VersionControl_SVN_Exception: "svn_path" is not a valid option

解决方法是编辑/var/www/html/svnmanager/svnmanager/RepositoryModule目录下的

 UserPrivilegesEditPage.php 和 GroupPrivilegesEditPage.php 文件 :

 

$options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_ARRAY, 'svn_path' => $svn_cmd);

改成:

$options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_ARRAY);

猜你喜欢

转载自blog.csdn.net/qq_15057857/article/details/114951801