https://gitee.com/xianrenqh/huicmf_webman
http://webman.xiaohuihui.net/admin
账号:admin
密码:admin888
php: 7.3+ ,推荐7.4
mysql: 5.5+
Redis
支持php8+。
https://gitee.com/xianrenqh/huicmf_webman.git
composer update
导入数据并配置数据库文件方式有2种。任意一种即可。
在命令输入以下命令并执行:
# 简洁命令
php webman config:mysql --u root --p 123456 --d databasename
#完整命令
php webman config:mysql --h 127.0.0.1 --port 3306 --u root --p 123456 --d databasename --in 0
命令行中参数意义:
参数 | 是否必填 | 默认值 | 描述 |
---|---|---|---|
--h | 否 | 127.0.0.1 | host地址 |
--port | 否 | 3306 | 端口号 |
--u | 是 | 数据库用户名 | |
--p | 是 | 数据库密码 | |
--d | 是 | 数据库名 | |
--in | 否 | 0 | 是否强制安装数据库:是=1 |
注意:
1.根目录找到 install.sql 并导入数据库
2.设置 config/thinkorm.php 文件中的数据库配置
3.如果使用.env文件,请把根目录下.example.env重命名为:.env并设置.env中的数据库配置
4.【注:】 如果使用.env配置数据库,则 config/thinkorm.php 文件的数据库配置项不生效。
默认端口:8787
更改默认端口方法:
如果使用了.env文件,请在env文件中更改端口【APP_PORT】
如果没有使用.env文件:
请在\config\server.php 文件中更改:
'listen' => 'http://0.0.0.0:8787',
(不知道命令的可以继续往下看)
用户名:admin
密码: 123456
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-f $request_filename){
proxy_pass http://webman;
}
}
(不绑定域名请使用 ip+端口访问)
如果忘记密码,或者密码不对,请修改数据库表:cmf_admin
password: 4d934790841a4d8575c21e86b5b3eb71
salt: VkMJ27
对应的明文密码为:123456
php windows.php start
php start.php start
php start.php start -d
php start.php reload
请复制或者重命名一份.example.env 为 .evn文件。并编辑里面的数据库配置
如果是使用命令行安装的,则无需复制并编辑数据
config\thinkorm.php
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-f $request_filename){
proxy_pass http://webman;
}
}
当webman需要直接提供外网访问时,建议在webman前增加一个nginx代理,这样有以下好处。
upstream webman {
server 127.0.0.1:8787;
keepalive 10240;
}
server {
server_name 站点域名;
listen 80;
root /your/webman/public;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
if (!-f $request_filename){
proxy_pass http://webman;
}
}
}
可以有以下2种方式:
方法1:
# 全局均可使用 return success_json(); return error_json();
方法2:
# 需要公公控制器先继承 \app\BaseController; # 然后引入 public function __construct() # 默认后台模块(admin)已继承,可直接使用。其他模块需要自行继承 return $this->success(); return $this->error();
error输出,可以在msg位置输出数组:['code'=>204,'msg'=>'error'],此时输出的json code值为对应的204
【权限节点管理】
使用的是控制器注解权限来增加(删除)权限节点
【定时任务管理】
定时任务,使用的是后台自带的定时任务,类似宝塔定时任务管理功能
案例页面:【后台-上传测试页】
案例代码,请参考 app/admin/view/upload_test.html 文件
<div class="layui-form-item huicmf-upload">
<label class="layui-form-label">头像</label>
<div class="layui-input-inline" style="width: 50%">
<input type="text" name="avatar" value=""
onmouseover="hui_img_preview('avatar-select-input',this.value)"
onmouseout="layer.closeAll();" id="avatar-select-input" autocomplete="off"
class="layui-input">
</div>
<div class="layui-input-inline" style="width: 120px">
<a class="layui-btn"
data-open-pic="{:__url('index/file_list',['type'=>'one','select_id'=>'avatar-select-input'])}">
<i class="layui-icon"></i>选择图片
</a>
</div>
</div>
点击按钮 a 标签 里面:
打开选择框属性:data-open-pic="{:__url('index/file_list',['type'=>'one','select_id'=>'avatar-select-input'])}",其中:
type=>'one' 意思是:单张图
select_id' 意思是:需要传递回调数据表单的id字段
<div class="layui-form-item huicmf-upload">
<label class="layui-form-label">多图选择</label>
<div class="layui-input-block" style="margin-top: 15px;">
<a class="layui-btn" data-open-pic="{:__url('index/file_list',['type'=>'more','select_id'=>'uploader-list'])}"><i class="layui-icon"></i>选择图片</a>
<div style="margin-top: 15px;">
<small>(可拖拽图片调整显示顺序 )</small>
</div>
<!--回调显示选择的图片-->
<div class="uploader-list am-cf" id="uploader-list" data-nums="3" ></div>
</div>
</div>
注意:由于增加了多选图的数量判断(限制),需要注意以下代码:
<div class="uploader-list am-cf" data-nums="0"></div>
其中:data-nums参数为多图的数量(如果是添加,默认为0,如果是编辑,请传递后台图片数量到此值)
点击按钮 a 标签 里面:
打开选择框属性:data-open-pic="{:__url('index/file_list',['type'=>'more','select_id'=>'uploader-list'])}",其中:
type=>'more' 意思是:单张图
select_id' 意思是:需要传递回调数据的id
(如果不喜欢此接口开发,可以删掉api文件夹里的代码,自行开发自己的接口)
接口说明
接口的访问地址为:http://127.0.0.1:8787/api
请求方法: post
参数格式为:method 调用具体方法
其它参数:根据每个参数来定义。
需要登录的接口,可以用$this->userId获取当前访问用户id
$this->userId
需要登录的接口的接口必须传递参数 token
判断登录与否的标准就是是否在本地保存了token,如果保存了,就是登录状态,如果没有保存,就是未登录状态,需要登录的接口会自动带上token来进行请求数据。
config/api.php
新增接口均需要在此文件中增加接口配置
新增接口时,需要先在api模块中增加一个接口控制器,所有接口控制器均要继承\app\api\controller\ApiController 控制器,如:
控制器名称需要使用完整名称,需要带上"Controller",如:TestController
例如:
namespace app\api\controller;
class TestController extends ApiController{
public function list(){}
}
然后在接口配置文件 config\api.php 中定义下新增的接口
'test'=>[
'code' => 'Test',
'method' => [
'getlist' => [
'code' => 'list',
'is_login' => false
]
]
]
最外面的test是url地址调用的第一个参数
code对应的是接口控制器类名
method里面定义的是参数
getlist是外部访问的方法名,getlist里面code是Test控制器里面的具体方法名
is_login 含义为是否需要登录,当is_login 为true时,必须传token。可使用$this->userId 获取当前登录用户
如果是一个公共数据接口,直接在 app\api\controller\CommonController.php 文件中写方法,任意请求方式访问:
http://你的域名/api.html/common/test 即可。
基本信息
https://你的域名/api
POST
multipart/form-data
请求参数:
接口请求参数见下表:
Body参数说明 (multipart/form-data)
参数名 | 示例值 | 是否必填 | 参数描述 |
---|---|---|---|
method | user.login | 必填 | 接口方法 |
username | admin | 必填 | 登录名 |
password | admin | 必填 | 密码 |
响应示例
正确响应示例
{
"code": 200,
"data": "c9d2343fd754ca12a9be33e957574cce",
"msg": ""
}
错误响应示例
{
"code": 0,
"msg": "没有找到此账号",
"data": ""
}
High performance HTTP Service Framework for PHP based on Workerman.
https://www.workerman.net/doc/webman
MIT
以下项目排名不分先后
HuiCMF遵循Apache2.0开源协议发布,并允许商业使用。 本项目包含的第三方源码和二进制文件之版权信息另行标注。 版权所有Copyright © 2019-2022 by
xiaohuihui (https://xiaohuihui.net.cn)
All rights reserved。
HuiCMF遵循Apache2.0开源协议发布,并允许商业使用。任何用户在使用
HuiCMF
后台框架前,请您仔细阅读并透彻理解本声明。您可以选择不使用HuiCMF
后台框架,若您一旦使用HuiCMF
后台框架,您的使用行为即被视为对本声明全部内容的认可和接受。仅供技术研究使用,请勿用于非法用途,否则产生的后果作者概不负责。
HuiCMF
后台框架是一款开源免费的后台快速开发框架 ,主要用于更便捷地开发后台管理;其尊重并保护所有用户的个人隐私权,不窃取任何用户计算机中的信息。更不具备用户数据存储等网络传输功能。HuiCMF
后台框架,不利用HuiCMF
后台框架进行任何违法、侵害他人合法利益等恶意的行为,亦不将HuiCMF
后台框架运用于任何违反我国法律法规的 Web 平台。HuiCMF
后台框架而产生的任何意外、疏忽、合约毁坏、诽谤、版权或知识产权侵犯及其造成的损失 (包括但不限于直接、间接、附带或衍生的损失等),本开源项目不承担任何法律责任。HuiCMF
后台框架可能存在的风险和相关后果将完全由用户自行承担,本开源项目不承担任何法律责任。HuiCMF
后台框架等行为,若违反本免责声明条款或违反法律法规所造成的法律责任(包括但不限于民事赔偿和刑事责任),由违约者自行承担。
👍🏻
:) :> :)
很赞,赞,赞~
:) :> :)
奈斯
php 7.4.3 执行composer update 超时,要切换到哪个镜像才行啊(目前用的是腾讯镜像)
运行 composer config -g --unset repos.packagist 取消composer代理试下
666
啦啦啦