import{_ as s,o as e,c as i,a2 as t}from"./chunks/framework.BbmSSMjL.js";const k=JSON.parse('{"title":"2.9 常见问题 FAQ","description":"","frontmatter":{},"headers":[],"relativePath":"zh/quickstart/faq.md","filePath":"zh/quickstart/faq.md"}'),o={name:"zh/quickstart/faq.md"};function l(h,a,n,d,r,p){return e(),i("div",null,[...a[0]||(a[0]=[t('
A: 不能。项目基于 Laravel 13(composer.json 要求 php ^8.3),必须使用 PHP 8.3+。执行 composer install 时 Composer 会直接校验版本并报错。
A: 运行 php -m 检查已安装的扩展。缺少的扩展参考 2.1 开发环境准备 安装。最常见的是缺少 pdo_mysql、gd 和 redis——redis 扩展缺失时报 Class "Redis" not found,验证码、登录直接不可用。
A: 配置中国镜像:
# 配置阿里云 Composer 镜像(加速依赖下载)\n# -g → 修改全局配置(所有项目生效)\n# repo.packagist → 设置 Packagist 仓库镜像地址\ncomposer config -g repo.packagist composer https://mirrors.aliyun.com/composer/A: 不可以。 本项目强依赖 Redis:验证码、JWT 双令牌会话、权限缓存、字典缓存、会话/队列驱动均依赖它。Redis 相关问题(扩展安装、密码同步)见 2.1 开发环境准备 与 2.2 Laragon 环境搭建。
A: PATH 中的 php 可能是旧版本(Laragon 默认 PATH 常指向低版本 PHP)。使用 8.3 的完整路径调用:
$PHP_HOME\\php.exe artisan list\n$PHP_HOME\\php.exe vendor\\bin\\pint --testphp artisan serve 报 "Address already in use" A: 端口被占用,更换端口:
# --port → 指定监听端口(默认 8000)\nphp artisan serve --port=8080A: .env 中 JWT_SECRET 为空或不足 32 字符——应用启动时执行 fail-close 校验(不满足直接抛异常)。生成强随机密钥后重启:
openssl rand -base64 32 # 或 php -r "echo bin2hex(random_bytes(32));"A: 检查以下几点:
systemctl status mysql.env 中的 DB_* 配置是否正确(DB_HOST、DB_PORT、DB_USERNAME、DB_PASSWORD、DB_DATABASE)document/mysql/rxthinkcmf.laravel13.naivevue.sql(本项目 migrations 为空,不会自动建表)DB_PREFIX 是否为 laravel_(漏配会报 Table 'xxx.users' doesn't exist)mysql -h 127.0.0.1 -P 3306 -u root -p -e "SELECT 1;"A: 可能原因:
Authorization: Bearer <token>JWT_SECRET 变更 → 旧令牌全部失效,重新登录即可FLUSHDB)→ 重新登录pnpm install 报错 A: 清除缓存重新安装:
# 删除依赖目录和锁文件,重新安装\nrm -rf node_modules pnpm-lock.yaml # 删除旧的依赖和锁文件\npnpm install # 重新安装所有依赖A: 检查以下几点:
curl http://admin.laravel13.naivevue/api/captcha 验证)vite.config.ts 中的 target,改完重启 pnpm dev)/api 开头)A: 打开浏览器控制台(F12)查看错误信息,常见原因:
/api/index/getMenus 是否正常返回)composer setup / php artisan migrate 后依然提示表不存在? A: 正常现象。本项目 database/migrations/ 为空,建表以 SQL 脚本为准,migrate 只初始化迁移记录表。请手动导入:
mysql -uroot -proot rxthinkcmf.laravel13.naivevue < document/mysql/rxthinkcmf.laravel13.naivevue.sql详见 2.5 数据库初始化。
A: 脚本约 226MB(含全国行政区划等大数据量表),导入需 1~3 分钟属正常。确保:
utf8mb4max_allowed_packet 足够(默认 64MB 一般够用,不足时调大)A: 首次启动需导入约 226MB SQL,健康检查已预留缓冲(1~3 分钟)。查看进度:
docker compose logs -f mysql详见 2.8 Docker 快速体验。
A: 容器内读取的 JWT_SECRET 不足 32 字符。在 docker/.env.docker 中生成随机值后重启:
openssl rand -base64 32\ndocker compose restart appA: 修改 docker/.env.docker 中的宿主机端口(如 MYSQL_PORT=3307、REDIS_PORT=6380),容器内部通过服务名通信不受影响。见 2.8 Docker 快速体验 「端口冲突处理」。
{"code":403,"msg":"无访问权限"}? A: 当前账号角色缺少该接口的权限节点。到「系统管理 → 角色管理」为角色勾选对应菜单/按钮权限(权限码如 sys:user:add),或使用超级管理员账号测试。权限模型见 5.4 权限管理(RBAC)。
{"code":401,"msg":"未授权,请先登录"}? A: Token 缺失、无效或过期。检查:
Authorization: Bearer <token>/api/refresh 续签或重新登录A: 项目约定 HTTP 状态码恒为 200(403 例外),以响应体 code 判断:code=0 成功,其他为失败;code=401 时前端跳转登录。见 8.1 统一响应格式。