{"id":18812221,"url":"https://github.com/mqenergy/mqcms","last_synced_at":"2025-04-13T21:11:45.810Z","repository":{"id":144559718,"uuid":"262531101","full_name":"MQEnergy/MQCMS","owner":"MQEnergy","description":":zap::rocket:麻雀虽小 五脏俱全 一个基于hyperf的快速开发应用框架","archived":false,"fork":false,"pushed_at":"2021-10-20T03:32:58.000Z","size":1787,"stargazers_count":14,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T11:38:09.720Z","etag":null,"topics":["cms","hyperf","php7","service","swoole"],"latest_commit_sha":null,"homepage":"http://www.laidanme.com","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MQEnergy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-09T09:02:44.000Z","updated_at":"2023-07-25T14:35:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"c7d576ff-8b15-450b-a913-5efaccb19a54","html_url":"https://github.com/MQEnergy/MQCMS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MQEnergy%2FMQCMS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MQEnergy%2FMQCMS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MQEnergy%2FMQCMS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MQEnergy%2FMQCMS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MQEnergy","download_url":"https://codeload.github.com/MQEnergy/MQCMS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248782260,"owners_count":21160717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cms","hyperf","php7","service","swoole"],"created_at":"2024-11-07T23:30:55.779Z","updated_at":"2025-04-13T21:11:45.798Z","avatar_url":"https://github.com/MQEnergy.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MQCMS\n[![License](https://img.shields.io/github/license/MQEnergy/MQCMS)](https://github.com/MQEnergy/MQCMS)\n[![Stars](https://img.shields.io/github/stars/MQEnergy/MQCMS)](https://github.com/MQEnergy/MQCMS)\n\nMQCMS是一款现代化，快速，高效，灵活，前后端分离，扩展性强的CMS系统。\nMQCMS中的MQ取麻雀拼音首字母。寓意麻雀虽小五脏俱全。 因为工作原因，更新有点慢，请耐心等待，下一版本很快到来。\n### 特别感谢\n本项目基于hyperf2.0框架开发的应用，感谢hyperf的作者提供了这么优秀的框架\n\n### 产品示例\n基于MQCMS开发的产品示例地址：\nhttp://www.laidanme.com\nhttp://www.ucarter.com\n \n### 开发文档\n文档正在路上...\n\n单独前端项目仓库：\n[https://github.com/MQEnergy/MQCMS-admin](https://github.com/MQEnergy/MQCMS-admin)\n\n单独后端项目快速搭建框架：\n[https://github.com/MQEnergy/MQCMS-template](https://github.com/MQEnergy/MQCMS-template)\n\n### 项目结构\n```\nMQCMS                           \n├─ service                       // 服务层 提供接口等服务\n└─ admin                         // 后台前端\n```\n\ndemo访问：\n[https://sourl.cn/Y7kc6x](https://sourl.cn/Y7kc6x) （账号密码：demo/123456）\n\n### 应用截图\n#### 1、登录页面\n![](screenshot/login.png)\n#### 2、平台首页\n![](screenshot/user.png)\n#### 3、系统管理\n![](screenshot/system.png)\n#### 4、应用中心\n![](screenshot/application.png)\n\n## 一、运行后台前端\n```\n进入admin目录\nyarn install / npm install #安装依赖包\nyarn run serve / npm run serve  #运行项目\n```\n\n## 二、运行服务端\n### 1、docke环境开发\n在docker环境下开发，window10环境安装`docker desktop for window`,\nwindow10以下环境安装`docker toolbox`。\n\n\n##### 1）下载hyperf框架docker镜像\n```\ndocker pull hyperf/hyperf\n```\n\n\n##### 2）下载mqcms系统到本地\n```\n# 例如：将项目放在本地e:/web/MQCMS\ngit clone https://github.com/MQEnergy/MQCMS\n```\n\n##### 2）进入docker运行命令：\n```\ndocker run -it -v /e/web/MQCMS/service:/mqcms -p 9527:9527 --name mqserver --entrypoint /bin/sh hyperf/hyperf\n```\n\n##### 3）将Composer镜像设置为阿里云镜像，加速国内下载速度\n```\nphp mqcms/bin/composer.phar config -g repo.packagist composer https://mirrors.aliyun.com/composer\n```\n\n##### 4）docker安装redis\n```\ndocker pull redis\n# 进入redis 配置redis可外部访问\n\ndocker run -d --privileged=true -p 6379:6379 -v /e/web/MQCMS/service/docker/conf/redis/redis.conf:/etc/redis/redis.conf --name mqredis redis redis-server /etc/redis/redis.conf --appendonly yes\ndocker exec -it mqredis /bin/sh\n\n# 修改映射在本地的redis.conf\n# 修改bind如下（根据自己熟悉程度配置）\n# bind 0.0.0.0\n\n# 可开启password（自行按需修改）\n# requirepass foobared\n\n# 重启redis\ndocker restart mqredis\n```\n\n##### 5）进入项目安装依赖启动项目\n```\ndocker exec -it mqserver /bin/sh\ncd mqcms\nphp bin/composer.phar install\nphp bin/composer.phar update # 更新composer包\ncp .env.example .env\nphp bin/hyperf.php migrate\nphp bin/hyperf.php start 或者 php watch (热更新)\n```\n\n##### 6）浏览器访问项目\n```\nhttp://127.0.0.1:9527\n```\n![](./screenshot/home.png)\n\n### 2、扩展功能\n#### 1）项目初始化\n```\nphp bin/hyperf.php mq:init\n\n 是否执行migrate?:\n  [0] No\n  [1] Yes\n \u003e 1\n# migrate是数据库迁移\n\n 是否初始化一个后台账号密码？:\n  [0] No\n  [1] Yes\n \u003e\n# 选择1 出现如下输入框\n 账号:\n \u003e \n 密码:\n \u003e \n```\n#### 1）生成model\n```\nphp bin/hyperf.php gen:model --path=app/Model/Common --with-comments category\n```\n\n#### 2）command命令扩展\n2-1、创建service\n```\n# 查看mq:service命令帮助\nphp bin/hyperf.php mq:service --help\n\n# 创建App\\Service命名空间的service\nphp bin/hyperf.php mq:service FooService Foo\n# FooAdminService：service名称 FooAdmin：model名称\n \n# 创建其他命名空间的service\nphp bin/hyperf.php mq:service -N App\\\\Service\\\\Admin FooAdminService FooAdmin\n# FooAdminService：service名称 FooAdmin：model名称\n \n```\n\n2-2、创建logic\n```\n# 查看mq:logic命令帮助\nphp bin/hyperf.php mq:logic --help\n\n# 创建App\\Logic命名空间的logic\nphp bin/hyperf.php mq:logic FooLogic FooService common\n# FooLogic：logic名称 FooAdmin：model名称 common: service路径\n \n# 创建其他命名空间的logic\nphp bin/hyperf.php mq:logic -N App\\\\Logic\\\\Admin FooLogic FooService common\n# FooLogic：logic名称 FooService：service名称 common: service命名空间\n \n```\n\n2-3、创建controller\n```\n# 查看mq:controller命令帮助\nphp bin/hyperf.php mq:controller --help\n\n# 创建App\\Controller命名空间的controller\nphp bin/hyperf.php mq:controller FooController FooLogic admin\n# FooController：controller名称 FooLogic：logic名称 admin：模块名称（后台，接口 可扩展，eg.可写成：Admin ADMIN admin ...）\n\n# 创建其他命名空间的controller\nphp bin/hyperf.php mq:controller -N App\\\\Controller\\\\Api\\\\V1 FooController FooLogic admin\n# FooController：controller名称 FooLogic：logic名称 admin：logic命名空间（后台，接口 可扩展，eg.可写成：Api API api ...）\n\n```\n\n2-4、安装plugin（待优化）\n\n本项目支持安装开发的插件分为前后端，插件后台路由建议使用注解路由方式实现，目录结构查看upload/plugins/demo.zip文件\n```\ndemo                             // 插件名称（一般为用户名）\n├─ service                       // command命令\n├─ components                    // 前端组件目录\n├─ controller                    // 控制器目录\n├─ migrations                    // 数据库迁移目录\n├─ api                           // 前端api访问方法目录\n│  ├─ index.js                   // 前端api方法\n├─ menu                          // 前端菜单目录\n│  ├─ index.js                   // 前端菜单列表\n├─ router                        // 前后端路由目录\n│  ├─ index.js                   // 前端路由\n│  ├─ api.php                    // 前台接口路由\n│  └─ admin.php                  // 后台接口路由\n```\n```\n# 查看mq:plugin命令帮助\nphp bin/hyperf.php mq:plugin --help\n\n# 创建默认命名空间的plugin（默认命名空间可在devtool.php查看）\nphp bin/hyperf.php mq:plugin up demo\n# up：代表安装操作 demo：代表插件打包名称\n\n# 创建其他命名空间的plugin\nphp bin/hyperf.php mq:plugin -CN App\\\\Controller\\\\Admin\\\\Plugins -SN App\\\\Service\\\\Plugins up demo [-H(--hot)]\n# CN：controller namespace  SN：service namespace  -H：为热更新参数\n\n运行如下：\nstart install plugin demo ...\n ---------------- ----------------------------------------------------\n  插件临时路径     /mqcms/upload/plugins/demo\n ---------------- ----------------------------------------------------\n  控制器路径       /mqcms/app/Controller/Admin/Plugins/Demo\n ---------------- ----------------------------------------------------\n  服务层路径       /mqcms/app/Service/Plugins/Demo\n ---------------- ----------------------------------------------------\n  数据库迁移路径   /mqcms/migrations\n ---------------- ----------------------------------------------------\nplugin demo installed successfully!\n\n\n# 访问地址\nhttp://127.0.0.1:9527/admin/plugins/demo/index/index\n出现结果：\n{\n    \"method\": \"GET\",\n    \"message\": \"Hello MQCMS-plugin-demo.\"\n}\n```\n## 三、常见问题\n### 1、自动初始化命令后访问接口出现 Signature verification failed\n答：由于初始化命令生成的是后端接口代码，请使用/backend/token/index 生成一个token 然后请求接口在header中加入Authorization参数 值为 Bearer token值\n### 2、访问接口出现 Key may not be empty \n答：.env配置增加 JWT_FRONTEND_KEY，JWT_BACKEND_KEY 参数值，注意：参数名称FRONTEND, BACKEND对应app\\Controller里面的模块名称，如添加其他模块，请增加JWT的其他模块参数\n### 3、start项目出现错误  Uncaught RuntimeException: The class reflector object does not init yet\n答：执行以下命令\n```\ncomposer dumpautoload -o\n```\n然后在执行\n```\nphp bin/hyperf.php start\n```\n### 4、请求接口出现 Connection refused\n答：请在.env中配置redis参数\n### 5、.env配置中的REDIS_ON, APP_BACKEND_MUTEX，APP_FRONTEND_MUTEX有啥作用？\n答：REDIS_ON是是否开启redis参数，设置为true是配合APP_BACKEND_MUTEX或者APP_FRONTEND_MUTEX使用的，具有相同账号在不同设备登录互斥的作用。注意：其中参数名的BACKEND和FRONTEND对应app\\Controller里面的模块名称。\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmqenergy%2Fmqcms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmqenergy%2Fmqcms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmqenergy%2Fmqcms/lists"}