Skip to content

Repository files navigation

WebmanPress - 轻量级内容管理系统

基于 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+

PHP 扩展

  • pdo
  • pdo_mysql
  • mbstring
  • json
  • openssl
  • gd (用于图片处理)
  • fileinfo

服务器环境

  • 支持 Windows、Linux、macOS
  • 建议使用 Linux 服务器部署

快速部署

1. 克隆或下载项目

git clone https://github.com/webmanpress/webmanpress.git
cd webmanpress

2. 安装依赖

composer install

3. 配置数据库

编辑 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,
        ],
    ],
];

4. 创建数据库

CREATE DATABASE `webmanpress` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

5. 导入数据表

导入数据库文件(需要先创建数据库):

# 执行数据库初始化脚本
php -r "require 'vendor/autoload.php'; // 执行初始化代码"

或者手动执行 SQL 导入(如果有 SQL 文件)。

6. 设置目录权限

# Linux/Mac
chmod -R 755 runtime
chmod -R 755 public/uploads

7. 启动服务

# 开发模式(调试模式)
php start.php start

# 生产模式
php start.php start -d

8. 访问应用

默认管理员账号

  • 用户名: 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 - 路由配置

常见问题

Q: 端口被占用怎么办?

A: 修改 support/bootstrap.php 中的端口配置,或者启动时指定端口:

php start.php start -p 8080

Q: 如何开启调试模式?

A: 在 config/app.php 中设置:

'debug' => true,

Q: 上传文件大小限制?

A: 需要同时修改:

  1. PHP 的 php.ini
    upload_max_filesize = 32M
    post_max_size = 32M
  2. 系统设置中的媒体设置

Q: 如何更改网站 URL?

A: 在后台"设置" → "常规"中修改,或直接修改数据库 wp_options 表。

Q: 移动端头像菜单不显示?

A: 已修复,确保使用最新版本。

Q: 忘记管理员密码?

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!

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

📄 许可证

MIT License - 详见 LICENSE 文件


🙏 致谢


📞 技术支持

如有问题,请提交 Issue 或查看文档:


祝使用愉快! 🎉

About

WebmanPress - 基于 Webman 的 WordPress 风格 CMS

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages