# SVNAdmin2 - 基于web的SVN管理系统
### 1. 介绍
- SVNAdmin2 是一款**通过图形界面管理服务端SVN的web程序**。
- 正常情况下配置SVN仓库的人员权限需要登录到服务器手动修改 authz 和 passwd 两个文件,当仓库结构和人员权限上了规模后,手动管理就变的非常容易出错,本系统能够识别人员和权限并提供管理和拓展功能。
- SVNAdmin2 支持**SVN协议检出、HTTP协议检出**,并且支持两种协议之间互相切换,支持docker部署或源码部署。
- SVNAdmin2 支持进行**LDAP的接入**,进而达到使用原有的人员架构和分组规则的目的。
- [GitHub地址](https://github.com/witersen/SvnAdminV2.0) [Gitee地址](https://gitee.com/witersen/SvnAdminV2.0)
- 问题求助、功能建议、更新计划、SVN技术讨论,可加QQ群:**633108141**
- 项目演示地址:http://svnadmin.witersen.com (管理人员/admin/admin)
- 系统截图
<img src="00.static/demo.jpg" alt="" width="100%" height="100%" />
### 2. 兼容性
**docker > CentOS7 > CentOS8 > Rocky > Ubuntu**>...........
Windows下如有需求,可使用 docker 版本
PHP版本:[php5.5 , php8.2] (开发基于php7.4所以推荐使用php7.4)
数据库:SQLite、MySQL
Subversion:1.8+
### 3. docker安装
[nas用户的docker部署教程在这里](https://www.bilibili.com/video/BV1QM4y147b3/)
##### 3.1 适用于:快速部署看效果
*ps:镜像默认托管在docerhub,如果速度不佳,可以选择国内路线(docker pull registry.cn-hangzhou.aliyuncs.com/witersencom/svnadmin:[镜像版本号])*
此方式可快速部署程序体验效果,数据不存储在宿主机,生产环境使用请看3.2
```
docker run -d --name svnadmintemp -p 80:80 -p 3690:3690 --privileged witersencom/svnadmin:2.5.7
```
##### 3.2 适用于:新用户正式使用
- 启动一个临时的容器用于复制配置文件出来
```
docker run -d --name svnadmintemp --privileged witersencom/svnadmin:2.5.7 /usr/sbin/init
```
- 把配置文件复制到本机的 `/home/svnadmin` 目录
```
cd /home/
docker cp svnadmintemp:/home/svnadmin ./
docker cp svnadmintemp:/etc/httpd/conf.d ./svnadmin/
docker cp svnadmintemp:/etc/sasl2 ./svnadmin/
```
- 删除掉临时容器
```
docker stop svnadmintemp && docker rm svnadmintemp
```
- 启动正式的容器
```
docker run -d -p 80:80 -p 3690:3690 \
-v /home/svnadmin/:/home/svnadmin/ \
-v /home/svnadmin/conf.d/:/etc/httpd/conf.d/ \
-v /home/svnadmin/sasl2/:/etc/sasl2/ \
--privileged \
--name svnadmin \
witersencom/svnadmin:2.5.7
```
- 进入容器内进行文件授权
```
docker exec -it svnadmin bash
chown -R apache:apache /home/svnadmin
```
##### 3.3 适用于:旧用户升级
*ps: 2.4.3 及之前的用户要注意目录挂载多了 conf.d sasl2 升级之前要提前复制出来*
- 2.3.x和2.4.x和2.5.x升级到2.5.7 (可以联网的用户)
- 进入容器内
- yum install -y unzip
- cd /var/www/html/server && php install.php
- 退出容器
- 停止旧的容器,拉取新容器,挂载本地的数据目录到新版本的容器即可
- 2.3.x和2.4.x和2.5.x升级到2.5.7 (不可联网的用户)
- 在有网络的环境下下载升级包,注意下载 update.tar.gz 而不是 update.zip
- 提前下载好升级包并复制到容器中 /var/www/html/server/ 目录下
- cd /var/www/html/server/
- tar -zxvf update.tar.gz
- php update/index.php
- 退出容器
- 停止旧的容器,拉取新容器,挂载本地的数据目录到新版本的容器即可
### 4. 源码安装
svnadmin = web系统 + 后台进程,因此安装注意噢
##### 4.1 适用于:CentOS7、Rocky等
- 安装解压缩等工具
```
yum install -y zip unzip wget vim which
```
- 安装sasl相关依赖(svn协议检出配置sasl认证如ldap要用到)
```
yum install -y cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain
```
- 安装PHP和相关扩展(CentOS7默认源中提供的PHP版本为5.4,而我们需要 5.5+,因此使用remi源)
```
yum install -y epel-release yum-utils
rpm -Uvh https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php74
yum install -y php php-common php-cli php-fpm php-mysqlnd php-mysql php-pdo php-process php-json php-gd php-bcmath php-ldap php-mbstring
```
- 安装web服务器(推荐 apache 可使用http协议检出)
```
yum install -y httpd mod_dav_svn mod_ldap
systemctl start httpd
systemctl enable httpd
```
- 安装任务计划组件(任务计划功能用到)
```
yum install -y cronie at
#启动atd(如果 ps aux | grep -v 'grep' | grep atd 的结果为空需要执行)
atd
#启动crond(如果 ps aux | grep -v 'grep' | grep crond 的结果为空需要执行)
crond
```
- 下载解压代码包
```
cd /var/www/html/ && wget https://gitee.com/witersen/SvnAdminV2.0/releases/download/2.5.7/2.5.7.zip
unzip 2.5.7.zip
```
- 安装Subversion(如果你安装过Subversion,本步骤可以略过)(注意需要Subversion >= 1.8)
```
cd /var/www/html/server/
chown -R apache:apache /var/www/html/
#选项1
php install.php
```
- 修改Subversion的配置使其支持被本系统管理(如果你安装过Subversion,本步骤要执行)
```
cd /var/www/html/server
#选项1或选项2
php install.php
```
- 为数据目录授权属主和属组。php脚本web调用是以apache身份执行,因此apache用户需要对数据目录有权
- 如果你使用其它web服务器如nginx tomcat 可以通过浏览器访问 你的机器IP/server/own.php 来获取属主和属组
```
chown -R apache:apache /home/svnadmin
```
- 手动启动后台进程(启动方式一)
```
#pwd
#/var/www/html/server/
#后台运行
nohup php svnadmind.php start >/dev/null 2>&1 &
#后台运行后输入exit退出一下 保证后台稳定运行
exit
#停止后台
php svnadmind.php stop
#调试模式
php svnadmind.php console
```
- 通过系统管理启动后台进程(启动方式二)
- 新建系统服务文件 svnserve.service(centos一般为 /usr/lib/systemd/system/svnadmind.service、ubuntu 一般为 /lib/systemd/system/svnadmind.service)
- 写入以下内容(注意根据自己的代码部署路径调整)
```
[Unit]
Description=SVNAdmin
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/usr/bin/php /var/www/html/server/svnadmind.php start
[Install]
WantedBy=multi-user.target
```
- 操作服务
```
#启动
systemctl daemon-reload
systemctl start svnadmind
#查看状态
systemctl status svnadmind
#加入开机自启动
systemctl enable svnadmind
```
##### 4.2 适用于:宝塔面板
- 安装方式跟手动部署类似,只是宝塔系统了很多可视化操作很方便
- 参考视频:[SVNAdmin V2.2.1 系统部署与使用演示视频【针对宝塔面板】]( https://www.bilibili.com/video/BV1XR4y1H7p3?share_source=copy_web&vd_source=f4620db503611c42618f1afd9c8afecd)
##### 4.3 适用于:ubutntu18
- 步骤同1(注意需要以root用户执行 server/install.php 和 server/svnadmind.php )
- 在ubuntu中软件包名称多与CentOS系列不同,需要用户自行处理
```
sudo apt-get update
sudo apt-get install -y apache2
sudo apt-get install -y php
sudo apt-get install -y php-cli
sudo apt-get install -y php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo systemctl restart apache2
sudo a2enconf php7.2-fpm
sudo systemctl reload apache2
sudo apt-get install -y php-json
sudo apt-get install -y php7.2-mysql
sudo apt-get install -y php-mysql
sudo apt-get install -y sqlite3
sudo apt-get install -y php7.2-sqlite
sudo apt-get install -y php-gd
sudo systemctl restart apache2
sudo apt-get install -y subversion subversion-tools
cd /var/www/html
wget xxx.zip
unzip xxx.zip
#选项2
sudo server/install.php
chown -R apache:apache /home/svnadmin/
su root
nohup php server/svnadmind.php start &
```
##### 4.4 适用于:旧
没有合适的资源?快使用搜索试试~ 我知道了~
管理系统系列--基于web的SVN管理系统,支持HTTP协议、SVN协议、支持LDAP认证、Docker部署.zip
共1193个文件
php:840个
sh:68个
js:34个
需积分: 5 0 下载量 119 浏览量
2024-02-26
01:23:40
上传
评论
收藏 10.05MB ZIP 举报
温馨提示
管理系统系列--基于web的SVN管理系统,支持HTTP协议、SVN协议、支持LDAP认证、Docker部署
资源推荐
资源详情
资源评论
收起资源包目录
管理系统系列--基于web的SVN管理系统,支持HTTP协议、SVN协议、支持LDAP认证、Docker部署.zip (1193个子文件)
authz 20B
authz 20B
authz 20B
authz 20B
authz 20B
authz 20B
authz 20B
authz 20B
.babelrc 268B
bin 429B
bin 429B
bin 429B
bin 429B
bin 429B
bin 429B
subversion-ldap.conf 814B
subversion-ldap.conf 814B
subversion-ldap.conf 814B
subversion-ldap.conf 814B
subversion-ldap.conf 814B
subversion-ldap.conf 814B
subversion-ldap.conf 814B
subversion.conf 660B
subversion.conf 660B
subversion.conf 660B
subversion.conf 660B
subversion.conf 660B
subversion.conf 660B
subversion.conf 660B
saslauthd.conf 127B
saslauthd.conf 127B
saslauthd.conf 127B
saslauthd.conf 127B
saslauthd.conf 127B
saslauthd.conf 127B
saslauthd.conf 127B
svnserve.conf 94B
svnserve.conf 94B
svnserve.conf 94B
svnserve.conf 94B
svnserve.conf 94B
svnserve.conf 94B
svnserve.conf 94B
svnserve.conf 94B
saslauthd.conf 1B
main.a9dddb9b07845aca8bbd.css 288KB
main.dc50d47e111d2513f688.css 288KB
main.f4346cb0baf98d56f666.css 288KB
main.ecdef98a7124eddbc966.css 288KB
main.bdf7e654a70c4baa0e02.css 288KB
main.bdf7e654a70c4baa0e02.css 288KB
index.css 450B
common.css 0B
daemon 476B
daemon 476B
daemon 476B
daemon 476B
daemon 476B
daemon 476B
svnadmin.db 72KB
svnadmin.db 72KB
svnadmin.db 72KB
svnadmin.db 72KB
svnadmin.db 72KB
svnadmin.db 72KB
svnadmin.db 68KB
svnadmin.db 68KB
dockerfile 3KB
index.ejs 520B
.gitignore 133B
.gitignore 80B
hookDescription 67B
hookDescription 67B
hookDescription 67B
hookDescription 67B
hookDescription 67B
hookDescription 66B
hookDescription 66B
hookDescription 66B
hookDescription 35B
hookDescription 35B
hookDescription 35B
hookDescription 35B
hookDescription 35B
hookDescription 34B
hookDescription 34B
hookDescription 34B
hookName 12B
hookName 12B
hookName 12B
hookName 12B
hookName 12B
hookName 11B
hookName 11B
hookName 11B
hookName 11B
hookName 11B
hookName 11B
hookName 11B
hookName 11B
共 1193 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
Kwan的解忧杂货铺
- 粉丝: 1w+
- 资源: 3651
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功