1. 介绍
- SVNAdmin2 是一款通过图形界面管理服务端SVN的web程序。
- 正常情况下配置SVN仓库的人员权限需要登录到服务器手动修改 authz 和 passwd 两个文件,当仓库结构和人员权限上了规模后,手动管理就变的非常容易出错,本系统能够识别人员和权限并提供管理和拓展功能。
- SVNAdmin2 支持SVN协议检出、HTTP协议检出,并且支持两种协议之间互相切换,支持docker部署或源码部署。
- SVNAdmin2 支持进行LDAP的接入,进而达到使用原有的人员架构和分组规则的目的。
- GitHub地址 Gitee地址
- 问题求助、功能建议、更新计划、SVN技术讨论,可加QQ群:633108141
- 项目演示地址:http://svnadmin.witersen.com (管理人员/admin/admin)
- 系统截图
2. 兼容性
docker > CentOS7 > CentOS8 > Rocky > Ubuntu>………..
Windows下如有需求,可使用 docker 版本
PHP版本:[php5.5 , php8.2] (开发基于php7.4所以推荐使用php7.4)
数据库:SQLite、MySQL
Subversion:1.8+
3. docker安装
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.4
3.2 适用于:新用户正式使用
- 启动一个临时的容器用于复制配置文件出来
docker run -d --name svnadmintemp --privileged witersencom/svnadmin:2.5.4 /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.4
- 进入容器内进行文件授权
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.4 (可以联网的用户)
- 进入容器内
- yum install -y unzip
- cd /var/www/html/server && php install.php
- 退出容器
- 停止旧的容器,拉取新容器,挂载本地的数据目录到新版本的容器即可
- 2.3.x和2.4.x和2.5.x升级到2.5.4 (不可联网的用户)
- 在有网络的环境下下载升级包,注意下载 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/v2.5.4/2.5.4.zip
unzip v2.5.4.zip
- 安装Subversion(如果你安装过Subversion,本步骤可以略过)(注意需要Subversion >= 1.8)
cd /var/www/html/server/
#选项1
php install.php
- 修改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
#后台运行
nohup php svnadmind.php start >/dev/null 2>&1 &
#停止后台
php svnandmin.php stop
#调试模式
php svnadmin.php console
- 通过系统管理启动后台进程(启动方式二)
- 新建系统服务文件 svnserve.service(centos一般为 /usr/lib/systemd/system/svnserve.service、ubuntu 一般为 /lib/systemd/system/svnserve.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 系统部署与使用演示视频【针对宝塔面板】
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 适用于:旧用户升级
- 2.3.x和2.4.x和2.5.x升级到2.5.4
- yum install -y unzip
- cd /var/www/html/server && php install.php
原创文章,作者:witersen,如若转载,请注明出处:https://www.witersen.com
评论列表(7条)
期待出docker安装
@给我根烟:快了快了,这段工作太忙
@给我根烟:2.3.2已支持docker部署
请问有java版本的吗
只有PHP版本喔
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 192.168.0.1. Set the ‘ServerName’ directive globally to suppress this message.请问是什么原因。
@w282:这个是非常经典的警告,不影响正常使用。可以自行翻译下然后对照httpd的配置文件就明白了。有问题可以加SVNAdmin2的交流群,里面回复比较及时。