centos7部署if.svnadmin可视化管理svn

时间:2024-03-06 12:06:28

Centos 7下部署svn后,添加仓库、分配权限、创建账号等都需要登录服务器操作,人员较多时不太方便。

svnadmin可以实现web后台方式可视化管理svn。

svn可视化管理svnadmin,有基于php的IF.svnadmin和基于java的jsvnadmin两款。

本篇记录一下php写的if.svnadmin,另一篇记录java写的jsvnadmin。

iF.SVNAdmin

iF.SVNAdmin应用程序是您的Subversion授权文件的基于Web的GUI。它基于PHP 5.3,需要安装一个Web服务器(Apache)。该应用程序不需要数据库后端或任何类似的,它完全基于Subversion授权和用户认证文件。(+包含用户和组的LDAP支持)

一,安装软件

安装过程如下:

1.安装apache

[root@localhost ~]# yum install httpd -y

2.安装svn服务器(其中,mod_dav_svn是apache服务器访问svn的一个模块)

[root@localhost ~]# yum install mod_dav_svn subversion -y

3.安装完成后可以通过如下命令查看是否安装成功
[root@localhost ~]# httpd -version

[root@localhost ~]# svnserve --version

[root@localhost ~]# ls /etc/httpd/modules/ | grep svn

mod_authz_svn.so 
mod_dav_svn.so

3.在apache下配置svn 


[root@localhost ~]# vim /etc/httpd/conf.d/subversion.conf
<Location /svn/>
DAV svn
SVNParentPath /var/www/svn 
AuthType Basic            
AuthName "Authorization SVN"
AuthUserFile /var/www/svn/passwd 
AuthzSVNAccessFile /var/www/svn/authz
Require valid-user        
</Location>
RedirectMatch ^(/svn)$ $1/

4. yum安装php
[root@localhost ~]# yum install php -y

5,下载if.svnadmin
#此处需FQ
wget http://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip/download

[root@localhost tools]# ls svnadmin-1.6.2.zip 
svnadmin-1.6.2.zip
#unzip解开后 mv到/var/www/html/ 改名为svnadmin
cd /var/www/html
chown -R apache.apache svnadmin

#网上大部分需授权svnadmin/data目录权限为777,经测默认即可。
[root@localhost html]# cd /var/www/html/
[root@localhost html]# ll
total 4
drwxr-xr-x 9 apache apache 4096 Aug 29  2013 svnadmin

 

二,创建svn仓库

[root@localhost ~]# mkdir /var/www/svn

[root@localhost ~]# svnadmin create /var/www/svn/sungeek
[root@localhost ~]# ls /var/www/svn/sungeek
             --->  conf  db  format  hooks  locks  README.txt
[root@localhost ~]# chown -R apache.apache /var/www/svn

创建用户文件passwd和权限控制文件authz
[root@localhost ~]# touch /var/www/svn/passwd 

[root@localhost ~]# touch /var/www/svn/authz

通过查看文件/usr/lib/systemd/system/svnserve.service, 了解到svnserver的配置文件是/etc/sysconfig/svnserve
修改/etc/sysconfig/svnserve

[root@localhost html]# cat /etc/sysconfig/svnserve
# OPTIONS is used to pass command-line arguments to svnserve.
#
# Specify the repository location in -r parameter:
#OPTIONS="-r /var/svn"
OPTIONS="-r /var/www/svn"

#如果不使用svn://ip/xxx方式请求,测出svn无需启动。(貌似也没啥用)

三,启动服务

#启动apache
[root@localhost ~]# systemctl start httpd.service

#添加开机自启服务
[root@localhost ~]# systemctl enable httpd.service

四,访问

启动webserver服务后,浏览器地址输入http://ip/svnadmin出现配置界面,输入下图中配置信息,输入每个配置信息可以点击旁边的Test测试是否输入正确,最后保存配置

 

 

 常见问题:

1,创建了代码仓库后,配置访问路径时不显示仓库问题?

处理办法:起初出现这种情况时,我创建了BCD;CDE仓库,重启apache、退出重新登录都不好使,最好只好删除/var/www/html/ 目录下的 svnadmin目录,然后重新将svnadmin压缩包解压至此,刷新即可。

  但,在尝试了数次之后,总觉得这办法不靠谱,直到最后解压开svnadmin压缩包后,不对svnadmin/data目录进行777的授权,权限太大不好。结果就顺便解决了上面创建仓库无法在访问路径下显示的问题了。

2,创建代码仓库后,另一种情况是如果访问路径不显示时,需要点击创建的仓库名前的五角星,然后新建即可。

3,创建了父目录后,无法创建子目录或多个子目录?

解决办法:在创建了父目录test1后,还想在test1下创建一个子目录和多个子目录时,svnadmin就不能使用了,直接在test1目录下提交多个子目录,然后再登录web端就可以查看到下面的子目录了。