chore: 统整图片到 docs/assets/images 并同步知识库更新

- 创建固定图片目录 docs/assets/images/,迁移散落图片
- 更新所有文档中图片引用为 markdown 标准格式
- 配置 Obsidian 默认粘贴路径到固定目录
- 同步 SSL 证书续期、陪诊项目资料等知识库文档更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
renjianbo
2026-05-24 11:25:45 +08:00
parent 0aa0a41f21
commit fda12a614e
12 changed files with 375 additions and 44 deletions

4
.obsidian/app.json vendored
View File

@@ -1 +1,3 @@
{} {
"attachmentFolderPath": "docs/assets/images"
}

View File

@@ -11,14 +11,10 @@
"id": "c1c9b81829eaeb44", "id": "c1c9b81829eaeb44",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "markdown", "type": "empty",
"state": { "state": {},
"file": "docs/Obsidian笔记体系/Projects/agent/未来规划.md",
"mode": "source",
"source": false
},
"icon": "lucide-file", "icon": "lucide-file",
"title": "未来规划" "title": "新标签页"
} }
} }
] ]
@@ -183,8 +179,31 @@
"command-palette:打开命令面板": false "command-palette:打开命令面板": false
} }
}, },
"active": "c1c9b81829eaeb44", "active": "5b497a77c6d68c73",
"lastOpenFiles": [ "lastOpenFiles": [
"docs/Obsidian笔记体系/Projects/女童生长激素项目/宝塔面板.md.tmp.16048.1779593050820",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/ssl证书申请.md.tmp.16048.1779593050693",
"docs/assets/images/Pasted image 20260524111918.png",
"docs/assets/images/Pasted image 20260524104329.png",
"docs/assets/images",
"docs/assets",
"Pasted image 20260524111918.png",
"Pasted image 20260524104539.png",
"Pasted image 20260524104404.png",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/SSL证书续期_20260524.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/宝塔面板.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/ssl证书申请.md",
"Pasted image 20260524104329.png",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/项目资料.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/后台检查报告_20260524.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/生长激素缺乏预测模型项目需求文档.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/使用系统nginx.md",
"docs/Obsidian笔记体系/Projects/陪诊/瑞来健康项目资料.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/宝塔nginx和系统nginx对比分析.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/配置完成.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/项目目录位置.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/后台管理网址.md",
"docs/Obsidian笔记体系/Projects/agent/未来规划.md",
"docs/Obsidian笔记体系/Projects/agent/agent资料.md", "docs/Obsidian笔记体系/Projects/agent/agent资料.md",
"docs/Obsidian笔记体系/Projects/agent/wk3.md", "docs/Obsidian笔记体系/Projects/agent/wk3.md",
"docs/Obsidian笔记体系/Projects/agent/wk4.md", "docs/Obsidian笔记体系/Projects/agent/wk4.md",
@@ -194,42 +213,19 @@
"docs/Obsidian笔记体系/Projects/陪诊/数据库配置.md", "docs/Obsidian笔记体系/Projects/陪诊/数据库配置.md",
"docs/Obsidian笔记体系/Projects/陪诊/修复计划0512.md", "docs/Obsidian笔记体系/Projects/陪诊/修复计划0512.md",
"docs/Obsidian笔记体系/Projects/陪诊/蓝湖.md", "docs/Obsidian笔记体系/Projects/陪诊/蓝湖.md",
"docs/Obsidian笔记体系/Projects/陪诊/瑞来健康项目资料.md",
"docs/Obsidian笔记体系/Projects/个人知库", "docs/Obsidian笔记体系/Projects/个人知库",
"docs/Obsidian笔记体系/Projects/陪诊/后台管理系统访问和登录信息.md", "docs/Obsidian笔记体系/Projects/陪诊/后台管理系统访问和登录信息.md",
"docs/学习笔记/honor工作资料.md", "docs/学习笔记/honor工作资料.md",
"docs/学习笔记/效率提升.md", "docs/学习笔记/效率提升.md",
"docs/adb调试命令/adb常用命令.md",
"docs/Obsidian笔记体系/README.md",
"docs/Obsidian笔记体系/Projects/agent/下一步计划0505.md",
"未命名 1.base", "未命名 1.base",
"未命名.base", "未命名.base",
"未命名 3.base", "未命名 3.base",
"文档完善提示词模板.md",
"未命名 2.base", "未命名 2.base",
"Pasted image 20260510081221.png", "Pasted image 20260510081221.png",
"Pasted image 20260510095333.png", "Pasted image 20260510095333.png",
"Pasted image 20260510091232.png", "Pasted image 20260510091232.png",
"docs/cursor/cursor.md",
"docs/cursor/cursor使用技巧.md",
"docs/Obsidian笔记体系/Projects/agent/项目价值评估.md",
"docs/Obsidian笔记体系/Projects/agent/新方向.md",
"docs/Obsidian笔记体系/Projects/claude code/自主agent改造计划方案.md",
"docs/Obsidian笔记体系/Projects/claude code/claude-code启动.md",
"docs/Obsidian笔记体系/Projects/agent/我想创建一个类似openclaw的agent,和现在的平台有和区别呢.md",
"docs/Obsidian笔记体系/Projects/agent/未来规划.md",
"docs/Obsidian笔记体系/Projects/agent/天工智能体定位.md",
"Pasted image 20260510133924.png", "Pasted image 20260510133924.png",
"Pasted image 20260510092432.png",
"Pasted image 20260510083609.png",
"docs/Obsidian笔记体系/Projects/瑞来兹软件公司组织架构/产品经理", "docs/Obsidian笔记体系/Projects/瑞来兹软件公司组织架构/产品经理",
"docs/Obsidian笔记体系/Projects/瑞来兹软件公司组织架构/测试", "docs/Obsidian笔记体系/Projects/瑞来兹软件公司组织架构/测试"
"docs/Obsidian笔记体系/Projects/瑞来兹软件公司组织架构/新建文件夹",
"docs/Obsidian笔记体系/Projects/瑞来兹软件公司组织架构/开发",
"docs/Obsidian笔记体系/Projects/瑞来兹软件公司组织架构/架构师",
"Pasted image 20260129111501.png",
"Pasted image 20260129111451.png",
"Pasted image 20260129111437.png",
"Pasted image 20260129111431.png"
] ]
} }

View File

@@ -0,0 +1,148 @@
# SSL 证书续期操作指南
**日期:** 2026-05-24
**操作结果:** ✅ 续期成功,新证书 2026-05-24 ~ 2026-08-22
**域名:** ruilaizipj.com, www.ruilaizipj.com
**上次过期:** 2026-04-28
---
## 方式一:恢复宝塔面板续期(推荐 — 支持自动续期)
### 1. 登录服务器
通过腾讯云控制台 VNC 或 Webshell 登录服务器。
### 2. 启动宝塔面板
```bash
# 检查面板状态
bt status
# 如果未运行,启动面板
bt start
# 确认面板端口
bt default
```
如果面板启动失败,尝试:
```bash
/etc/init.d/bt start
# 或
systemctl start bt-panel
```
### 3. 浏览器登录面板
```
https://101.43.95.130:38193/e626af3f
```
- 用户名:`0dbelvc8`
- 密码:`testpasswd`
如果忘记密码,在服务器上重置:
```bash
cd /www/server/panel && btpython tools.py panel testpasswd
```
### 4. 申请新证书
1. 进入:**网站** → 选择站点 `101.43.95.130`(或 `www.ruilaizipj.com`)
2. 点击 **SSL** → **Let's Encrypt**
3. 验证方式:**文件验证**
4. 勾选域名:`ruilaizipj.com` 和 `www.ruilaizipj.com`
5. 点击 **申请证书**
6. 申请成功后点击 **部署**
### ⚠️ 常见问题:续签提示 "部署失败,请关闭SSL后重新尝试部署"
如果证书已过期,直接点 **"续签证书"** 可能会报这个错。原因:过期证书仍占用 SSL 配置,导致新证书无法部署。
**解决方法:**
1. 在 SSL 页面先点击 **"关闭 SSL"**
2. 关闭后回到 Let's Encrypt 标签
3. 重新勾选域名,点击 **"申请证书"**
4. 申请成功后点击 **"部署"**
### 5. 验证证书
```bash
# 检查证书是否更新
openssl x509 -in /www/server/panel/vhost/cert/101.43.95.130/fullchain.pem -noout -dates
# 测试 HTTPS 访问
curl -I https://www.ruilaizipj.com
```
应返回 HTTP 200。
### 6. (建议)切换回宝塔 Nginx 实现自动续期
当前使用系统 Nginx,宝塔 Nginx 已停。宝塔 Nginx 支持 Let's Encrypt 自动续期,避免再次过期。
```bash
# 停止系统 nginx
systemctl stop nginx
systemctl disable nginx
# 启动宝塔 nginx
/etc/init.d/nginx start
# 确认 80/443 端口由宝塔 nginx 监听
netstat -tlnp | grep -E ':80|:443'
```
然后在宝塔面板 **网站** → **SSL** 中确认 **"自动续期"** 已开启。
---
## 方式二:命令行 certbot 续期(备用)
如果宝塔面板无法恢复,直接用 certbot:
```bash
# 1. 安装 certbot
yum install -y epel-release
yum install -y certbot
# 2. 停止 nginx(certbot 需要 80 端口做验证)
systemctl stop nginx
# 3. 申请证书(webroot 方式)
certbot certonly --webroot \
-w /www/wwwroot/code/public \
-d ruilaizipj.com \
-d www.ruilaizipj.com \
--email 你的邮箱
# 4. 更新 nginx 配置指向新证书
vi /etc/nginx/conf.d/default.conf
```
修改证书路径:
```nginx
ssl_certificate /etc/letsencrypt/live/ruilaizipj.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ruilaizipj.com/privkey.pem;
```
```bash
# 5. 启动 nginx
systemctl start nginx
# 6. 设置自动续期 cron
echo "0 3 * * * certbot renew --quiet --post-hook 'systemctl reload nginx'" | crontab -
```
---
## 验证清单
- [ ] `curl -I https://www.ruilaizipj.com` 返回 200
- [ ] `curl -I https://ruilaizipj.com` 返回 200
- [ ] 浏览器访问不提示证书错误
- [ ] 证书有效期确认在 90 天内

View File

@@ -66,5 +66,5 @@ curl -I https://ruilaizipj.com
去宝塔 SSL -> Let's Encrypt 页面,把 ruilaizipj.com 也勾上,重新点一次 申请证书。 去宝塔 SSL -> Let's Encrypt 页面,把 ruilaizipj.com 也勾上,重新点一次 申请证书。
如果你把“申请证书失败的提示信息”贴出来(或截图),我可以直接告诉你是哪一项(DNS/80端口/验证文件)没通过并给出具体修复命令。 如果你把“申请证书失败的提示信息”贴出来(或截图),我可以直接告诉你是哪一项(DNS/80端口/验证文件)没通过并给出具体修复命令。
![[Pasted image 20260128165805.png]] ![](../../../assets/images/Pasted%20image%2020260128165805.png)

View File

@@ -0,0 +1,162 @@
# 生长激素缺乏预测模型 — 后台检查报告
**检查日期:** 2026-05-24
**检查范围:** 后台管理系统 + 小程序 API
**检查方式:** 远程 API 测试(未登录服务器)
---
## 一、系统概览
| 项目 | 值 |
|------|-----|
| 服务器 IP | 101.43.95.130 |
| 后台地址 | http://101.43.95.130/adminghd/login |
| 正式域名 | https://www.ruilaizipj.com |
| 框架 | ThinkPHP 5.0 |
| PHP 版本 | 5.6 |
| 数据库 | MySQL,库名 `ruilai`,charset=`utf8`,表前缀=`t_sys_` |
| Web 服务器 | 系统 Nginx(宝塔 Nginx 已停止) |
| 代码根目录 | /www/wwwroot/code |
| 后台模块 | /www/wwwroot/code/application/adminghd |
| 小程序 API | /www/wwwroot/code/application/app |
---
## 二、功能测试结果
### 2.1 后台管理系统
| 功能 | 接口 | 状态 | 说明 |
|------|------|------|------|
| 登录页面 | GET /adminghd/login | ✅ | HTTP 200 |
| 登录验证 | POST /adminghd/Login/login | ✅ | 账号 13212345678 / 123456 |
| 用户信息 | /adminghd/Menu/getUserInfor | ✅ | 管理员 |
| 微信用户列表 | POST /adminghd/Wechatinfro/getWechatUserList | ✅ | 暂无注册用户 |
| 计算记录列表 | POST /adminghd/Wechatinfro/getWechatRecordList | ✅ | ~75 条记录,15 页 |
| 资讯列表 | POST /adminghd/Wechatset/getWechatRealTimeInfoList | ✅ | 2 条资讯 |
| 记录中文搜索 | POST ...getWechatRecordList (title=诺言) | ❌ | 返回空,编码问题 |
### 2.2 小程序 API
| 功能 | 接口 | 状态 | 说明 |
|------|------|------|------|
| 计算 (Ruilaiwechat) | POST /app/Ruilaiwechat/calculate | ✅ | 计算结果正确 |
| 计算 (Ghdwechat) | POST /app/Ghdwechat/calculate | ⚠️ | 英文名正常,中文名报错 |
| 历史记录查询 | POST /app/Ghdwechat/selectRecordList | ✅ | 正常分页返回 |
| 资讯列表 | POST /app/Ghdwechat/selectRealtimeInfoList | ✅ | 正常返回 |
### 2.3 计算模型验证
**后端公式:**
```
P = exp(-5.908 + 0.008×IGF-1 + 2.146×LH + 0.286×子宫厚度) /
(1 + exp(-5.908 + 0.008×IGF-1 + 2.146×LH + 0.286×子宫厚度))
```
**验证输入:** IGF=250, LH=0.8, 子宫厚度=10
**手算过程:**
```
Y = -5.908 + 0.008×250 + 2.146×0.8 + 0.286×10
= -5.908 + 2.0 + 1.7168 + 2.86
= 0.6688
P = e^0.6688 / (1 + e^0.6688)
= 1.9518 / 2.9518
= 0.661
```
**API 返回:** `calculate_resutlt: 0.661` — **结果一致,公式实现正确。**
---
## 三、发现的问题
### 问题 1:字符编码错误(严重)
**现象:** Ghdwechat/calculate 接口传入中文姓名时抛出异常:
```
PDOException: SQLSTATE[HY000]: General error: 1366
Incorrect string value: '\xB2\xE2\xCA\xD4\xBB\xBC...' for column 'name' at row 1
```
- 错误文件:`/www/wwwroot/code/application/app/controller/Ghdwechat.php` 第 134 行
- 写入表:`t_sys_wechat_calculate_record`
- 根因分析:数据库 charset 为 `utf8`(3字节UTF-8),`\xB2\xE2\xCA\xD4\xBB\xBC` 是 GBK 编码的"测试患"。说明请求数据以 GBK 编码到达 PHP,但 MySQL 连接期望 UTF-8,导致不兼容。
- 影响范围:小程序端如传入中文姓名,计算将失败
- 注意:Ruilaiwechat/calculate 接口无此问题(可能是不同的编码处理)
**数据库配置(来自异常页面的 dump):**
```
type: mysql
hostname: 127.0.0.1
database: ruilai
charset: utf8 ← 不是 utf8mb4
prefix: t_sys_
debug: true
```
### 问题 2:后台中文搜索不生效(中等)
**现象:** 在后台计算记录列表中搜索"诺言"(数据库中存在多条该名字的记录),返回空结果。
- 接口:`POST /adminghd/Wechatinfro/getWechatRecordList` (title=诺言)
- 返回:`{"lists":[],"lastPage":0}`
- 根因:与问题1同源 — 搜索关键词和数据库存储的编码不一致
### 问题 3:生产环境 Debug 模式开启(严重-安全)
**现象:** API 出错时抛出完整的 ThinkPHP 异常页面,暴露:
- 完整文件路径(/www/wwwroot/code/...)
- 数据库配置信息(主机、库名、表前缀)
- 完整的 SQL 语句
- 调用堆栈
**配置:** `app_debug: true`(位于 application/config.php)
**风险:** 攻击者可利用这些信息进行精准攻击。
### 问题 4:PHP 5.6 版本过旧(中等)
PHP 5.6 已于 2018 年 12 月 31 日 EOL,不再接收安全更新。存在已知的远程代码执行漏洞(CVE-2019-11043 等)。
---
## 四、当前数据库表使用情况
| 数据表 | 记录数 | 说明 |
|--------|--------|------|
| t_sys_user | 至少 1 条 | 后台管理员 |
| ghd_wechat_user | 0 条 | 无注册用户 |
| t_sys_wechat_calculate_record | ~75 条 | 计算记录(含最新测试数据) |
| t_sys_wechat_real_time_info | 2 条 | 资讯 |
---
## 五、修复建议(按优先级)
| 优先级 | 问题 | 修复方案 |
|--------|------|----------|
| 🔴 高 | Debug 模式泄漏信息 | 修改 `application/config.php`:`app_debug => false` |
| 🔴 高 | 字符编码导致中文报错 | 1) 数据库 charset 改为 `utf8mb4`;2) PHP PDO 连接确保 `set names utf8mb4`;3) Ghdwechat.php 排查编码处理逻辑 |
| 🟡 中 | 中文搜索不生效 | 同编码问题修复后应自动解决 |
| 🟡 中 | PHP 5.6 EOL | 升级到 PHP 7.4+(需验证 ThinkPHP 5.0 兼容性) |
| 🟢 低 | 数据库 charset=utf8 | 改为 `utf8mb4` 以支持完整 Unicode(含 emoji 等 4 字节字符) |
---
## 六、未检查项目
以下项目需要登录服务器后才能检查:
- [ ] Nginx 配置文件内容确认
- [ ] PHP-FPM 运行状态和配置
- [ ] MySQL 数据库完整表结构
- [ ] 日志文件(应用日志、错误日志)
- [ ] 磁盘空间和服务器资源
- [ ] 定时任务 / 数据备份
- [ ] SSL 证书有效期
- [ ] 小程序源码(szjs/ 目录)

View File

@@ -1,3 +0,0 @@
[https://www.ruilaizipj.com/adminghd/login](https://www.ruilaizipj.com/adminghd/login)
账户:13212345678
密码:123456

View File

@@ -1,7 +1,7 @@
https://www.bt.cn/bbs/thread-1172-1-1.html https://www.bt.cn/bbs/thread-1172-1-1.html
宝塔面板密码修改 宝塔面板密码修改
cd /www/server/panel && btpython tools.py panel testpasswd cd /www/server/panel && btpython tools.py panel testpasswd
![[Pasted image 20260128112510.png]] ![](../../../assets/images/Pasted%20image%2020260128112510.png)
## 宝塔面板登录信息 ## 宝塔面板登录信息
@@ -14,3 +14,8 @@ https://101.43.95.130:38193/e626af3f
- 用户名:0dbelvc8 - 用户名:0dbelvc8
- 密码:testpasswd - 密码:testpasswd
先关闭然后,点击Let Encrypt重新申请
![](../../../assets/images/Pasted%20image%2020260524111918.png)

View File

@@ -1,3 +1,14 @@
工作目录
D:\zhiku\mkdocs\docs\Obsidian笔记体系\Projects
资料目录
D:\zhiku\mkdocs\docs\Obsidian笔记体系\Projects
D:\zhiku\mkdocs\docs\Obsidian笔记体系\Projects\女童生长激素项目\ssl证书申请.md
项目资料
[https://www.ruilaizipj.com/adminghd/login](https://www.ruilaizipj.com/adminghd/login)
账户:13212345678
密码:123456
## ##
项目根目录: /www/wwwroot/code 项目根目录: /www/wwwroot/code
@@ -35,3 +46,4 @@
└── composer.json        # 项目依赖配置 └── composer.json        # 项目依赖配置
后台登录地址 https://www.ruilaizipj.com/adminghd/login 对应的路由在 /www/wwwroot/code/application/adminghd/controller/ 目录下的控制器中处理。 后台登录地址 https://www.ruilaizipj.com/adminghd/login 对应的路由在 /www/wwwroot/code/application/adminghd/controller/ 目录下的控制器中处理。

View File

@@ -1,3 +1,14 @@
cd D:\cd\claude-code
$env:ANTHROPIC_API_KEY="sk-fdf7cc1c73504e628ec0119b7e11b8cc"
$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
$env:ANTHROPIC_MODEL="deepseek-v4-pro"
bun run dev
记忆: 记忆:
瑞来健康项目资料 瑞来健康项目资料
@@ -22,18 +33,16 @@ Gitea 和服务器 /home/renjianbo/saars/rlz/和本地 D:\androidPj\rlz 代码
可参考D:\aaa\aiagent\docs\创建工单总结.md 可参考D:\aaa\aiagent\docs\创建工单总结.md
每次修改完成后将经验总结成文档输出到项目文档D:\androidPj\rlz\docs\
数据库配置
DATABASE_URL=mysql+pymysql://root:!Rjb12191@gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com:24936/rlz?charset=utf8mb4 DATABASE_URL=mysql+pymysql://root:!Rjb12191@gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com:24936/rlz?charset=utf8mb4
D:\androidPj\rlz\peizhen
小程序客户端购买了服务,android服务的没有收到订单

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

View File

@@ -1 +1 @@
![[Pasted image 20260129103227.png]] ![](../../assets/images/Pasted%20image%2020260129103227.png)