import{_ as d,o as e,c as o,a2 as a}from"./chunks/framework.BbmSSMjL.js";const b=JSON.parse('{"title":"A. 常见问题汇总","description":"","frontmatter":{},"headers":[],"relativePath":"zh/appendix/faq.md","filePath":"zh/appendix/faq.md"}'),r={name:"zh/appendix/faq.md"};function c(l,t,i,n,s,p){return e(),o("div",null,[...t[0]||(t[0]=[a('

A. 常见问题汇总 ​

概述

本页汇总了项目各模块的常见问题及解决方案,按场景分类索引。遇到问题时可先查阅本页,再深入各章节详细文档。

环境问题 ​

问题解决方案
PHP 版本低于 8.3升级到 PHP 8.3+(Laravel 13 要求),项目使用了 8.3 的语言特性
缺少 pdo_mysql 扩展apt install php8.3-mysql 或 dnf install php-mysqlnd
could not find driver(db:migrate 迁到 PostgreSQL)php.ini 扩展区启用 extension=pdo_pgsql(Windows 自带 php_pdo_pgsql.dll + libpq.dll,取消注释即可;Linux apt install php8.3-pgsql),CLI 重读 php.ini 无需重启
缺少 gd 扩展apt install php8.3-gd 或 dnf install php-gd
缺少 redis 扩展apt install php8.3-redis 或 pecl install redis(必需:缓存/会话/队列/JWT 均依赖)
Redis 未安装安装 Redis 6.0+ 并配置密码(本项目 .env.example 默认全部 Redis 驱动,不建议改 file)
Composer 下载慢composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
Oracle pdo_oci 加载失败(Windows)安装 Oracle Instant Client 19c + VC++ 2015-2022 Redistributable,php.ini 启用 extension=pdo_oci,配置系统 PATH 后重启 Apache
命令行有 pdo_oci,浏览器 phpinfo 没有Apache 服务启动时 PATH 未刷新,完全停止再启动 Apache 即可
Oracle Instant Client 路径含中文/空格导致加载失败解压到 C:\\oracle\\instantclient_19_20 等固定路径,避免空格与中文

启动问题 ​

问题解决方案
端口被占用php artisan serve --port=8080
数据库连接失败检查 .env 中的数据库配置(注意 DB_PREFIX=laravel_ 与 SQL 脚本一致)
表不存在本项目无 migration 建表,导入 document/mysql/*.sql(见 2.5 数据库初始化)
401 未授权检查请求头是否携带 Authorization: Bearer <token>,确认 JWT_SECRET 配置(缺失/过短会 fail-close)
403 禁止访问检查用户权限配置,确认角色已分配菜单
502 Bad Gateway检查 PHP-FPM 是否启动:systemctl status php8.3-fpm
登录失败/缓存不生效检查 Redis 是否运行、REDIS_* 配置是否正确(见 11.10 故障排查手册)

业务问题 ​

问题解决方案
唯一性校验报错检查数据是否重复,确认 uniqueFields 配置
枚举显示名为空检查字典配置,确认 serializeMaps 正确、字典编码已创建
文件上传失败检查 FILE_UPLOAD_DIR / FILE_MAX_SIZE 配置和 public/uploads/ 目录权限
导入失败检查 Excel 表头是否与 headerMap 一致
排序不生效检查 pageOrderBy 配置,或前端 orderField 是否在白名单(pageOrderBy ∪ orderFieldAllow)内

前端问题 ​

问题解决方案
pnpm install 失败rm -rf node_modules && pnpm install --force(锁文件 pnpm-lock.yaml 保留)
API 404检查后端路由注册和 Vite 代理 / Nginx proxy_pass 配置
菜单不显示检查菜单配置、组件路径、角色权限,重新登录刷新动态菜单
白屏打开 F12 控制台查看错误
Token 频繁过期检查 JWT_ACCESS_TTL 配置(默认 7200 秒),或使用 refresh 刷新令牌

定时任务问题 ​

问题解决方案
任务不执行检查 crontab 配置:crontab -l;手动执行 php artisan job:run 验证
任务重复执行检查是否有多个 job:run cron 或 job:daemon 守护进程在运行
任务执行超时检查 PHP max_execution_time 配置
内部任务处理器不存在url 字段按 App\\Task\\{名称}Task 映射,确认类名与 run() 方法存在(见 6.11 定时任务)
',12)])])}const m=d(r,[["render",c]]);export{b as __pageData,m as default};