当前位置:首页>电子书资讯>电子书越存越乱?这个开源书库,把你的 NAS 变成了私人图书馆

电子书越存越乱?这个开源书库,把你的 NAS 变成了私人图书馆

  • 2026-08-26 00:18:51
电子书越存越乱?这个开源书库,把你的 NAS 变成了私人图书馆

这是一份面向 VPS、NAS、家用服务器或 1Panel 用户的 BookLore 部署笔记,目标是用 Docker Compose 搭建一个可自托管、多用户、可阅读、可同步、可整理元数据的数字书库。公网访问统一走 HTTPS 反代入口,数据、数据库和配置都掌握在自己手里。


引子:你的电子书,真的"管理"起来了吗?

先问几个扎心的问题:

  • 硬盘里攒了上千本 EPUB、PDF、漫画,却全躺在 下载/ 和 小说/ 里,找一本书要翻半天?
  • 文件名要么是一串乱码,要么是「某某小说完整版(精校).epub」,作者、封面、简介一概没有?
  • 手机上看一半,换平板要从头翻;Kobo 里想塞点自己的书,还得折腾 Calibre 同步?
  • 想给家人开个账号共享书库,要么全权限暴露,要么干脆放弃?

如果你中了两条以上,那 BookLore 值得你花十分钟看看。它不是又一个"能看书的网页",而是把电子书文件、元数据、阅读器、阅读进度、书架、系列、OPDS 和设备同步整合成一个自托管书库中心的开源方案。

下面先把优点讲透,再上详细部署教程。

一、这套方案是什么

BookLore 是一个自托管、多用户的数字书库应用,把电子书、漫画、元数据、阅读进度、设备同步和导入流程统一放在自己的服务器里管理。

它适合用来管理:

  • EPUB
  • PDF
  • MOBI / AZW3 等常见电子书格式
  • CBZ / CBR 等漫画格式
  • 多格式同书
  • 系列书籍
  • 多用户家庭书库

官方项目描述中提到,BookLore 支持智能书架、自动元数据、Kobo 与 KOReader 同步、BookDrop 导入、OPDS,以及 EPUB/PDF/漫画的内置阅读器。

官方参考:

  • GitHub:booklore-app/booklore
  • 官方文档:BookLore Docs
  • Docker 镜像:ghcr.io/booklore-app/booklore

二、为什么是 BookLore:它到底好在哪

2.1 先说痛点:你现在的电子书管理有多尴尬

常见做法
问题
文件夹 + 文件名硬记
没有封面、没有简介、没有作者信息,找书靠回忆
网盘 / 云笔记存书
不能在线阅读、不能记录进度、换设备要重新下载
本地 Calibre
功能强但偏桌面,分享给别人、跨设备阅读都不方便
各种"盗版阅读 App"
数据在别人手里、广告多、随时跑路、隐私没保障

BookLore 的定位,正好补齐这一整片空白:在自己的服务器上,拥有一个带封面、带简介、能在线读、能跨设备同步的私人书库

2.2 BookLore 的 7 大优点(详解)

① 智能书架——大型书库的导航仪支持自定义书架和动态规则书架,可以按作者、系列、格式、标签、阅读状态、元数据字段等条件筛选图书。对几百上千本书来说,这比单纯按文件夹浏览灵活太多:你可以一键筛出"已读完的科幻系列""老婆还没看过的漫画""所有 PDF 扫描版",而不用挨个目录翻。

② 自动元数据——告别手动补封面BookLore 可以从 Google Books、Open Library、Amazon 等来源拉取封面、简介、评分、评论等元数据。自动匹配后仍可人工编辑,特别适合处理标题不规范、系列信息缺失、封面错误的情况。拖一堆"无名氏"进去,出来就是整整齐齐的书架。

③ 内置阅读器——浏览器就是 Kindle浏览器里可以直接阅读 EPUB、PDF 和漫画文件,并记录阅读进度。手机、平板、电脑上打开同一个 Web 地址,就能无缝继续阅读,不用再装第三方阅读 App,也不用担心 App 停止维护。

④ 多设备同步——Kobo / KOReader 也能接支持 OPDS,也支持 Kobo、KOReader 等阅读链路。它可以作为电子书客户端和硬件阅读器之间的书库中心。手里有 Kobo 的话,这意味着你能把自己的书库直接同步进墨水屏,而不是被某家商店生态绑死。

⑤ 多用户——一家人共用一个书库每个用户可以有自己的书架、阅读进度、偏好和访问范围。家庭书库或小团队共享书库会非常方便:孩子看童书、你看技术书、爱人看小说,进度互不干扰。

⑥ BookDrop 自动导入——批量整理新书的捷径BookDrop 是一个投递目录,把书放进去后,BookLore 会自动检测、提取信息、拉取元数据,并进入审核导入流程。你只需要"丢进去——网页上点确认",适合一次性整理几百本新书。

⑦ 自托管可控——数据真正属于你书库文件、数据库和配置都在自己的服务器里,备份策略、访问权限、反向代理和内网访问都可自己控制。没有会员费、没有隐私收割、没有"服务终止即书库消失"的风险。

2.3 横向对比:BookLore 处在什么位置

能力随版本演进,下表按各项目公开定位整理,具体以官方文档为准。

能力
BookLore
Calibre-Web
Kavita
Audiobookshelf
定位
综合电子书+漫画书库
Calibre 的 Web 阅读前端
漫画/书籍阅读为主
有声书+电子书
内置阅读器
✅ EPUB/PDF/漫画
✅(依赖 Calibre 元数据)
✅ 漫画体验强
自动元数据
✅ 多源拉取
✅(来自 Calibre)
部分
部分
BookDrop 自动导入
部分
部分
Kobo / KOReader 同步
有限
有限
有限
OPDS
多用户 + 权限
基础
自托管可控

一句话:如果你要的是"一个能自动整理、能在线读、能同步 Kobo、还能给全家开账号"的综合性自托管书库,BookLore 是目前少有的把这些都做齐的开源项目。

2.4 谁最适合用 BookLore

✅ 电子书/漫画堆了几百 G,想彻底整理的人✅ 有多台设备、想随时续读的人✅ 手里有 Kobo / KOReader,想接自己书库的人✅ 想给家人开共享书库的家庭用户✅ 已经在玩 NAS / 1Panel / Docker 的自托管玩家

❌ 只想在手机上随便看两本、不想维护服务器的人——这类需求用现成 App 更省事。

三、推荐架构

推荐结构:

用户浏览器 -> HTTPS 反向代理 -> BookLore 容器 -> MariaDB 数据库书库文件 -> 挂载到 BookLore 容器BookDrop 投递目录 -> 挂载到 BookLore 容器

更具体一点:

  • 反向代理负责 HTTPS、域名、证书和公网入口。
  • BookLore 容器负责 Web UI、API、阅读器、元数据处理、导入队列。
  • MariaDB 容器负责保存用户、书籍、元数据、阅读进度等结构化数据。
  • books/
     保存电子书原文件。
  • bookdrop/
     保存待自动导入的投递文件。
  • data/
     保存 BookLore 应用数据。

四、最容易踩的坑:网络存储必须设 DISK_TYPE

这是部署 BookLore 最容易翻车的地方,单独拎出来说。

官方 README 明确提醒:BookLore 的文件写入、重命名、整理等操作是按本地文件系统设计的。NAS、NFS、SMB/CIFS、云盘 FUSE 等网络存储可能因为延迟、缓存、锁机制或文件系统语义差异,导致静默损坏、写入不完整、文件丢失等风险。

如果书库目录在 NAS、NFS、SMB/CIFS 或其他网络挂载上,必须使用:

# 指定 BookLore 使用网络存储模式,避免直接改写网络书库文件DISK_TYPE=NETWORK

网络存储模式下,BookLore 会把元数据保存在数据库里,并禁用会直接修改文件的整理功能。这是网络书库更稳的方式。

如果书库目录是服务器本地磁盘,可以使用:

# 指定 BookLore 使用本地磁盘模式,允许本地文件系统上的整理和写入能力DISK_TYPE=LOCAL

公开分享部署教程时,建议专门强调这点:NAS 书库优先 DISK_TYPE=NETWORK。

五、部署流程总览

整体流程:

  1. 安装 Docker 和 Docker Compose。
  2. 创建部署目录。
  3. 创建 .env
  4. 创建 docker-compose.yml
  5. 启动 MariaDB 和 BookLore。
  6. 登录 Web 页面创建管理员账号。
  7. 添加书库目录。
  8. 配置元数据、书架、BookDrop、OPDS。
  9. 设置 HTTPS 反向代理。
  10. 配置备份和升级策略。

六、创建部署目录

示例目录使用 1Panel 常见 Compose 路径,也可以换成普通 Docker Compose 目录。

sudo mkdir -p /opt/1panel/docker/compose/booklorecd /opt/1panel/docker/compose/bookloresudo mkdir -p data books bookdrop mariadb/configsudo chown -R 1000:1000 data books bookdrop mariadb

如果不确定 UID/GID:

idid -uid -g

七、创建 .env

建议把密码和可变参数放在 .env,不要直接硬编码到 docker-compose.yml。

生成随机密码:

openssl rand -base64 32# 数据库用户密码,可填入 DB_PASSWORDopenssl rand -base64 32# MariaDB root 密码,可填入 MYSQL_ROOT_PASSWORD

创建 .env:

# BookLore 容器运行用户 UID,需和宿主机目录权限匹配APP_USER_ID=1000# BookLore 容器运行用户 GID,需和宿主机目录权限匹配APP_GROUP_ID=1000# 容器时区,国内服务器通常使用 Asia/ShanghaiTZ=Asia/Shanghai# BookLore 连接 MariaDB 的 JDBC 地址,服务名 mariadb 来自 composeDATABASE_URL=jdbc:mariadb://mariadb:3306/booklore# BookLore 使用的数据库用户名DB_USER=booklore# BookLore 使用的数据库密码,部署时必须替换为随机强密码DB_PASSWORD=CHANGE_ME_DB_PASSWORD# 存储模式;本地磁盘用 LOCAL,NAS/NFS/SMB 网络存储建议用 NETWORKDISK_TYPE=NETWORK# MariaDB 容器运行用户 UID,通常与宿主机目录权限一致DB_USER_ID=1000# MariaDB 容器运行用户 GID,通常与宿主机目录权限一致DB_GROUP_ID=1000# MariaDB root 密码,部署时必须替换为随机强密码MYSQL_ROOT_PASSWORD=CHANGE_ME_MYSQL_ROOT_PASSWORD# MariaDB 初始化数据库名MYSQL_DATABASE=booklore

注意:.env 中的密码占位符必须替换为真实随机强密码;不要把 .env 上传到公开仓库。

八、docker-compose.yml(推荐版)

下面是可分享的通用模板,不包含真实路径、真实端口和真实密码。

services:  booklore:    image: ghcr.io/booklore-app/booklore:latest    container_name: booklore    restart: unless-stopped    environment:      - USER_ID=${APP_USER_ID}      - GROUP_ID=${APP_GROUP_ID}      - TZ=${TZ}      - DATABASE_URL=${DATABASE_URL}      - DATABASE_USERNAME=${DB_USER}      - DATABASE_PASSWORD=${DB_PASSWORD}      - DISK_TYPE=${DISK_TYPE}    depends_on:      mariadb:        condition: service_healthy    ports:      - ”6060:6060”    volumes:      - ./data:/app/data      - ./books:/books      - ./bookdrop:/bookdrop    healthcheck:      test: wget -q -O - http://localhost:6060/api/v1/healthcheck      interval: 60s      retries: 5      start_period: 60s      timeout: 10s    networks:      - booklore  mariadb:    image: lscr.io/linuxserver/mariadb:11.4.5    container_name: booklore-mariadb    restart: unless-stopped    environment:      - PUID=${DB_USER_ID}      - PGID=${DB_GROUP_ID}      - TZ=${TZ}      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}      - MYSQL_DATABASE=${MYSQL_DATABASE}      - MYSQL_USER=${DB_USER}      - MYSQL_PASSWORD=${DB_PASSWORD}    volumes:      - ./mariadb/config:/config    healthcheck:      test: [”CMD”, ”mariadb-admin”, ”ping”, ”-h”, ”localhost”]      interval: 10s      timeout: 5s      retries: 10    networks:      - booklorenetworks:  booklore:

说明:宿主机端口 6060 映射到容器 6060;books/ 是书库目录,生产环境可替换成自己的书库路径;bookdrop/ 是自动导入投递目录;mariadb/config 持久化数据库文件。

九、启动服务

启动前检查配置:

cd /opt/1panel/docker/compose/bookloredocker compose config

拉取镜像并启动:

docker compose pulldocker compose up -ddocker compose logs -f

检查状态:

docker ps --format ”table {{.Names}}\t{{.Status}}\t{{.Ports}}”curl -I http://127.0.0.1:6060/

正常情况下应看到:

booklore          Up ...          0.0.0.0:6060->6060/tcpbooklore-mariadb  Up ... healthy  3306/tcp

然后打开 http://YOUR_SERVER_LAN_IP:6060/,首次进入页面后按提示创建管理员账号。

十、反向代理与 HTTPS

生产环境建议放到 HTTPS 域名后面,不建议长期直接暴露 http://IP:6060。

Nginx / OpenResty 示例:

server {    listen 443 ssl;    server_name books.example.com;    ssl_certificate /path/to/fullchain.pem;    ssl_certificate_key /path/to/privkey.pem;    client_max_body_size 1024m;# 允许上传较大的电子书或漫画压缩包    location / {        proxy_pass http://127.0.0.1:6060;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header X-Forwarded-Proto $scheme;        proxy_http_version 1.1;    }}

如果 80/443 被封,可以使用自定义 HTTPS 端口:

listen 8443 ssl;# 实际端口请按自己的环境调整

自定义端口访问示例:https://books.example.com:8443/

如果通过 1Panel 配置反向代理:网站类型选反向代理、代理地址填 http://127.0.0.1:6060、开启 HTTPS 证书、上传文件较大时调高上传大小限制、若使用自定义 HTTPS 端口要确认 OpenResty 已监听该端口。

十一、书库目录规划

建议书库结构尽量清楚,但不要为了 BookLore 过度改动原始文件。

books/# 主书库根目录  小说/# 按类型或主题划分的一级分类    示例书名/# 同一本书的多格式文件可放在同一个文件夹      示例书名.epub      示例书名.pdf  漫画/# 漫画或图像类书籍分类    示例漫画.cbzbookdrop/# 自动导入投递目录  待导入.epub

实践建议:

  • 同一本书的不同格式放在同一个书名文件夹,便于后续合并为一本书的多个格式。
  • 系列图书放在系列文件夹里,再在 BookLore 中检查系列元数据。
  • NAS 网络挂载书库建议 DISK_TYPE=NETWORK
  • 不要让自动整理工具和 BookLore 同时改同一批文件。
  • 批量导入前先备份原始书库。

十二、BookDrop 与元数据流程

BookDrop 的典型流程:

  1. 把文件放入 bookdrop/
  2. BookLore 自动检测新增文件。
  3. 解析文件名、格式和基础元数据。
  4. 从元数据源拉取封面、简介、作者、评分等信息。
  5. 在 Web 页面审核。
  6. 确认后导入书库。

如果元数据匹配错误,优先在入库前人工修正,尤其是:同名不同作者、套装书、多卷系列、中英文混合书名、扫描版 PDF、漫画卷号。

十三、OPDS、Kobo 与 KOReader

BookLore 可以作为电子书客户端的服务端书库:

  • 支持 OPDS 的阅读器可通过 OPDS 地址浏览书库。
  • Kobo 可用于同步书籍和阅读进度。
  • KOReader 可用于跨设备阅读体验。

公开部署 OPDS 时要注意:

  • 不要把无认证的 OPDS 暴露到公网。
  • 尽量放在 HTTPS 后面。
  • 多用户环境下检查每个用户的书库权限。
  • 如果走反向代理,确认外部访问地址和代理头设置正确。

十四、备份与恢复

必须备份:

docker-compose.yml# 容器编排、端口、卷挂载和环境变量引用.env# 数据库密码、UID/GID、时区和存储模式data/# BookLore 应用数据mariadb/config/# MariaDB 数据库文件books/# 电子书原始文件bookdrop/# 待导入文件,按需要备份

简单备份命令:

cd /opt/1panel/docker/composetar -czf booklore-backup-$(date +%F).tar.gz booklore

更稳的备份策略:

  • 数据库目录和书库目录都要备份。
  • 升级前单独做一次完整压缩包。
  • 书库在 NAS 上时,确认 NAS 端也有快照或版本备份。
  • 大书库建议用 restic、kopia、rsync、ZFS 快照等工具增量备份。

恢复时的基本顺序:

cd /opt/1panel/docker/composetar -xzf booklore-backup-YYYY-MM-DD.tar.gzcd bookloredocker compose up -ddocker compose logs -f

十五、升级方法

升级前先备份:

cd /opt/1panel/docker/composetar -czf booklore-before-upgrade-$(date +%F).tar.gz booklore

升级:

cd /opt/1panel/docker/compose/bookloredocker compose pulldocker compose up -ddocker compose logs -f

检查:

docker ps --format ”table {{.Names}}\t{{.Status}}\t{{.Ports}}”curl -I http://127.0.0.1:6060/

升级注意:

  • 不要在未备份数据库的情况下升级。
  • 不要随意更换 MariaDB 主版本。
  • 如果从 latest 切到固定版本,要先确认版本迁移说明。
  • 升级后检查登录、书库列表、封面、阅读器、OPDS 和 BookDrop。
  • 如果使用 1Panel 编辑容器配置,注意它可能覆盖手工修改过的 compose 文件。

十六、常见故障排查

故障现象
可能原因 / 解决办法
页面打不开
docker ps
 看 booklore 和 mariadb 是否运行;docker compose logs --tail 100 booklore(及 mariadb)查日志;ss -tlnp | grep 6060 看端口;curl -I http://127.0.0.1:6060/ 本机测试
数据库连接失败
检查 .env 的 DB_PASSWORDDATABASE_URL;确认 compose 里的数据库服务名与 JDBC 地址一致;确认 MariaDB 健康检查通过
文件上传失败
反代加 client_max_body_size 1024m;;检查 books/bookdrop/ 属主,必要时 sudo chown -R 1000:1000 修正
NAS 书库异常
网络挂载必须设 DISK_TYPE=NETWORK;检查挂载稳定、容器可见、UID/GID 有读权限、NAS 有快照
元数据匹配不准
文件名不规范、中英文混淆、套装/单本相似、扫描版 PDF 缺内嵌信息、作者译名不统一;入库前在 BookDrop 审核、同书多格式同文件夹、系列保留卷号、必要时手改

十七、安全上线清单

上线前逐项检查:

  • 使用 HTTPS。
  • 管理员账号使用强密码。
  • 不公开无认证 OPDS。
  • 不公开数据库端口。
  • .env
     不分享、不上传公开仓库。
  • 反向代理限制上传大小但不要无限放开。
  • NAS 书库使用 DISK_TYPE=NETWORK
  • 数据库和书库目录都有备份。
  • 外网访问时尽量加反向代理认证或访问控制。

十八、一句话结论

BookLore 的价值在于:它把电子书文件、元数据、阅读器、阅读进度、书架、系列、OPDS 和设备同步整合成一个自托管书库中心。部署时最重要的不是"跑起来",而是把存储模式、数据库备份、书库备份和 HTTPS 入口设计好。


你是在 NAS、家用小主机,还是云 VPS 上折腾书库?BookLore 的 BookDrop 自动导入和 Kobo 同步,你更想先用哪一个?欢迎在评论区聊聊。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-26 23:46:37 HTTP/2.0 GET : https://g.15386.cn/a/474438.html
  2. 运行时间 : 0.203250s [ 吞吐率:4.92req/s ] 内存消耗:4,374.55kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=71bd0fc01c0fb6b327209240a11bf274
  1. /yingpanguazai/ssd/ssd1/www/g.15386.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/g.15386.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/g.15386.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/g.15386.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/g.15386.cn/runtime/temp/bdb8e09c175b3f3cfe6785832a6c88dd.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/g.15386.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000700s ] mysql:host=127.0.0.1;port=3306;dbname=g_15386;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000540s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001673s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000280s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000518s ]
  6. SELECT * FROM `set` [ RunTime:0.000204s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000521s ]
  8. SELECT * FROM `article` WHERE `id` = 474438 LIMIT 1 [ RunTime:0.002549s ]
  9. UPDATE `article` SET `lasttime` = 1787759197 WHERE `id` = 474438 [ RunTime:0.014605s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000625s ]
  11. SELECT * FROM `article` WHERE `id` < 474438 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001275s ]
  12. SELECT * FROM `article` WHERE `id` > 474438 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001236s ]
  13. SELECT * FROM `article` WHERE `id` < 474438 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.010581s ]
  14. SELECT * FROM `article` WHERE `id` < 474438 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005421s ]
  15. SELECT * FROM `article` WHERE `id` < 474438 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.014763s ]
0.207019s