iTxGo🍃 - xBlog

🎯 项目简介

xBlog 是一款基于 PHP + SQLite / PostgreSQL 构建的轻量级、高性能多用户博客系统。它摒弃了复杂的配置与臃肿的功能,专注于为开发者、写作者和技术爱好者提供一个 快速部署、易于管理、专注写作 的纯净博客空间。其单文件数据库架构使其成为追求简洁与效率的理想选择。

📁 核心目录结构解析

🌐 前端入口与交互

├── index.php          🏠 博客主页
├── article.php        📄 文章详情页
├── login.php          🔑 登录页 (已集成至头部文件)
├── register.php       📝 注册页 (已集成至头部文件)
├── search.php         🔍 全站搜索页 (已集成至头部文件)
  • 清晰的前台页面分离,逻辑专注。
  • 提供完整的用户访问路径。

异步交互与API

├── ajax_login.php       (AJAX登录)
├── ajax_register.php    (AJAX注册)
├── ajax_ajax_like.php   (文章点赞)
  • 核心用户操作采用 AJAX 实现,提升体验。
  • 前后端分离式交互,响应迅速。

🛠️ 后台管理中心 (/admin/)

后台模块功能清晰,覆盖博客全生命周期管理:

  • 内容管理 (articles.php, add_article.php, edit_article.php): 文章的增删改查与AI摘要生成 (api_summary.php)。
  • 用户与社区 (users.php, comments.php): 管理用户信息、权限及评论。
  • 系统配置 (config.php, attachments.php, categories_tags.php): 管理博客设置、附件、分类标签。
  • 数据安全 (download_db.php): 支持一键备份 SQLite 数据库。

📦 核心支持文件 (/includes/)

/includes/
├── db.php           🗄️ 数据库连接封装
├── functions.php    🛠️ 全局通用函数库
└── default/         🧩 前后台公共模板组件
  • 实现代码复用与逻辑分离。
  • 便于统一维护与更新。

🎨 静态资源 (/assets/)

  • 前后台独立的样式 (style.css, admin_style.css) 与脚本。
  • 集成 Toast UI Editor 提供强大的可视化文章编辑体验。
  • SVG 图标集,确保高清显示。

📎 上传与媒体 (/uploads/)

/uploads/
├── images/     🖼️ 文章图片附件
└── avatars/    👤 用户头像(内置默认头像)
  • 自动分类存储,管理便捷。
  • 默认头像提供开箱即用的友好体验。

🔌 扩展能力 (/plugin/)

weather/ 插件为例,展示了系统的扩展性:

  • 提供固定地区、IP定位、多日预报等多种Widget。
  • 插件化架构允许轻松增加新功能。

📚 依赖与构建

  • 使用 Composer 管理 PHP 依赖(如 league/commonmark 用于 Markdown 解析)。
  • vendor/ 目录包含所有第三方库,确保环境一致性。

✨ 主要特性亮点

  • 🚀 极简部署: 仅需 PHP 环境,单一 blog.db 数据库文件,无需配置复杂数据库。
  • 📝 优雅写作: 集成功能丰富的 Toast UI 编辑器,支持 Markdown 与富文本。
  • 🤖 AI 赋能: 后台内置文章 AI 摘要生成功能,提升内容管理效率。
  • 🔒 安全可靠: 完善的用户权限管理、安全的文件上传与数据备份机制。
  • 🎨 前后端分离: AJAX 广泛运用,界面交互流畅;前后台样式与逻辑完全独立。
  • ⚙️ 高度模块化: 清晰的目录结构,便于二次开发、功能扩展与个性化定制。
  • 🌦️ 插件化示例: 提供插件范例,轻松扩展博客功能。

🚀 快速开始

  • 1️⃣将 xBlog 文件放置于您的 PHP 运行环境。
  • 2️⃣确保 uploads/ 目录具有写入权限。
  • 3️⃣访问首页,系统将自动初始安装。
  • 4️⃣在系统配置页面替换你的信息。
  • 5️⃣开始您的写作之旅!

xBlog 致力于在 简单强大 之间取得完美平衡,是构建个人知识库、技术博客或创作空间的优质选择。💝

xBlog - PHP + PostgreSQL / PHP + SQLITE 博客架构目录:
***/
├── 404.html                                # 404页面
├── ajax_comment.php                        # AJAX 评论处理
├── ajax_like.php                           # AJAX 点赞处理
├── ajax_login.php                          # AJAX 登录处理
├── ajax_register.php                       # AJAX 注册处理
├── article.php                             # 文章详情页
├── blog.db                                 # SQLite 数据库文件 - 已迁移 PostgreSQL
├── captcha.php                             # 验证码生成
├── favicon.ico                             # 网站ICO
├── generate_rss.php                        # RSS订阅生成脚本
├── generate_sitemap.php                    # 网站地图生成脚本
├── index.php                               # 主页
├── inst.php                                # 部署脚本(临时)
├── login.php                               # 登录页
├── logout.php                              # 登出
├── migrate.php                             # 迁移脚本 SQLITE → PostgreSQL(临时)
├── register.php                            # 注册页
├── robots.txt                              # 协议
├── rss.xml                                 # RSS订阅
├── search.php                              # 搜索页
├── sitemap.xml                             # 网站地图
├── user.php                                # 个人空间
├── user_tab.php                            # 个人空间 Tab 内容 AJAX 接口
├── admin/                                  # 后台目录
│   ├── add_article.php                     # 添加文章
│   ├── ajax_decrypt_secret.php             # 解密密码块
│   ├── api_server_stats.php                # 服务器指标API
│   ├── api_summary.php                     # AI 摘要API
│   ├── articles.php                        # 文章管理
│   ├── attachments.php                     # 附件管理
│   ├── avatar_delete.php                   # 头像恢复API
│   ├── avatar_upload.php                   # 头像上传API
│   ├── categories_tags.php                 # 分类标签管理
│   ├── check_username.php                  # 站内消息用户名验证接口
│   ├── comments.php                        # 评论管理
│   ├── config.php                          # 配置管理
│   ├── dbms.php                            # 数据库工具
│   ├── download_db.php                     # 下载数据库
│   ├── edit_article.php                    # 编辑文章
│   ├── edit_comment.php                    # 编辑评论处理
│   ├── index.php                           # 后台主页
│   ├── message_panel.php                   # 消息面板
│   ├── search_articles.php                 # 文章搜索API
│   ├── search_users.php                    # 用户搜索API
│   ├── upload.php                          # 上传文件
│   └── users.php                           # 用户管理
├── assets/                                 # 静态资源目录
│   ├── tippy/                              # 提示框
│   │   ├── popper.min.js                   # Popper.js 库压缩版
│   │   ├── scale.css                       # 缩放动画样式
│   │   └── tippy-bundle.umd.min.js         # 核心功能及常用插件
│   ├── admin_articles_search.js            # 后台文章搜索脚本 JavaScript
│   ├── admin_icons.svg                     # 后台 SVG Sprite
│   ├── admin_script.js                     # 后台主体脚本 JavaScript
│   ├── admin_style.css                     # 后台样式表
│   ├── admin_users_search.js               # 后台用户搜索脚本 JavaScript
│   ├── favicon.svg                         # icon
│   ├── icons.svg                           # 前台 SVG Sprite
│   ├── script.js                           # 前台主体脚本 JavaScript
│   ├── style-dark.css                      # 前台深色主题样式
│   ├── style-light.css                     # 前台浅色主题样式
│   ├── toastui-editor.min.css              # Toast UI Editor 相关样式
│   ├── toastui-editor-all.min.js           # Toast UI Editor 相关JS函数
│   ├── webgl-bg.js                         # 动态背景 主线程
│   └── webgl-bg-worker.js                  # 动态背景 独立线程
├── config/                                 # 存放敏感/环境相关配置
│   ├── cacert.pem                          # curl 使用的 CA 根证书,本地 Windows 环境需要
│   └── secrets.php                         # PostgreSQL 连接信息/存放 API Key 等密钥
├── fonts/                                  # 字体目录
│   └── Nunito-VariableFont_wght.woff2      # 字体文件
├── includes/                               # 公共函数 配置 模板目录
│   ├── default/                            # 默认文件目录
│   │   ├── admin_footer.php                # 后台公共页脚
│   │   ├── admin_header.php                # 后台公共头部
│   │   ├── footer.php                      # 前台公共页脚
│   │   └── header.php                      # 前台公共头部
│   ├── db_connect.php                      # 数据库连接
│   └── functions.php                       # 通用函数
├── plugin/                                 # 插件目录
│   ├── secret_block/                       # 密码块
│   │   ├── ajax_secret.php                 # AJAX 密码验证接口
│   │   ├── secret.key                      # KEY
│   │   ├── secret_block.php                # 密码块核心文件
│   │   ├── secret_block_script.js          # 密码块 JavaScript
│   │   └── secret_block_style.css          # 密码块样式
│   ├── statistics/                         # 统计
│   │   ├── data/                           # 数据目录
│   │   │   ├── .htaccess                   # 分布式配置
│   │   │   └── stats.db                    # 统计数据库
│   │   ├── core.php                        # 核心配置
│   │   ├── stats_online.php                # 统计当前在线人数
│   │   ├── stats_page.php                  # 统计单篇文章/页面的浏览量
│   │   ├── stats_today.php                 # 统计今日访问量
│   │   ├── stats_total.php                 # 统计全站累计访问总量
│   │   └── tracker.php                     # 前端埋点接收器
│   └── weather/                            # 天气
│       ├── api.php                         # 异步加载接口
│       ├── weather_functions.php           # 天气插件函数
│       ├── weather_styles.css              # 天气插件样式
│       ├── weather_widget.php              # 固定地区版
│       ├── weather_widget_geolocation.php  # 浏览器地理定位版
│       ├── weather_widget_ip.php           # IP 定位版
│       ├── weather_widget_ip_with_days.php # IP 定位未来天气版
│       ├── weather_*.json                  # 固定地区版 缓存文件
│       └── weather_ip_*.json               # IP 定位版 缓存文件
├── uploads/                                # 上传目录
│   ├── images/                             # 文章附件目录
│   └── avatars/                            # 头像附件目录
│       ├── default/                        # 默认头像附件目录
│       │   ├── male.svg                    # 默认男头像
│       │   └── female.svg                  # 默认女头像
│       └── user_*.jpg                      # 用户上传头像文件
├── vendor/                                 # league/commonmark 2.8.0 依赖目录
├── composer.json                           # 临时:项目依赖声明文件:列出需要哪些第三方库
├── composer.lock                           # 临时:依赖版本文件:记录当前安装的所有库的版本
└── composer.phar                           # 临时:Composer 工具本身:用于安装/更新依赖的可执行文件

出处: https://xblog.itxgo.com/article.php?id=26
版权:本文采用 CC BY-NC-SA 4.0 协议,完整转载请注明来源。