版本:1.0
最后更新:2026-10-06
文档适用:LiteLog 核心 v1.0 + 内置插件(小说阅读 v1.1、社区论坛 v1.3)
目录
一、系统概述
1.1 定位
LiteLog 是一个轻量级博客 + CMS 系统,采用 PHP + MySQL 技术栈,具备:
- 极简的 MVC 架构(原生 PHP,无框架依赖)
- 原生 PHP 模板引擎(无需学习新语法)
- Hook 钩子机制的插件系统
- 双模式 Markdown 编辑器(所见即所得 / Markdown)
- 完整的后台管理
- 内置小说阅读插件与社区论坛插件
1.2 设计哲学
1.3 特色功能
- 双模式编辑器:所见即所得 / Markdown 一键切换
- 多主题阅读器:白天 / 米黄 / 养眼绿 / 夜间
- 伪静态统一路由:
/forum、/novel一次配置永久生效 - Markdown 代码高亮:自研解析器,无第三方依赖
- 附件上传:文档/压缩包/音视频,白名单校验
二、环境要求
2.1 服务器
2.2 PHP 扩展
pdo_mysqlmbstringjsonsessionzipdomgd / imagick2.3 目录权限
content/ ← 755,可写
content/cache/ ← 755,可写
content/uploads/ ← 755,可写
content/backup/ ← 755,可写
content/plugins/ ← 755,可读
content/templates/ ← 755,可读
三、安装部署
3.1 上传代码
将 LiteLog 全部文件上传到网站根目录:
/www/wwwroot/你的域名/
3.2 创建数据库
宝塔面板 → 数据库 → 添加数据库:
- 数据库名:
litelog(自定义) - 用户名 / 密码:记下来
- 字符集:utf8mb4
3.3 运行安装向导
浏览器访问:
http://你的域名/install.php
填写:
localhostlt_(默认)点"开始安装" → 完成。
3.4 删除安装文件
立即删除 install.php(安全)。
3.5 配置伪静态
宝塔 → 网站 → 设置 → 伪静态,粘贴以下规则(详见 第十三节):
# 静态资源直接返回
if (-f $request_filename) { break; }
if (-d $request_filename) { break; }
# 核心路由
rewrite ^/post/(\d+)\.html$ /index.php?post=$1 last;
rewrite ^/post/([^/]+)\.html$ /index.php?alias=$1 last;
rewrite ^/sort/([^/]+)/?$ /index.php?sort_alias=$1 last;
rewrite ^/tag/([^/]+)/?$ /index.php?tag=$1 last;
rewrite ^/author/(\d+)/?$ /index.php?author=$1 last;
rewrite "^/record/(\d{4}-\d{2})/?$" /index.php?record=$1 last;
# 通用插件路由
rewrite ^/([a-zA-Z][a-zA-Z0-9_-]*)/?$ /index.php?__plugin_path=$1 last;
rewrite ^/([a-zA-Z][a-zA-Z0-9_-]*)/(.+)$ /index.php?__plugin_path=$1&__plugin_rest=$2 last;
3.6 安装插件
后台 → 插件 → 找到"小说阅读"或"社区论坛" → 启用
首次启用会自动建表。
四、目录结构
4.1 整体结构
litelog/
├── index.php # 前台入口
├── install.php # 安装向导(安装后删除)
├── config.php # 数据库配置(安装时生成)
├── init.php # 初始化脚本
├── .htaccess # Apache 伪静态
│
├── include/ # 内核
│ ├── lib/
│ │ ├── mysql.php # Database 类
│ │ ├── option.php # Option 类
│ │ ├── cache.php # Cache 类
│ │ ├── hook.php # Hook 类
│ │ ├── url.php # Url 类
│ │ ├── view.php # View 类
│ │ ├── dispatcher.php # Dispatcher 类
│ │ ├── function.base.php # 基础函数
│ │ └── function.common.php # 公共函数
│ ├── model/ # 数据模型
│ │ ├── log_model.php
│ │ ├── comment_model.php
│ │ ├── user_model.php
│ │ ├── sort_model.php
│ │ ├── tag_model.php
│ │ └── link_model.php
│ └── controller/ # 前台控制器
│ ├── log_controller.php
│ ├── sort_controller.php
│ ├── tag_controller.php
│ ├── author_controller.php
│ ├── record_controller.php
│ └── comment_controller.php
│
├── admin/ # 后台
│ ├── index.php # 后台入口
│ ├── helpers.php # 后台辅助函数
│ ├── upload.php # 图片上传接口
│ ├── assets/
│ │ ├── admin.css
│ │ └── editor/ # Markdown 编辑器
│ │ ├── markdown.js
│ │ ├── editor.js
│ │ └── editor.css
│ └── views/
│ ├── layout.php
│ ├── login.php
│ ├── dashboard.php
│ ├── logs.php / log_edit.php
│ ├── sorts.php / sort_edit.php
│ ├── plugins.php / themes.php
│ └── options.php
│
└── content/ # 用户数据区
├── templates/ # 主题
│ ├── default/ # 默认主题
│ └── nebula/ # 星云主题
├── plugins/ # 插件
│ ├── novel/ # 小说插件
│ ├── forum/ # 论坛插件
│ └── site_stats/ # 站点统计(示例)
├── cache/ # 数据缓存
├── uploads/ # 上传文件
│ ├── 2026/10/ # 文章图片
│ ├── forum/ # 论坛图片
│ └── forum/attach/ # 论坛附件
└── backup/ # 备份与日志
└── sql-error.log # SQL 错误日志
4.2 插件标准结构
content/plugins/插件名/
├── 插件名.php # 主文件(必需)
├── 插件名_callback.php # 生命周期回调(可选)
├── 插件名_setting.php # 后台设置页(可选)
├── assets/ # 静态资源
│ ├── style.css
│ └── script.js
└── preview.jpg # 预览图(可选)
4.3 主题标准结构
content/templates/主题名/
├── header.php # 必需
├── footer.php # 必需
├── log_list.php # 必需
├── echo_log.php # 必需
├── page.php # 可选
├── 404.php # 可选
├── side.php # 可选
├── css/style.css
├── js/theme.js
├── js/codeblock.js
└── preview.jpg # 预览图
五、核心架构
5.1 请求生命周期
前台请求流程(访问 /post/123.html):
① 浏览器 → index.php
② index.php → require init.php
③ init.php 执行:
- 定义常量(INCLUDE_PATH、CONTENT_PATH 等)
- 加载 config.php(数据库信息)
- 定义 BLOG_URL、TEMPLATE_URL、DB_PREFIX
- 加载所有 lib/*.php
- 连接数据库 → $DB
- Option::init() 加载配置
- 创建 $CACHE
- 加载所有 model/*.php 和 controller/*.php
- loadActivePlugins() 加载启用的插件
④ new Dispatcher()->dispatch():
- 触发 dispatch_start
- 检查 __plugin_path(插件通用路由)
→ 触发 dispatch_plugin_route 钩子
→ 插件处理则 exit
- 解析 URL → 填充 $_GET
- 匹配路由 → 确定 controller::method
- 触发 dispatch_matched
- 实例化控制器 → 调用方法
⑤ 控制器执行:
- 调 Model 查数据
- 处理业务逻辑
- View::display('模板名', $data)
⑥ 模板渲染:
- View::resolve('header') 找主题文件
- include 主题文件
- 触发各类钩子
- 输出 HTML
⑦ 触发 dispatch_end → 请求结束
后台请求流程(访问 /admin/?action=logs):
① admin/index.php → require init.php
② require admin/helpers.php
③ 读 $_GET['action']
④ 判断 login / logout
⑤ checkLogin() 验证
⑥ 触发 admin_request 钩子
⑦ switch ($action) 路由到对应分支
⑧ 视图组装 → include views/layout.php
5.2 核心类
5.2.1 Database(数据库)
位置:include/lib/mysql.php
query($sql, $params)fetchAll($sql, $params)fetchOne($sql, $params)fetchColumn($sql, $params)insert($table, $data)update($table, $data, $where, $whereParams)delete($table, $where, $params)使用示例:
global $DB;
// 查询
$rows = $DB->fetchAll("SELECT * FROM " . DB_PREFIX . "blog WHERE hide='n' LIMIT 10");
$one = $DB->fetchOne("SELECT * FROM " . DB_PREFIX . "user WHERE uid=?", [1]);
// 写入
$gid = $DB->insert('blog', ['title' => '标题', 'date' => time()]);
$DB->update('blog', ['title' => '新标题'], 'gid=?', [$gid]);
$DB->delete('blog', 'gid=?', [$gid]);
错误日志:所有 SQL 错误写入 content/backup/sql-error.log。
5.2.2 Option(配置)
位置:include/lib/option.php
Option::get($name, $default)Option::set($name, $value)Option::all()内置配置:
site_title 站点名称
site_description 站点描述
site_key 关键词
index_lognum 首页文章数
current_template 当前主题
url_rewrite 伪静态开关
comment_need_check 评论审核
upload_maxsize 上传限制
active_plugins 启用的插件列表
5.2.3 Hook(钩子)
位置:include/lib/hook.php
Hook::addAction($hook, $callback, $priority = 10)Hook::doAction($hook, ...$args)Hook::removeAction($hook, $callback = null)优先级:数字小的先执行。
5.2.4 Url(URL 生成)
位置:include/lib/url.php
Url::log($gid, $alias)Url::sort($sid, $alias)Url::tag($name)Url::author($uid)Url::record($date)5.2.5 View(模板)
位置:include/lib/view.php
View::resolve($name)View::display($name, $data)5.2.6 Dispatcher(路由)
位置:include/lib/dispatcher.php
职责:
- 优先处理插件通用路由(
__plugin_path) - 解析 URL 填充
$_GET - 匹配路由到控制器
- 触发各阶段钩子
5.2.7 Cache(缓存)
位置:include/lib/cache.php
$CACHE->read($key)$CACHE->write($key, $data)$CACHE->delete($key)$CACHE->flush()缓存文件位置:content/cache/{key}.php
5.3 全局常量
LITELOG_ROOT/www/site/INCLUDE_PATH/www/site/include/CONTENT_PATH/www/site/content/ADMIN_PATH/www/site/admin/DB_PREFIXlt_BLOG_URLhttps://ex.com/TEMPLATE_URLhttps://ex.com/content/templates/default/5.4 全局变量
$DB$CACHE$_SESSION['uid']$_SESSION['role']六、数据库结构
6.1 核心表(默认前缀 lt_)
6.1.1 lt_option(配置)
idoption_nameoption_valueautoload6.1.2 lt_user(用户)
uidusernamepasswordnicknameemailroleadmin / writer / visitorphotocreate_time6.1.3 lt_sort(分类)
sidsortnamealiaspiddescription6.1.4 lt_blog(文章)
gidtitledatecontentcontent_mdcoverexcerptaliasauthorsortidtypeblog / pageviewscomnumtophideallow_remark6.1.5 lt_comment(评论)
cidgidpiddatepostercommentemailurliphide6.1.6 lt_tag / lt_tag_blog(标签)
lt_tag:tid(主键)、tagname(唯一)
lt_tag_blog:gid + tid(联合主键)
6.1.7 lt_link(友链)
id、sitename、siteurl、description、hide
6.1.8 lt_attachment(附件)
aid、gid、filename、filesize、date
6.2 小说插件表(前缀 lt_nv_)
lt_nv_categorylt_nv_booklt_nv_chapterlt_nv_bookshelflt_nv_historylt_nv_authorlt_nv_volumelt_nv_bookmarklt_nv_notelt_nv_commentlt_nv_ratinglt_nv_purchaselt_nv_local_booklt_nv_club / _member / _checkin核心表结构:
lt_nv_book:
id, title, author, summary, cat_id, cover, vip, featured, status,
source_url, views, create_time, update_time
lt_nv_chapter:
cid, book_id, title, content, vip, price, sort, word_count, create_time
6.3 论坛插件表(前缀 lt_forum_)
lt_forum_board(版块):
id, name, description, sort, thread_count, post_count, create_time
lt_forum_thread(主题):
id, board_id, uid, title, content, views, reply_count, is_top, is_locked,
last_reply_time, last_reply_uid, create_time, update_time
lt_forum_post(回复):
id, thread_id, uid, content, create_time
七、后台管理
7.1 登录
访问 /admin/,用安装时设置的管理员账号登录。
7.2 菜单功能
7.3 写文章
编辑器支持:
- 所见即所得模式(默认):直接编辑渲染后的样式
- Markdown 模式:编写 Markdown,右侧实时预览
工具栏功能:
</>{ }快捷键:
Ctrl+BCtrl+ICtrl+KCtrl+ECtrl+FCtrl+STabShift+Tab7.4 上传
图片:admin/upload.php
- 支持格式:jpg / jpeg / png / gif / webp
- 大小限制:默认 5MB
- 存储位置:
content/uploads/YYYY/MM/
封面图:文章编辑页右侧"封面图"卡片
八、主题系统
8.1 主题位置
content/templates/主题名/
8.2 头部注释
header.php 顶部必须包含:
<?php
/**
* Theme Name: 主题名称
* Description: 主题描述
* Version: 1.0.0
* Author: 作者
* Author URI: https://example.com
*/
8.3 必需文件
header.phpfooter.phplog_list.phpecho_log.php8.4 可用变量
列表页:
$logs$pageHtml$pageTypeindex / sort / tag / author / record$sort / $tag / $author详情页:
$log$prev / $next$comments8.5 可用 API
// 基础函数
h($str); // HTML 转义
dateFmt($ts); // 时间戳 → Y-m-d
datetimeFmt($ts); // 时间戳 → Y-m-d H:i
Url::log($gid, $alias); // 文章 URL
Url::sort($sid, $alias); // 分类 URL
Url::tag($name); // 标签 URL
// 数据模型
LogModel::latest(10); // 最新 10 篇
SortModel::all(); // 所有分类
TagModel::all(); // 所有标签
CommentModel::latest(10); // 最新 10 条评论
// 视图
View::resolve('side'); // 侧边栏
8.6 切换主题
后台 → 主题 → 选择 → 启用
8.7 内置主题
default(默认):
- 浅色背景
- 左图右文的文章列表
- 单栏布局
nebula(星云):
- 深色霓虹风格
- 玻璃拟态卡片
- 渐变标题
- 阅读进度条
九、插件系统
9.1 插件位置
content/plugins/插件名/
9.2 头部注释
插件名.php 顶部:
<?php
/**
* Plugin Name: 插件名称
* Description: 插件描述
* Version: 1.0.0
* Author: 作者
*/
9.3 生命周期
callback_init()callback_up()callback_rm()注意:callback_init() 在主文件顶部自动触发(通过 Plugin_ensureTables() 模式),无需手动点击启用。
9.4 插件开发流程
- 创建目录
content/plugins/my_plugin/ - 创建主文件
my_plugin.php - 创建生命周期文件
my_plugin_callback.php - 注册钩子
Hook::addAction('hook_name', 'function_name') - 后台启用
9.5 插件 URL 路由
老方式:/?action=xxx(兼容)
新方式:/插件名/子路径(伪静态)
实现步骤:
- 在插件里注册钩子:
B19
- 实现路由函数:
B20
- 访问
/my_plugin自动生效,无需改 Nginx
9.6 插件设置页
创建 插件名_setting.php,后台插件列表会显示"设置"入口。
十、钩子清单
10.1 请求生命周期
dispatch_startdispatch_matched&$matcheddispatch_enddispatch_plugin_route$pluginName, $restpublic_action_{name}?action=name10.2 首页 / 文章列表
index_headlog_list_query&$cond, $page, $perPagelog_list_result&$logs, $page, $totallist_page_before$pageTypelist_item_before$log, $pageTypelist_item_after$log, $pageTypelist_page_after$pageType10.3 文章详情
log_display_before&$loglog_display_after&$loglog_view_before$loglog_view_after$loglog_content$loglog_content_before$loglog_content_after$log10.4 分类 / 标签 / 作者 / 归档
sort_display_query$sort, &$cond, $page, $perPagesort_display$sort, &$logstag_display_query$tag, &$cond, $page, $perPagetag_display$tag, &$logsauthor_display_query$author, &$cond, $page, $perPageauthor_display$author, &$logsrecord_display_query$year, $month, &$cond, $page, $perPagerecord_display$year, $month, &$logs10.5 评论
comment_save_before&$datacomment_save_after$cid, $datacomment_post$datacomment_display_before$commentcomment_display_after$commentcomment_form_before$logcomment_form_fields$logcomment_form_after$log10.6 模板(前台)
header_metatemplate_head<head> 内 CSS 后header_after</header> 后before_contentafter_contentfooter_before<footer> 前template_footersidebar_before / sidebar_after10.7 后台
admin_request$actionadmin_headadmin_menu$activeKeyadmin_footeradmin_dashboard_widgetsadmin_log_save_before&$data, $gidadmin_log_save_after$gid, $data10.8 数据 / 用户 / 扩展
log_save_before&$data, $gidlog_save_after$gid, $datalog_delete_before$gidlog_delete_after$giduser_login$useruser_logout$uidplugin_activate$nameplugin_deactivate$nametheme_activate$name, $oldoption_save$key, $value十一、内置插件:小说阅读
11.1 基本信息
- 目录:
content/plugins/novel/ - 版本:1.1.0
- URL 前缀:
/novel - 数据表前缀:
lt_nv_
11.2 前台页面
/novel/novel/library/novel/book/{id}/novel/read?id=X&chapter=Y/novel/search?kw=xxx/novel/me/novel/import11.3 后台功能
- 书籍增删改查
- 章节增删改查
- 分类管理
- TXT 导入(自动识别编码与章节)
- EPUB 导入(依赖 zip 扩展)
- 追加 / 替换模式
- 封面图上传
11.4 阅读器
- 多主题:白天 / 米黄 / 养眼绿 / 夜间
- 字号调节:14~32px,记忆到 localStorage
- 行高调节:1.4~2.6
- 键盘翻页:左右方向键
- 阅读进度记录(登录用户)
11.5 电子书导入
TXT 导入:
- 自动检测编码(UTF-8 / GBK / GB2312 / BIG5)
- 章节识别:
第X章/第X节/第X回/第X卷Chapter X序/楔子/引子/尾声/番外- 目录页自动过滤
- 标题与正文重复自动去重
EPUB 导入:
- 按 spine 顺序读取
- 自动过滤 cover / toc / copyright 页
- 导航页智能识别(链接占比 > 60%)
11.6 目录展示
- 两列网格布局
- 每项显示:序号 + 标题 + 免费/VIP 徽章
- 悬停:浅蓝背景 + 左侧蓝色竖条 + 序号变蓝
- 无滚动条,完整显示
十二、内置插件:社区论坛
12.1 基本信息
- 目录:
content/plugins/forum/ - 版本:1.3.0
- URL 前缀:
/forum - 数据表前缀:
lt_forum_
12.2 前台页面
/forum/forum/board/{id}/forum/thread/{id}/forum/new/forum/edit/{id}/forum/search?kw=xxx12.3 后台功能
- 版块管理(增删改)
- 主题管理(置顶 / 锁定 / 删除)
- 帖子统计
12.4 首页布局
┌────────────────────────────────────────┐
│ Hero(浅色渐变,含数据统计) │
├────────────────────────────────────────┤
│ 版块栏目导航(可悬浮预览最新帖) │
├─────────────────────────┬──────────────┤
│ 最新帖子列表 │ 热门帖子 │
│ (头像+标题+元信息) │ (TOP 10) │
└─────────────────────────┴──────────────┘
12.5 富文本编辑器
工具栏按钮(44×44px,与核心编辑器一致):
- B 加粗 / I 斜体 /
S删除线 - H 标题 / ❝ 引用 /
</>行内代码 - • 无序列表 / 1. 有序列表
- 🔗 链接 / 🖼 图片 / 📎 附件
- ⌫ 清除格式
12.6 附件上传
支持类型:
限制:
- 大小:≤ 20MB
- 黑名单:php / jsp / asp / exe / sh / bat / html / svg / js
- 文件名清洗:去掉危险字符
- 存储名随机化
展示:上传后自动插入附件卡片,点击下载。
十三、伪静态配置
13.1 通用规则(推荐)
宝塔面板 → 网站 → 设置 → 伪静态 → 粘贴:
# ==========================================================
# LiteLog 伪静态规则
# ==========================================================
# 静态资源直接返回
if (-f $request_filename) { break; }
if (-d $request_filename) { break; }
# ---------- LiteLog 核心路由 ----------
rewrite ^/post/(\d+)\.html$ /index.php?post=$1 last;
rewrite ^/post/([^/]+)\.html$ /index.php?alias=$1 last;
rewrite ^/sort/([^/]+)/?$ /index.php?sort_alias=$1 last;
rewrite ^/tag/([^/]+)/?$ /index.php?tag=$1 last;
rewrite ^/author/(\d+)/?$ /index.php?author=$1 last;
rewrite "^/record/(\d{4}-\d{2})/?$" /index.php?record=$1 last;
# ---------- 通用插件路由 ----------
rewrite ^/([a-zA-Z][a-zA-Z0-9_-]*)/?$ /index.php?__plugin_path=$1 last;
rewrite ^/([a-zA-Z][a-zA-Z0-9_-]*)/(.+)$ /index.php?__plugin_path=$1&__plugin_rest=$2 last;
关键点:
\d{4}-\d{2}必须加双引号(Nginx 会把{}当作配置块)- 插件通用路由一次配置永久生效,装新插件不用改
13.2 URL 对照
///post/123.html/?post=123/sort/tech/?sort=1/tag/php/?tag=php/author/1/?author=1/record/2026-10/?record=2026-10/novel/?action=novel/novel/read?id=1&chapter=5/?action=novel_read&id=1&chapter=5/forum/?action=forum/forum/board/1/?action=forum_board&id=1/forum/thread/5/?action=forum_thread&id=513.3 开启 URL 重写
后台 → 设置 → URL 重写 → 开启
13.4 Apache 用户
项目根目录已有 .htaccess,宝塔 Apache 会自动读取。
十四、编辑器说明
14.1 双模式编辑器(后台)
所见即所得模式(默认):
- 直接编辑渲染后的样式
- 像 Word 一样操作
- 工具栏按钮直接生效
Markdown 模式:
- 左边写 Markdown 源码
- 右边实时预览
- 支持语法高亮
切换:点击工具栏左上角的"所见即所得" / "Markdown"
14.2 Markdown 语法支持
# 标题加粗斜体删除线 代码 ` `语言 > 引用- 列表1. 列表- [ ][文字](url)\| 表格 \|---14.3 代码高亮
支持语言:PHP / JavaScript / Python / Bash / SQL / Nginx / JSON
代码块复制:鼠标悬停在代码块,右上角出现"复制"按钮。
14.4 粘贴智能识别
- 从网页复制:自动 HTML → Markdown
- 纯文本粘贴:自动识别代码块(多行代码自动包裹 B23php
Hook::addAction('public_action_my_page', function () {
echo 'Hello';
exit;
});
B24php
Hook::addAction('dispatch_plugin_route', 'My_route');
function My_route($pluginName, $rest) {
if ($pluginName !== 'my_plugin') return;
$GLOBALS['__plugin_routed'] = true;
if ($rest === '') { My_home(); exit; }
if (preg_match('|^detail/(\d+)$|', $rest, $m)) {
$_GET['id'] = (int)$m[1];
My_detail();
exit;
}
$GLOBALS['__plugin_routed'] = false;
}
B25php
class MyModel {
public static function all() {
global $DB;
return $DB->fetchAll("SELECT * FROM " . DB_PREFIX . "my_table");
}
public static function add($data) {
global $DB;
return $DB->insert('my_table', $data);
}
}
B26php
Hook::addAction('admin_menu', function ($activeKey) {
$active = $activeKey === 'my_page' ? ' active' : '';
echo '<a class="nav-link' . $active . '" href="' . BLOG_URL . 'admin/?action=my_page">'
. '<span class="nav-icon"></span>'
. '<span class="nav-label">我的菜单</span></a>';
});
Hook::addAction('admin_request', function ($action) {
if ($action === 'my_page') {
ob_start();
echo '<div class="card"><div class="card-title">我的页面</div></div>';
$content = ob_get_clean();
include ADMIN_PATH . 'views/layout.php';
exit;
}
});
B27php
// 触发
Hook::doAction('my_plugin_event', $data);
// 监听
Hook::addAction('my_plugin_event', function ($data) {
// 处理
});
B28bash
chmod 755 /www/wwwroot/你的域名
B29nginx
rewrite "^/record/(\d{4}-\d{2})/?$" /index.php?record=$1 last;
B30js
content.style.setProperty('font-size', fs + 'px', 'important');
B31sql
ALTER TABLE lt_blog ADD COLUMN content_md LONGTEXT AFTER content;
ALTER TABLE lt_blog ADD COLUMN cover VARCHAR(255) DEFAULT '' AFTER content_md;
B32bash
mysqldump -u root -p 数据库名 > backup.sql
B33bash
mysql -u root -p 数据库名 < backup.sql
B34sql
SELECT table_name,
ROUND((data_length + index_length) / 1024 / 1024, 2) AS size_mb
FROM information_schema.tables
WHERE table_schema = '你的数据库名'
ORDER BY size_mb DESC;
B35php
error_reporting(E_ALL);
ini_set('display_errors', 1);
B36php
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_WARNING);
ini_set('display_errors', 0);
**查看 SQL 错误**:
content/backup/sql-error.log
**查看插件错误**:
content/backup/plugin-error.log
```
18.4 版本更新日志
18.5 技术支持
- 文档:本文档 + 《插件开发规范》+ 《主题开发规范》
- 示例:
content/plugins/下的官方插件 - 日志:
content/backup/目录
本文档结束
LiteLog —— 轻量、简单、可扩展的博客 CMS