You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

7.5 KiB

slake-school-service · 本地环境

1. 环境要求

说明
PHP 8.1+(当前锁定 Laravel 10composer.json 一致;若本机为 PHP 8.2+ 可考虑后续升级到 Laravel 11+
扩展 opensslpdo_mysqlmbstringtokenizerxmlctypejsonbcmathLaravel 常规)
Composer 2.x
MySQL 5.7+ 或 8.0+(开发推荐 8.0

2. 配置方式

项目根目录的 **.env** 为本地实际配置(已加入 .gitignore,勿提交秘钥)。仓库内 **.env.example** 为模板,可执行:

cp .env.example .env
php artisan key:generate

当前默认约定与 **.env.example** 一致:

变量 默认值 说明
APP_NAME Slake School Service 应用名
APP_URL http://127.0.0.1:8000 php artisan serve 一致
DB_HOST 127.0.0.1 数据库地址
DB_PORT 3307 与下方 Docker MySQL 映射一致;若使用本机已有 MySQL 的 3306,请改为 3306 并调整库名/账号
DB_DATABASE slake_school 库名
DB_USERNAME / DB_PASSWORD root / root_local docker-compose.ymlMYSQL_ROOT_PASSWORD 一致;应用账号也可用 slake / slake_local

若登录接口或任意接口报 SQLSTATE[HY000] [2002] Connection refused:表示 MySQL 未在本机监听(常见为未启动 Docker 容器或端口不一致)。请先启动数据库(见下文 Docker或改用本机已安装的 MySQL 并同步修改 DB_HOSTDB_PORT、账号密码。

3. 使用 Docker 启动 MySQL可选

若本机未安装 MySQL可在项目根目录执行

docker compose up -d

会启动容器 slake-school-mysql,将容器 3306 映射到本机 3307,与默认 .env 对齐。

  • root 密码(仅本机调试用):root_local
  • 建库、账号在 docker-compose.ymlenvironment 中已定义,与 DB_* 默认一致。

4. 使用本机已安装的 MySQL

  1. 手动创建数据库:CREATE DATABASE slake_school CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  2. 创建用户并授权,或沿用 root;在 **.env** 中修改 DB_PORT(如 3306)、DB_USERNAMEDB_PASSWORD
  3. 与 Docker 不要同时占用同一端口。

5. 初始化与启动

cd /path/to/slake-school-service
composer install
# 已存在 .env 且含 APP_KEY 时可跳过
cp -n .env.example .env && php artisan key:generate
php artisan migrate
php artisan db:seed
php artisan serve

已有数据库仅需增量挂载「运营管理」侧栏:php artisan db:seed --class=OperationsMenusSeeder。仅补课程用字典:php artisan db:seed --class=CourseDictionarySeeder
工作台菜单(驾驶舱 + 雷达地图归组):php artisan db:seed --class=WorkbenchMenusSeeder(见 docs/工作台驾驶舱与雷达地图.md)。
数据资产 · Banner 图管理菜单php artisan db:seed --class=DataAssetsMenusSeeder(见 docs/后台菜单目录结构.md §7

php artisan db:seed(默认 DatabaseSeeder)会依次执行 AdminInitSeederRBAC、菜单、管理员CourseDictionarySeedercourse_system / course_type / yes_no,对齐 prototype/pages/course-create.html)。

浏览器访问:http://127.0.0.1:8000 应出现 Laravel 欢迎页。
AdminInitSeeder 会初始化 RBAC、菜单含工作台、运营管理、系统管理、默认超级管理员账号

项目
用户名 admin
初始密码 Admin@123456(登录后请立即修改)

管理端 API 前缀为 /api/admin/v1(见 routes/admin.php)。

6. 与 slake-school-web 联调Vite

在仓库 code/slake-school-web

cp .env.example .env.development
npm install
npm run dev

默认 VITE_API_BASE_URL=/apiVite 将 /api 代理到 VITE_PROXY_TARGET(与 php artisan serve127.0.0.1:8000 一致)。
高校雷达网地图使用腾讯地图,请在 .env.development 中配置 VITE_TENCENT_MAP_KEYKey 申请后填入,见 docs/工作台驾驶舱与雷达地图.md)。
后端需在 .env 中配置 SANCTUM_STATEFUL_DOMAINS(模板见 .env.example),包含本机前端地址(如 localhost:5173),以便后续若启用 Cookie 会话与 Sanctum 协同。

7. 说明

  • Sanctum:管理端当前使用 Bearer TokenAuthorization: Bearer <token>),由登录接口签发;personal_access_tokens 表由框架维护。
  • 生产环境务必将 APP_DEBUG=false、使用强密码与独立 APP_KEY

8. 修订记录

日期 说明
2026-05-18 初始化改为 php artisan db:seed;补充 CourseDictionarySeeder 与增量说明。
2026-05-29 新增 §9 小程序 H5 本地调试与 dev-login 说明。

9. 小程序 H5 本地调试(slake-school-wx

目标:在浏览器中调试 UniApp 页面并调用真实后端,无需微信开发者工具;小程序真机/开发者工具仍走微信登录。

9.1 后端

  1. 按 §5 启动 MySQL 与 php artisan servehttp://127.0.0.1:8000)。
  2. .env 关键项:
变量 说明
APP_ENV=local 启用 POST /api/miniapp/v1/auth/dev-login
WX_APPID / WX_SECRET 微信小程序 code2sessionH5 调试可不测此项)
  1. 验证接口:
curl -X POST http://127.0.0.1:8000/api/miniapp/v1/auth/dev-login \
  -H 'Content-Type: application/json' \
  -d '{"nickname":"本地调试"}'

应返回 tokenuser

9.2 前端H5

cd code/slake-school-wx
cp .env.development .env.development.local   # 可选,覆盖 API 地址
npm install
npm run dev:h5

浏览器打开 http://localhost:5174http://127.0.0.1:5174vite.config.ts 已设置 host: 0.0.0.0。Vite 将 /api 代理到 127.0.0.1:8000(见 vite.config.ts)。

  • 登录页在 H5 环境自动走 开发登录,无需 wx.login
  • 报名、我的课程/活动、资料、需求等需登录接口会携带 Bearer Token。

9.3 微信小程序

npm run dev:mp-weixin

微信开发者工具导入 dist/dev/mp-weixin勾选「不校验合法域名」。API 直连 VITE_MP_API_BASE(默认 http://127.0.0.1:8000/api/miniapp/v1)。

更多 API 清单见 docs/小程序UniApp开发方案.md §8。