基于 Webman 框架的 WordPress 风格内容管理系统
WebmanPress 是一个基于 Webman 高性能 PHP 框架的轻量级内容管理系统,采用 WordPress 风格的数据库结构和功能设计,提供了完整的内容管理、用户管理、媒体管理、主题定制等功能。
- 高性能 - 基于 Workerman 的 Webman 框架,支持高并发访问
- 轻量级 - 代码简洁,易于理解和定制
- WordPress 兼容 - 采用相似的数据库结构和概念
- 现代化 - 使用 Bootstrap 5 构建,支持响应式设计
- 模块化 - 支持主题和插件开发
| 技术 | 版本 | 说明 |
|---|---|---|
| PHP | 7.4+ | 推荐 PHP 8.0+ |
| Webman | 2.2+ | 高性能 PHP 框架 |
| Workerman | - | 异步事件驱动框架 |
| Eloquent ORM | - | 数据库操作层 |
| Bootstrap | 5.x | 前端 UI 框架 |
| MySQL | 5.7+ | 数据库 |
| Composer | - | 依赖管理 |
- 文章发布、编辑、删除
- 文章分类和标签管理
- 页面管理
- 富文本编辑器
- 多角色权限系统(管理员、编辑、作者、贡献者、订阅者)
- 用户注册和登录
- 个人资料管理
- 密码修改
- 文件上传
- 媒体库浏览
- 图片预览
- 文件类型限制
- 主题切换
- 主题选项配置
- 响应式设计
- 移动端优化
- 网站基本信息配置
- 评论设置
- 媒体设置
- 固定链接设置
- 基于角色的访问控制 (RBAC)
- 菜单权限控制
- 页面访问权限
- 操作权限验证
WebmanPress/
├── app/ # 应用目录
│ ├── admin/ # 后台管理
│ │ ├── controller/ # 后台控制器
│ │ ├── view/ # 后台视图
│ │ └── middleware/ # 后台中间件
│ ├── home/ # 前台
│ │ ├── controller/ # 前台控制器
│ │ └── view/ # 前台视图
│ ├── common/ # 公共
│ │ ├── model/ # 数据模型
│ │ └── ...
│ └── functions.php # 全局函数
├── config/ # 配置目录
│ ├── route.php # 路由配置
│ ├── database.php # 数据库配置
│ └── ...
├── themes/ # 主题目录
│ ├── default/ # 默认主题
│ └── flux/ # Flux 主题
├── plugins/ # 插件目录
├── public/ # 公共资源
│ └── uploads/ # 上传文件目录
├── runtime/ # 运行时文件
│ ├── cache/ # 缓存目录
│ ├── logs/ # 日志目录
│ └── sessions/ # 会话目录
├── docs/ # 文档目录
├── vendor/ # Composer 依赖
├── composer.json # Composer 配置
├── start.php # 启动文件
└── README.md # 本文档
- PHP 7.4 或更高版本
- MySQL 5.7 或 MariaDB 10.2+
- Composer 2.0+
- pdo
- pdo_mysql
- mbstring
- json
- openssl
- gd (用于图片处理)
- fileinfo
- 支持 Windows、Linux、macOS
- 建议使用 Linux 服务器部署
git clone https://github.com/webmanpress/webmanpress.git
cd webmanpresscomposer install编辑 config/database.php 文件:
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => 3306,
'database' => 'webmanpress',
'username' => 'root',
'password' => 'your_password',
'unix_socket' => '',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => 'wp_',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
],
],
];CREATE DATABASE `webmanpress` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;导入数据库文件(需要先创建数据库):
# 执行数据库初始化脚本
php -r "require 'vendor/autoload.php'; // 执行初始化代码"或者手动执行 SQL 导入(如果有 SQL 文件)。
# Linux/Mac
chmod -R 755 runtime
chmod -R 755 public/uploads# 开发模式(调试模式)
php start.php start
# 生产模式
php start.php start -d- 前台首页: http://localhost:8789
- 后台管理: http://localhost:8789/admin
- 用户名: admin
- 密码: admin123
首次登录后请立即修改管理员密码!
WebmanPress 使用 WordPress 风格的数据库表结构:
| 表名 | 说明 |
|---|---|
| wp_posts | 文章和页面 |
| wp_postmeta | 文章元数据 |
| wp_users | 用户信息 |
| wp_usermeta | 用户元数据 |
| wp_terms | 分类和标签 |
| wp_term_taxonomy | 分类法定义 |
| wp_term_relationships | 分类与文章关联 |
| wp_comments | 评论 |
| wp_commentmeta | 评论元数据 |
| wp_options | 系统选项 |
| wp_nav_menus | 导航菜单 |
| wp_nav_menu_items | 导航菜单项 |
主配置文件位于:
config/database.php- 数据库配置config/app.php- 应用配置config/route.php- 路由配置
A: 修改 support/bootstrap.php 中的端口配置,或者启动时指定端口:
php start.php start -p 8080A: 在 config/app.php 中设置:
'debug' => true,A: 需要同时修改:
- PHP 的
php.ini:upload_max_filesize = 32M post_max_size = 32M
- 系统设置中的媒体设置
A: 在后台"设置" → "常规"中修改,或直接修改数据库 wp_options 表。
A: 已修复,确保使用最新版本。
A: 可以直接修改数据库中的 wp_users 表,使用以下 PHP 生成密码哈希:
echo password_hash('your_new_password', PASSWORD_DEFAULT);控制器位于 app/admin/controller/ 或 app/home/controller/:
<?php
namespace app\admin\controller;
use support\Request;
use app\common\model\Post;
class MyController
{
public function index(Request $request)
{
// 权限检查
if (!current_user_can('manage_options')) {
return get_403_response();
}
return view('my/index', ['data' => 'Hello']);
}
}路由在 config/route.php 中配置:
<?php
use Webman\Route;
Route::get('/admin/my', [app\admin\controller\MyController::class, 'index']);模型位于 app/common/model/:
<?php
namespace app\common\model;
use support\Model;
class MyModel extends Model
{
protected $table = 'wp_my_table';
protected $primaryKey = 'id';
}视图文件使用原生 PHP + Bootstrap:
<?php include __DIR__ . '/components/header.php'; ?>
<div class="wrap">
<h1>页面标题</h1>
<div class="content">
<!-- 内容 -->
</div>
</div>
<?php include __DIR__ . '/components/footer.php'; ?>参考 themes/default/ 目录结构,创建新主题。
参考 docs/插件与主题开发指南.md。
欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
MIT License - 详见 LICENSE 文件
如有问题,请提交 Issue 或查看文档:
- GitHub Issues: https://github.com/webmanpress/webmanpress/issues
- 官方网站: https://webmanpress.com
祝使用愉快! 🎉