README.md
稻城亚丁 · 项目说明与本地启动
本仓库为 三端一体:uniapp(用户端小程序/H5)、backend(ThinkPHP 8 API)、admin-web(管理后台)。
环境要求
| 端 | 需要 |
|---|---|
| 后端 | PHP 8+、Composer、pdo_mysql(php.ini 启用 extension=php_pdo_mysql)、MySQL |
| 前端 | Node.js(建议 LTS) |
数据库:在 MySQL 中执行 backend/database/install.sql 初始化表与演示数据(脚本内已含 CREATE DATABASE / USE daocheng,可按需改库名)。
1. 后端 backend(必须先启动,默认端口 9898)
与 uniapp/.env.development、admin-web 的 Vite 代理一致,后端建议监听 9898。
cd backend
copy .example.env .env
# 编辑 .env,配置 DB_HOST、DB_NAME、DB_USER、DB_PASS、DB_PREFIX=dc_ 等
composer install
php think run -p 9898
- 接口前缀:
/api/v1(小程序)、/admin/v1(管理端)。
微信小程序「微信一键登录」
若点击登录提示 未配置 AppID/Secret,请在 backend/.env 中配置(不要提交到 Git):
WECHAT_MINI_APPID = 你的小程序AppID
WECHAT_MINI_SECRET = 你的小程序AppSecret
- AppID / AppSecret 在 微信公众平台 → 开发 → 开发管理 → 开发设置 中查看;AppSecret 若未生成需先重置并保存。
- 须与微信开发者工具里该项目的 AppID 一致,保存
.env后 重启php think run。 - 不配这两项时,仍可使用登录页的 游客进入(走
client_id换票)。
2. 管理后台 admin-web
cd admin-web
npm install
npm run dev
浏览器访问:http://localhost:5174(/admin、/uploads 由 Vite 代理到 http://127.0.0.1:9898)。
默认管理员见数据库初始化脚本(如 admin / admin123,首次登录后请修改)。
3. 用户端 uniapp
cd uniapp
npm install
| 场景 | 命令 |
|---|---|
| H5 开发(浏览器) | npm run dev:h5 |
| 微信小程序 | npm run dev:mp-weixin,用微信开发者工具导入编译目录(一般为 dist/dev/mp-weixin,以终端提示为准) |
API 地址:uniapp/.env.development 中的 VITE_API_BASE_URL(默认 http://127.0.0.1:9898)。编译小程序时 Vite 会把 127.0.0.1 换成局域网 IP;若与你在 Apifox 里填的 IP 不一致(多网卡常见),请在同一文件设置 VITE_API_LAN_IP 为该机在局域网中的 IPv4,保存后重新执行 npm run dev:mp-weixin。
微信开发者工具本地调试:请在 详情 → 本地设置 勾选 不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书,否则 HTTP 或自签 HTTPS 会失败。真机体验版/正式版需 HTTPS 合法域名并在公众平台配置 request 域名。
推荐启动顺序
- MySQL 可用,已导入
backend/database/install.sql - 终端一:
backend→php think run -p 9898 - 终端二(可选):
admin-web→npm run dev - 终端三:
uniapp→npm run dev:h5或npm run dev:mp-weixin
目录结构(简要)
稻城亚丁小程序/
├── backend/ # ThinkPHP 8,API
├── admin-web/ # Vue3 + Element Plus 管理端
├── uniapp/ # uni-app 用户端(可出微信小程序/H5)
└── README.md # 本文件
Windows PHP 扩展说明
若登录或接口报数据库相关错误,在命令行执行 php --ini 找到 php.ini,确认 extension_dir 指向 ext 目录,并启用 php_pdo_mysql.dll;缺少 VC++ 运行库时需安装 Visual C++ 2015–2022 x64 再试。