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端就可以查看到下面的子目录了。