From 4a5d9a1dc6b3b349784cdae4345bc2ec5badff87 Mon Sep 17 00:00:00 2001 From: NAC Admin Date: Fri, 27 Feb 2026 10:34:56 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=E5=B7=A5=E5=8D=95#05?= =?UTF-8?q?0=20=E9=87=8F=E5=AD=90=E6=B5=8F=E8=A7=88=E5=99=A8=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/issues/ISSUE_050_QUANTUM_BROWSER_FIX.md | 146 +++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 docs/issues/ISSUE_050_QUANTUM_BROWSER_FIX.md diff --git a/docs/issues/ISSUE_050_QUANTUM_BROWSER_FIX.md b/docs/issues/ISSUE_050_QUANTUM_BROWSER_FIX.md new file mode 100644 index 0000000..c9d7ca2 --- /dev/null +++ b/docs/issues/ISSUE_050_QUANTUM_BROWSER_FIX.md @@ -0,0 +1,146 @@ +# 工单 #050 - NAC 量子全息区块浏览器路由修复与功能验证 + +**工单编号**: #050 +**状态**: ✅ 已关闭 +**日期**: 2026-02-27 +**优先级**: 高 +**负责模块**: `/opt/nac-quantum-browser` +**访问地址**: https://explorer.newassetchain.io + +--- + +## 问题描述 + +NAC 量子全息区块浏览器的以下功能无法正常工作: +1. **区块详情页** (`/block?n=100`) — 返回首页内容而非区块详情 +2. **搜索功能** (`/search?q=100`) — 返回"未找到结果"而非正确的区块信息 + +--- + +## 根本原因分析 + +### 问题一:Nginx PATH_INFO 未传递(区块详情页路由失败) + +**诊断过程**: +- PHP CLI 测试:`BLOCK_PAGE_OK` ✅(路由正确) +- PHP-FPM 测试(不带 PATH_INFO):返回首页内容 ❌ +- PHP-FPM 测试(带 PATH_INFO):`区块详情` ✅ + +**根本原因**:ThinkPHP 6 的路由解析依赖 `PATH_INFO` 环境变量。Nginx 的 `fastcgi_params` 文件没有包含 `PATH_INFO` 参数,导致 PHP-FPM 无法获取路径信息,ThinkPHP 路由回退到默认的 `index()` 方法(首页)。 + +**原始 Nginx 配置(错误)**: +```nginx +location ~ \.php$ { + fastcgi_pass unix:/tmp/php-cgi-81.sock; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + # 缺少 PATH_INFO 参数! +} +``` + +### 问题二:搜索控制器 API 响应格式解析错误 + +**诊断过程**: +- NAC API 实际返回格式:`{"type":"block","data":{...区块数据...}}` +- 控制器代码错误读取:`$raw['data']['type']`(应为 `$raw['type']`) +- 控制器代码错误读取:`$raw['data']['block']`(应为 `$raw['data']`) + +--- + +## 修复方案 + +### 修复一:Nginx 配置添加 PATH_INFO 支持 + +**文件**: `/www/server/panel/vhost/nginx/explorer.newassetchain.io.conf` + +```nginx +# 修改 location 规则支持 PATH_INFO +location ~ [^/]\.php(/|$) { + fastcgi_pass unix:/tmp/php-cgi-81.sock; + fastcgi_index index.php; + # 分离 PATH_INFO(ThinkPHP 路由依赖此参数) + fastcgi_split_path_info ^(.+\.php)(/.*)$; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; + include fastcgi_params; + fastcgi_connect_timeout 60s; + fastcgi_send_timeout 60s; + fastcgi_read_timeout 60s; +} +``` + +同时修改 URL 重写规则: +```nginx +location / { + if (!-e $request_filename) { + rewrite ^(.*)$ /index.php?s=$1 last; + break; + } +} +``` + +### 修复二:搜索控制器 API 解析逻辑 + +**文件**: `/opt/nac-quantum-browser/app/controller/Index.php` + +```php +// 修复前(错误) +$type = $raw['data']['type'] ?? ''; +if ($type === 'block' && !empty($raw['data']['block'])) { + $b = $raw['data']['block']; + +// 修复后(正确,兼容两种格式) +$type = $raw['type'] ?? ($raw['data']['type'] ?? ''); +if ($type === 'block') { + $b = $raw['data'] ?? []; + if (empty($b['number']) && !empty($raw['data']['block'])) { + $b = $raw['data']['block']; + } +``` + +--- + +## 验证结果 + +| 页面 | URL | 修复前 | 修复后 | +|------|-----|--------|--------| +| 首页 | `/` | ✅ 正常 | ✅ 正常 | +| 区块列表 | `/blocks` | ✅ 正常 | ✅ 正常 | +| 区块详情 | `/block?n=100` | ❌ 返回首页 | ✅ 显示区块详情 | +| 节点状态 | `/nodes` | ✅ 正常 | ✅ 正常 | +| 搜索 | `/search?q=100` | ❌ 未找到结果 | ✅ 找到区块 #100 | + +--- + +## Git 提交记录 + +``` +commit 6c72f67 +feat: NAC 量子全息区块浏览器 v1.0 - 工单#050 +仓库路径: /opt/nac-quantum-browser/.git +54 files changed, 3531 insertions(+) +``` + +--- + +## 系统信息 + +- **服务器**: 103.96.148.7:22000 +- **Web 框架**: ThinkPHP 6 +- **PHP 版本**: PHP-FPM 8.1 +- **Web 服务器**: Nginx 1.26.3(宝塔面板) +- **WebSocket**: Workerman(端口 9553) +- **NAC API**: http://localhost:9551 + +--- + +## 关联工单 + +- 工单 #047/#048: NAC Explorer API 去除模拟数据(已关闭) +- 工单 #050: 量子浏览器路由修复(本工单,已关闭) + +--- + +*记录人: NAC Dev | 2026-02-27*