常见问题
怎么升级版本?
每次升级完最新版本后,请执行更新命令完成SQL语句升级 php bin/hyperf.php mine:update
菜单添加后页面不显示
一般是以下问题造成的:
- 组件路径地址错误,导致页面显示不出来
- 菜单代码标识重复,这个要保证全局唯一
- 菜单路由地址重复,这个要保证全局唯一
前端登录提示“未知错误”
一般是jwt私有密钥未初始化,执行下面两条命令进行初始化:
php bin/hyperf.php mine:jwt-gen --jwtSecret=JWT_SECRET
php bin/hyperf.php mine:jwt-gen --jwtSecret=JWT_API_SECRET
上传图片前端不显示
打开前端 config/upload.js
,根据自己情况配置地址
// 文件存储URL地址
export default {
storage: {
LOCAL: 'http://127.0.0.1:9501',
OSS: '',
COS: '',
QINIU: ''
}
}
提示“队列相关功能未开启”
打开 App\System\Queue\Consumer\MessageConsumer.php
搜索文件 把 //#[Consumer...]
前面的 //
去掉
打开 App\System\Queue\Producer\MessageProducer.php
搜索文件 把 //#[Producer...]
前面的 //
去掉
登录后台白屏没有任何跳转
有以下几种可能,请逐一排查
数据库
或者redis
没有正确配置- 没有
真正
的完成安装项目,需要再次运行php bin/hyperf mine:install
命令 - 检查
.env
文件的SUPER_ADMIN
的值是否与用户表的超管ID一致 - 检查用户是否绑定了
角色
,同时角色是否至少绑定了一个菜单
- 清除
Redis
缓存
[系统监控]卡死
请使用 root
账户来启动项目。
为何出现“您访问的资源不存在”
- 确认是否配置了此菜单
- 确认后端路由定义是否存在,并检查是否需要参数
- 确认服务器是否重启
- 确认是否删除
runtime/container
目录
超级管理员怎么设置
超级管理员,也就是创始人,必须在 .env
中的 SUPER_ADMIN
定义
docker里连不上数据库、Redis
这种情况一般是 数据库
和 redis
安装在 本地(宿主机)
可使用以下命令查看本机ID地址
- Windows:
ipconfig
- Linux:
ip addr
orifconfig
- Mac:
ifconfig
然后以局域网地址连接
或者使用Docker的专用地址:host.docker.internal
前端是否需要部署在docker里面?
不需要
安装的SQL文件在哪里?
MineAdmin
没有使用传统SQL文件安装,而是使用了数据迁移工具进行建表和数据填充工作
相关的文件在每个模块下的 Database
里
前端一些页面不想缓存怎么操作
目前生成的vue页面里都有两个 script
标签,只需要删掉 export default { name: 'xxx' }
这行标签的代码即可不缓存
如何开启JWT多点登录
在后端 config/autoload/jwt.php
里找到下面这行,把 sso
改为 mpop
即可
'login_type' => env('JWT_LOGIN_TYPE', 'sso'), // 登录方式,sso为单点登录,mpop为多点登录
定时任务怎么不执行
一般发生在类任务,默认的 定时清理日志任务
由于在安装数据时 \
被转义了,在后台看到的就是:
- AppSystemCrontabClearLogCrontab
而实际上应该是带有命名空间含义的类地址,带上斜杠后,系统就能找到这个类了。
- \App\System\Crontab\ClearLogCrontab
提示 SSL verify failed
一般多发生于宝塔用户
首先更新 libopenssl
- ubuntu/debian
sudo apt-get install libcurl4-openssl-dev
- centos/redhat
sudo yum install libcurl-devel
- alpine
apk add curl-dev
最后重新编译安装 Swoole 即可
插件安装需知
安装插件后请手动重启服务
前端不生效 无页面
检查 插件配置文件,路径:(/config/autoload/mine-extension.php) 中
/*
* The root directory where the front-end code resides.
*
* 前端代码所在根目录.
*/
'front_directory' => './web/',
配置是否正确 是否为当前运行前端目录
数据迁移、填充和更新的执行顺序是什么
迁移 -> 填充 -> 更新。首先进行数据结构的迁移,然后填充初始数据,最后执行更新操作。
数据库填充文件是否只在安装时执行一次
是的,数据库填充文件只在安装时执行一次。系统的迁移机制会检测并记录所有已执行的操作,防止重复执行
安装所有模块后,如何执行特定操作
目前没有直接的方式来在所有模块安装完毕后执行特定操作。原始设计考虑到的是内部开发使用,但插件系统可能支持这种功能。\
数据权限中的'本部门及以下数据权限'与'本部门及以下数据权限(数据表部门 ID)'有何区别?
'本部门及以下数据权限'基于创建者(created_by)实现,而'本部门及以下数据权限(数据表部门 ID)'则基于部门ID(dept_id)。如果人员更换部门,使用dept_id的权限设置将无法访问原部门的数据。
如果需要使用dept_id,应如何操作?
需要在数据表中添加dept_id字段,并手动维护此字段的更新。相对的,created_by字段是在AOP(面向切面编程)环境中自动维护的。可以考虑实现一个AOP来自动维护dept_id字段