当前位置: 首页 > 工具软件 > SVNManager > 使用案例 >

linux svn安装使用及svn manager安装教程

晁璞
2023-12-01

一、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

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

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

3. 解压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

4. 配置apache

vim /etc/httpd/conf/httpd.conf
#添加页面目录

<Directory "/var/www/html/svnmanage">
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from all
</Directory>

5. 安装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;

6. 编辑配置文件

#设置语言
$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);
至此完成1开始愉快使用吧。

 类似资料: