参考文档《Submin 部署SVN服务器WEB管理端 CentOS7》http://blog.51cto.com/990487026/1974106
官方网站:https://github.com/mjholtkamp/submin
一、submin介绍
1.介绍
submin - 类似于svnmanager的svn用户与仓库管理的web管理平台,用python2开发的,比svnmanager轻量,部署非常容易,环境只需要python2+apache即可。数据库用sqlit3存储。
2.关于svn从备份
- 备份可以参考rsync svn主从备份,即备份物理数据目录:/data/svn,/etc/apache/conf.d,/data/wwwroot/svn.test.com/submin
- /data/wwwroot/svn.test.com/submin/conf/submin.db,这个是sqlit3的数据库备份文件,很重要,要备份。
二、submin部署
1.安装submin
1 2 3 4 5 6
| yum install -y subversion-python mod_dav_svn apr-util-sqlite cd /usr/local/src/ wget https://github.com/mjholtkamp/submin/archive/master.zip unzip master.zip cd submin-master/ python setup.py install
|
2.创建svn仓库根目录
1 2 3
| cd /data/svn mkdir -p {submin_data,submin_pass,submin_log,submin_trash} chown -R apache.apache ./submin*
|
3.交互式配置submin
1 2 3 4 5 6
| [root@localhost svn]# submin2-admin /data/wwwroot/svn.test.com/submin/ initenv 18059084323@163.com # 管理员的邮箱地址(任意),/data/wwwroot/svn.test.com/submin/ 为 submin 配置目录 Which features do you want to enable? [svn, git, apache, nginx]> svn, apache # 启用的特性 Path to the repository? [svn]> /data/svn/submin_data # svn 仓库根目录 Hostname? [localhost.localdomain]> 192.168.99.207 # 主机名,输入本机 ip HTTP base? [/]> # http 根路径,直接回车 Email from envelope? [Submin <root@localhost.localdomain>]> 18059084323@163.com # 发送邮件时使用的邮箱地址,不需要,回车
|
4.submin 配置为使用 svn(默认为 git)
1
| submin2-admin /data/wwwroot/svn.test.com/submin/ config set vcs_plugins svn
|
5.设置 submin web端账账户密码:admin:admin:
1 2 3
| [root@localhost svn]# sqlite3 /data/wwwroot/svn.test.com/submin/conf/submin.db sqlite> update users set password="$apr1$IipSX7q0$9RMBxwVmSnLu18We252Ko." where name="admin"; sqlite> .quit
|
6.配置apache
生成用于 apache 的配置文件
1
| submin2-admin /data/wwwroot/svn.test.com/submin/ apacheconf create all
|
apache2.4以上拷贝两个配置文件
1 2 3
| cd /data/wwwroot/svn.test.com/submin/conf/ cp apache-2.4-webui-cgi.conf /etc/httpd/conf.d/ # mv重命名成subversion.conf cp apache-2.4-svn.conf /etc/httpd/conf.d/
|
配置vhosts
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| [root@localhost conf.d]# cat subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <VirtualHost *:80> DocumentRoot "/data/wwwroot/svn.test.com" ServerName svn.test.com ServerAlias svn.test.com ErrorLog "/data/httplogs/svn.test.com-error.log" CustomLog "/data/httplogs/svn.test.com-access.log" complex <IfModule !mod_authn_dbd.c> AliasMatch "^/svn" /usr/lib/python2.7/site-packages/submin/static/www/nomodauthndbd.html <Location "/svn"> Require all granted </Location> </IfModule> <IfModule mod_authn_dbd.c> DBDriver sqlite3 DBDParams "/data/wwwroot/svn.test.com/submin/conf/submin.db" <IfModule mod_dav_svn.c> <Location "/subsvn"> DAV svn SVNParentPath /data/svn/submin_data AuthType Basic AuthName "Subversion repository" AuthBasicProvider dbd AuthDBDUserPWQuery "SELECT password FROM users WHERE name=%s" AuthzSVNAccessFile /data/wwwroot/svn.test.com/submin/conf/authz Satisfy Any Require valid-user </Location> </IfModule> </IfModule> </VirtualHost>
|
relaod
1 2
| apache -t apache graceful
|
7.访问submin
账号密码:amdin:admin