Browse Source

发布2.3.2 更新说明文档

master
witersen 3 years ago
parent
commit
e346ab5886
  1. 120
      02.php/temp.php
  2. 97
      README.md

120
02.php/temp.php

@ -1,120 +0,0 @@
<?php
function detect()
{
/**
* ----------负载计算开始----------
*/
$laodavg = shell_exec("cat /proc/loadavg | awk '{print $1,$2,$3}'");
$laodavgArray = explode(' ', $laodavg);
//获取CPU15分钟前到现在的负载平均值
$cpuLoad15Min = (float)trim($laodavgArray[2]);
//获取CPU5分钟前到现在的负载平均值
$cpuLoad5Min = (float)trim($laodavgArray[1]);
//获取CPU1分钟前到现在的负载平均值
$cpuLoad1Min = (float)trim($laodavgArray[0]);
//获取cpu总核数
$cpuCount = shell_exec('grep -c "model name" /proc/cpuinfo');
$cpuCount = (int)trim($cpuCount);
//一分钟的平均负载 / (cpu总核数 * 2),超过100则为100 不超100为真实值取整
$percent = round($cpuLoad1Min / ($cpuCount * 2) * 100, 1);
if ($percent > 100) {
$percent = 100;
}
/**
* ----------负载计算结束----------
*/
$data['load'] = $percent;
/**
* ----------cpu计算开始----------
*/
/**
* cpu使用率
*
* %Cpu(s): 0.0 us, 3.2 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
*
* us user CPU time 用户空间占用CPU百分比
* sy system CPU time 内核空间占用CPU百分比
* ni nice CPU 用户进程空间内改变过优先级的进程占用CPU百分比
* id idle 空闲CPU百分比
* wa iowait 等待输入输出的CPU时间百分比
* hi hardware 硬件中断
* si software 软件中断
* st steal 实时
*/
$topResult = shell_exec('top -b -n 1 | grep Cpu');
preg_match('/ni,(.*?)id/', $topResult, $matches);
$id = 100 - (float)trim($matches[1]);
//cpu型号
$cpuModelArray = [];
$cpuModelName = shell_exec("cat /proc/cpuinfo | grep 'model name' | uniq");
$explodeArray = explode("\n", trim($cpuModelName));
foreach ($explodeArray as $value) {
if (trim($value) != '') {
$tempArray = explode(':', $value);
array_push($cpuModelArray, trim($tempArray[1]));
}
}
//物理cpu个数
$cpuPhysical = shell_exec("cat /proc/cpuinfo | grep 'physical id' | sort -u | wc -l");
$cpuPhysical = (int)trim($cpuPhysical);
//每个物理cpu的物理核心数
$cpuPhysicalCore = shell_exec("cat /proc/cpuinfo | grep 'cpu cores' | wc -l");
$cpuPhysicalCore = (int)trim($cpuPhysicalCore);
//总物理核心数 = 物理cpu个数 * 每个物理cpu的物理核心数(每个物理cpu的物理核心数都一样吗?)
$cpuCore = $cpuPhysical * $cpuPhysicalCore;
//逻辑核心总数(线程总数)
$cpuProcessor = shell_exec("cat /proc/cpuinfo | grep 'processor' | wc -l");
$cpuProcessor = (int)trim($cpuProcessor);
/**
* ----------cpu计算结束----------
*/
$data['cpu'] = round($id, 1);
/**
* ----------内存计算开始----------
*/
/**
* MemTotal 总内存
* MemFree 空闲内存
* MemAvailable 可用内存(MemFree + 可回收的内存),系统中有些内存虽然已被使用但是可以回收,比如cache、buffer、slab都有一部分可以回收
*/
//物理内存总量
$memTotal = shell_exec("cat /proc/meminfo | grep 'MemTotal' | awk '{print $2}'");
$memTotal = (int)trim($memTotal);
//操作系统可用内存总量(没有使用空闲内存)
$memFree = shell_exec("cat /proc/meminfo | grep 'MemAvailable' | awk '{print $2}'");
$memFree = (int)trim($memFree);
//操作系统已使用内存总量
$memUsed = $memTotal - $memFree;
//内存使用率
$percent = round($memUsed / $memTotal * 100, 1);
/**
* ----------内存计算结束----------
*/
$data['mem'] = $percent;
print_r($data);
}
for (;;) {
detect();
sleep(1);
}

97
README.md

@ -1,18 +1,13 @@
# SVNAdmin - 开源SVN管理系统 # SVNAdmin - 开源SVN管理系统
- 该系统为使用PHP开发的基于web的Subversion(SVN)服务器端管理工具 - 该系统为使用PHP开发的基于web的Subversion(SVN)服务器端管理工具,支持docker部署
- 支持功能:SVN仓库管理、SVN用户管理、SVN分组管理、目录授权、目录浏览、Hooks管理、在线dump备份、在线备份恢复、SVN用户禁用、服务器状态管理、日志管理、消息通知、更新检测... - 支持功能:SVN仓库管理、SVN用户管理、SVN分组管理、目录授权、目录浏览、Hooks管理、在线dump备份、在线备份恢复、SVN用户禁用、服务器状态管理、日志管理、消息通知、更新检测...
- 演示地址:http://svnadmin.witersen.com (默认的用户名与密码都为 admin) - 演示地址:http://svnadmin.witersen.com (默认的用户名与密码都为 admin)
- 项目地址: - 项目地址:
- GitHub地址:https://github.com/witersen/SvnAdminV2.0 - GitHub地址:https://github.com/witersen/SvnAdminV2.0
- Gitee地址:https://gitee.com/witersen/SvnAdminV2.0 - Gitee地址:https://gitee.com/witersen/SvnAdminV2.0
- 发行包: - 发行包:
- GitHub:https://github.com/witersen/SvnAdminV2.0/releases/download/v2.3.1/v2.3.1.zip - GitHub:https://github.com/witersen/SvnAdminV2.0/releases/download/v2.3.2/v2.3.2.zip
- Gitee:https://gitee.com/witersen/SvnAdminV2.0/attach_files/1099697/download/v2.3.1.zip - Gitee:https://gitee.com/witersen/SvnAdminV2.0/attach_files/1126164/download/v2.3.2.zip
- 兼容性 - 兼容性
- 本程序提供 docker 镜像,基于 centos7.9.2009 构建 - 本程序提供 docker 镜像,基于 centos7.9.2009 构建
@ -21,10 +16,10 @@
- PHP版本:5.5 <= PHP < 8.0 - PHP版本:5.5 <= PHP < 8.0
- 数据库:SQLite、MySQL - 数据库:SQLite、MySQL
- Subversion:1.8+ - Subversion:1.8+
- 有问题或建议可留言或加群: QQ群 633108141
- 感觉有用请留下个 ⭐ 吧
- 有问题可先看本文档底部的常见问题解答,可以加群提建议或分享问题: QQ群 633108141 ## 一、手动安装
## 一、安装示例
### 1、在CentOS7.6操作系统裸机安装示例 ### 1、在CentOS7.6操作系统裸机安装示例
@ -42,17 +37,8 @@ rpm -Uvh remi-release-7.rpm
# 编辑 /etc/yum.repos.d/remi.repo 文件,将想安装的PHP版本下方的enable由0改为1 # 编辑 /etc/yum.repos.d/remi.repo 文件,将想安装的PHP版本下方的enable由0改为1
vim /etc/yum.repos.d/remi.repo vim /etc/yum.repos.d/remi.repo
#开始安装php及相关扩展 # 安装php及相关扩展
yum install -y php yum install -y php php-common php-cli php-fpm php-json php-mysqlnd php-process php-json php-gd php-bcmath
yum install -y php-common
yum install -y php-cli
yum install -y php-fpm
yum install -y php-json
yum install -y php-mysqlnd
yum install -y php-process
yum install -y php-json
yum install -y php-gd
yum install -y php-bcmath
``` ```
- 安装web服务器 - 安装web服务器
@ -71,10 +57,10 @@ systemctl enable httpd
cd /var/www/html/ cd /var/www/html/
# 代码包从发行版获取 # 代码包从发行版获取
wget https://gitee.com/witersen/SvnAdminV2.0/attach_files/1099697/download/v2.3.1.zip wget https://gitee.com/witersen/SvnAdminV2.0/attach_files/1126164/download/v2.3.2.zip
# 解压 # 解压
unzip v2.3.1 unzip v2.3.2.zip
``` ```
- 安装Subversion(如果你安装过Subversion,本步骤可以略过) - 安装Subversion(如果你安装过Subversion,本步骤可以略过)
@ -99,7 +85,7 @@ cd /var/www/html/server
php install.php php install.php
``` ```
- 或者将本程序加入系统管理和开机自启(系统管理)(推荐)(与下方启动方式二选一即可) - 将本程序加入系统管理和开机自启(系统管理)(推荐)(与下方启动方式二选一即可)
``` ```
#新建文件 svnserve.service #新建文件 svnserve.service
@ -160,9 +146,8 @@ php svnadmin.php console
- shell_exec - shell_exec
- passthru - passthru
- 安装和启动 - 安装和启动
- 进入server目录 - 同上
- php install.php 进行安装和配置Subversion
- php svnadmind.php start 启动后台程序
### 3、在ubutntu18安装示例 ### 3、在ubutntu18安装示例
@ -170,7 +155,7 @@ php svnadmin.php console
### 4、在Rocky安装示例 ### 4、在Rocky安装示例
- 无注意事项 同1 - 无注意事项 同 1.1
## 二、docker安装 ## 二、docker安装
@ -181,10 +166,15 @@ php svnadmin.php console
docker pull witersencom/svnadmin:2.3.2 docker pull witersencom/svnadmin:2.3.2
``` ```
- 仅查看软件效果(不挂载数据) - 仅运行查看效果(不挂载数据)
- ``` - ```
docker run --name svnadmintemp -d -p 80:80 -p 3690:3690 --privileged witersencom/svnadmin:2.3.2 docker run -d \
--name svnadmintemp \
-p 80:80 \
-p 3690:3690 \
--privileged \
witersencom/svnadmin:2.3.2
``` ```
- 用于生产环境(挂载数据到容器中,容器销毁数据不会丢失) - 用于生产环境(挂载数据到容器中,容器销毁数据不会丢失)
@ -193,7 +183,11 @@ php svnadmin.php console
- ``` - ```
#启动一个临时容器,并将配置文件复制出来 #启动一个临时容器,并将配置文件复制出来
docker run --name svnadmintemp -d --privileged=true witersencom/svnadmin:2.3.2 /usr/sbin/init docker run -d \
--name svnadmintemp \
--privileged=true \
witersencom/svnadmin:2.3.2 \
/usr/sbin/init
#复制的数据目录为 /home/svnadmin/ #复制的数据目录为 /home/svnadmin/
cd /home/ cd /home/
@ -210,12 +204,17 @@ php svnadmin.php console
- ``` - ```
#假设数据存储主目录在宿主机的位置为 /home/svnadmin/ 则直接按照下面方式启动即可 会自动将宿主机数据挂载到容器中 #假设数据存储主目录在宿主机的位置为 /home/svnadmin/ 则直接按照下面方式启动即可 会自动将宿主机数据挂载到容器中
docker run -d -p 80:80 -p 3690:3690 -v /home/svnadmin/:/home/svnadmin/ --privileged svnadmin:2.3.2 docker run -d \
-p 80:80 \
-p 3690:3690 \
-v /home/svnadmin/:/home/svnadmin/ \
--privileged \
svnadmin:2.3.2
``` ```
## 三、手动升级 ## 三、手动升级
PS: 如果之前在配置文件 $path/config/database.php 中手动切换了MySQL数据库,升级后还需要重配置 PS: 如果之前在配置文件 $path/config/database.php 中手动切换了MySQL数据库,升级后还需要重配置数据库信息
### 3.1、docker用户 ### 3.1、docker用户
@ -238,21 +237,23 @@ cd /var/www/html/
``` ```
- 停止守护进程 - 停止守护进程
``` ```
#停止旧版本的守护进程 #如果已经加入系统管理 通过 systemctl 关闭
systemctl stop svnadmind
#如果手动安装 通过手动关闭
php server/svnadmind.php stop php server/svnadmind.php stop
``` ```
- 备份 - 备份
``` ```
mkdir -p /var/www/html2 cd /var/www/html/
cp -r /var/www/html /var/www/html2 tar -czvf backup.tar.gz .* --remove-files
rm -rf /var/www/html/*
``` ```
- 部署新版本代码 - 部署新版本代码
``` ```
cd /var/www/html/ cd /var/www/html/
wget https://gitee.com/witersen/SvnAdminV2.0/attach_files/1099697/download/v2.3.1.zip wget https://gitee.com/witersen/SvnAdminV2.0/attach_files/1126164/download/v2.3.2.zip
unzip v2.3.1.zip unzip v2.3.2.zip
``` ```
- 升级Subversion版本(1.8+)(>=1.8则无需升级) - 升级Subversion版本(1.8+)(>=1.8则无需升级)
``` ```
@ -389,15 +390,13 @@ php server/install.php
## 五、待办事项 ## 五、待办事项
### 1、计划增加功能
- [ ] 支持常见文件在线浏览 - [ ] 支持常见文件在线浏览
- [ ] 支持文件和文件夹在线下载 - [ ] 支持文件和文件夹在线下载
- [x] 支持重设仓库UUID - [x] 支持重设仓库UUID
- [ ] 删除仓库需要输入管理人员密码 - [ ] 删除仓库需要输入管理人员密码
- [x] 支持修改应用根目录 - [x] 支持修改应用根目录
- [ ] 支持authz、passwd文件的在线识别导入和导出 - [ ] 支持authz、passwd文件的在线识别导入和导出
- [ ] docker部署 - [x] docker部署
- [ ] 邮件发送和仓库备份等使用异步任务 - [ ] 邮件发送和仓库备份等使用异步任务
- [ ] 支持在线仓库版本过滤、仓库版本互传 - [ ] 支持在线仓库版本过滤、仓库版本互传
- [ ] 在仓库列表以突出颜色标记不被支持管理的仓库,如低版本的仓库 - [ ] 在仓库列表以突出颜色标记不被支持管理的仓库,如低版本的仓库
@ -411,8 +410,6 @@ php server/install.php
- [ ] 支持使用三种认证选项(Apache+mod_dav_svn、svnserve(用户文件和SASL)、svnserve+SSH) - [ ] 支持使用三种认证选项(Apache+mod_dav_svn、svnserve(用户文件和SASL)、svnserve+SSH)
- [ ] 开发微信小程序端开发(针对提交提醒) - [ ] 开发微信小程序端开发(针对提交提醒)
### 2、计划改进部分
## 六、FAQ ## 六、FAQ
### 1、如何将已有的SVN仓库使用此系统管理 ? ### 1、如何将已有的SVN仓库使用此系统管理 ?
@ -434,13 +431,12 @@ php server/install.php
### 3、为什么只支持管理Subversion1.8+ ? ### 3、为什么只支持管理Subversion1.8+ ?
- 由于Subversion1.8 之前不支持将多个仓库配置为使用相同的权限配置文件 - 预计在 2.5.x 版本向下适配,支持管理 Subversion 1.5+
- 而我们一开始基于Subversion1.10进行开发,因此没有及时的对Subversion1.7等版本进行适配
### 4、为什么目前只支持Linux操作系统 ? ### 4、为什么目前只支持Linux操作系统 ?
- 正在使用新方案对Windows操作系统进行支持测试 - 正在使用新方案对Windows操作系统进行支持测试
- 预期目标为可安装Subversion和PHP的机器都可使用本软件 - 预计在 2.4.x 版本支持 Windows 部署
### 5、仓库初始化结构模板 ? ### 5、仓库初始化结构模板 ?
@ -458,12 +454,11 @@ php server/install.php
### 7、关于Subversion 权限配置中的魔力符号 ### 7、关于Subversion 权限配置中的魔力符号
- Subversion从1.5开始支持用户使用一些魔力符号如 $authenticated 、$anonymous - Subversion从1.5开始支持用户使用一些魔力符号如 $authenticated 、$anonymous
- 我们使用正则表达式对authz和passwd文件进行匹配和修改 - 预计在 2.3.3 版本支持 Subversion 的全部权限配置特性
- 由于时间原因,暂时不支持用户的authz文件中使用 Subversion 支持的魔力符号
### 8、关于与LDAP对接 ### 8、关于与LDAP对接
- 与LDAP的对接将会等待一段时间,因为还需要时间使当前版本更稳定 - 预计在 2.4 版本重新规划系统权限分配,并支持 LDAP 等认证方式
### 9、如何找回密码 ### 9、如何找回密码

Loading…
Cancel
Save