龙兵预约按摩-同城上门家政服务预约平台-从H5到小程序到APP的一站式部署实战

详细介绍架构功能演示地址部署教程更新日志评论

一个同城家政/上门服务预约平台,支持按摩、SPA、护理等多种上门服务的在线预约。系统采用前后端分离架构,一次开发即可覆盖 H5网页、微信小程序、APP 三端,适合创业者快速搭建本地生活服务平台。

适用场景

适合本地生活服务类创业项目,包括但不限于:

  • 上门按摩/SPA预约
  • 家政保洁服务
  • 上门维修服务
  • 美甲美容上门
  • 产后护理预约

界面展示

H5页面小程序的效果与H5页面效果是一致,站长没有部署小程序属于就拿H5给大家演示了一下

后台管理页面

模块 技术栈
后端 ThinkPHP 6 + MySQL + Redis
H5前端 uni-app (Vue.js)
后台管理 Vue + Element UI
小程序/APP uni-app 跨端编译

核心功能

用户端(H5/小程序/APP):

  • 首页轮播图、服务分类、技师推荐
  • 技师详情查看、在线预约下单
  • 微信支付、订单管理、评价系统
  • 定位附近的技师、距离计算
  • 个人中心、收藏、优惠券

技师端:

  • 技师入驻申请、资料管理
  • 接单/拒单、订单处理
  • 收入统计、提现

后台管理:

  • 订单管理、技师审核
  • 服务分类管理、轮播图配置
  • 营销活动、优惠券发放
  • 财务统计、数据报表
  • 多代理分权管理

h5前端:http://sm.weimaji.com/h5/?#/

后台管理:http://sm.weimaji.com/admin

账号:admin

密码:admin123

部署方式

教程有些长包含了app和小程序的部署方式,如果用不到可以忽略部分教程。

基于宝塔面板部署,支持:

  • 一键自动适配任意域名
  • 多项目共用 Redis 缓存隔离
  • 自动替换开发环境图片地址
  • HTTPS + 微信支付完整对接
# 同城家政H5小程序 – 宝塔面板部署教程
## 一、需要准备什么
在宝塔面板安装好以下软件(版本不能错):
– **PHP 7.4**(必须 7.4,其他版本会报错)
– **MySQL 5.7**
– **Nginx**
– **Redis**(必须装,否则网站打不开)
## 二、安装宝塔和软件
### 2.1 安装宝塔面板
**CentOS:**
“`bash
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
“`
**Ubuntu / Debian:**
“`bash
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
“`
装好后终端会显示面板地址、账号、密码,记下来。
### 2.2 登录宝塔,安装软件
登录宝塔面板,弹出环境选择窗口时选 **LNMP**:
– Nginx 1.20 或 1.24
– MySQL 5.7
– PHP **7.4**(千万别选错版本)
– phpMyAdmin
点「一键安装」,等装完。
### 2.3 安装 Redis
1. 宝塔左侧「软件商店」
2. 搜 `Redis`
3. 点「安装」,版本选 6.x 或 7.x 都行
4. 装完点「启动」
## 三、创建网站
1. 宝塔左侧「网站」→「添加站点」
2. 填写:
-**域名**:填你的域名(如 `www.weimaji.com`),没域名填服务器IP
-**根目录**:默认就行
-**PHP版本**:选 `PHP-7.4`
-**数据库**:选 MySQL,记下自动生成的数据库名、账号、密码
## 四、上传源码
### 4.1 上传文件
1. 宝塔左侧「文件」
2. 进入网站目录 `/www/wwwroot/你的域名/`
3. 删掉默认的 `index.html`、`404.html`
4. 点「上传」,把部署包 `source/` 目录里**所有文件**上传上去
### 4.2 设置文件所有者
1. 右键网站根目录 →「权限」
2. 所有者改 `www`
3. 权限 `755`
4. 勾选「应用于子目录」
5. 确定
### 4.3 创建 runtime 三个子文件夹
网站根目录下有个 `runtime` 文件夹,进去后**手动新建三个文件夹**:
– `log`
– `cache`
– `session`
三个文件夹都右键设置权限 `755`,所有者 `www`。
## 五、导入数据库
1. 把部署包里的 `database/dj_banli_xyz.sql` 上传到服务器
2. 宝塔左侧「数据库」
3. 找到你创建的数据库,点「导入」
4. 选 `dj_banli_xyz.sql` 文件
5. 点「导入」
如果导入失败,可以用 phpMyAdmin 导入(宝塔 → 数据库 → phpMyAdmin)。
## 六、修改 .env 文件(最重要!)
### 6.1 找到 .env 文件
`.env` 是隐藏文件,宝塔文件管理器默认看不到。
**解决方法**:宝塔文件管理器右上角「设置」→ 勾选「显示隐藏文件」,就能看到 `.env` 了。
或者上传 `env.example.txt`,重命名为 `.env`。
### 6.2 修改 .env
右键 `.env` → 编辑,改成你的实际信息:
“`ini
APP_DEBUG = false
DEV_MODE = false
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai
[DATABASE]
TYPE = mysql
HOSTNAME = “127.0.0.1”
DATABASE = “你的数据库名”
USERNAME = “你的数据库账号”
PASSWORD = “你的数据库密码”
HOSTPORT = 3306
CHARSET = utf8mb4
DEBUG = false
PREFIX = ims_
[LANG]
default_lang = zh-cn
[CACHE]
driver = redis
host = 127.0.0.1
passwd =
prefix = longyiyi_
expire = 0
select = 1
[SESSION]
NAME = longyiyiSession
TYPE = redis
EXPIRE = 3600
PREFIX = longyiyiSession_
[log]
channel = file
“`
### 6.3 必须改对的几个地方
| 配置项 | 改成什么 |
|——–|———|
| `DATABASE` | 你创建的数据库名 |
| `USERNAME` | 你的数据库账号 |
| `PASSWORD` | **你的数据库密码(一定要对!)** |
| `HOSTNAME` | `127.0.0.1`(不能写 mysql) |
| `[CACHE] host` | `127.0.0.1`(不能写 redis) |
| `[CACHE] passwd` | 空着(Redis没设密码就空着) |
**注意**:数据库密码一定要和宝塔数据库里的密码完全一致!忘了的话,宝塔→数据库→重置密码。
## 七、安装 PHP 扩展
1. 宝塔左侧「软件商店」→「已安装」
2. 找到 `PHP-7.4`,点「设置」
3. 点「安装扩展」
4. **必须安装的扩展**:
-**redis**(最关键!不装网站会500错误)
– gd
– bcmath
– intl
– soap
– pdo_mysql
– mysqli
– zip
– curl
– mbstring
– gettext
– pcntl
– sysvmsg
– sysvsem
– sysvshm
5. 推荐安装:opcache(加速)
### 7.1 删除禁用函数
1. `PHP-7.4` →「设置」→「禁用函数」
2. 删除以下函数(有的话):
-`putenv`
-`proc_open`
-`pcntl_signal`
-`pcntl_alarm`
-`pcntl_fork`
-`shell_exec`
-`symlink`
## 八、配置网站
### 8.1 设置运行目录
1. 宝塔「网站」→ 你的站点 →「设置」
2. 点「网站目录」
3. **运行目录**选 `/public`
4. 保存
### 8.2 配置伪静态
1. 站点「设置」→「伪静态」
2. 粘贴以下内容:
“`nginx
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
# 后台管理 JS 文件禁止缓存
location ~* ^/static/js/ {
add_header Cache-Control “no-store, no-cache, must-revalidate”;
add_header Pragma “no-cache”;
expires off;
}
# H5 静态资源
location /h5/ {
try_files $uri $uri/ /h5/index.html;
}
# H5 index.html 禁止缓存
location = /h5/ {
add_header Cache-Control “no-store, no-cache, must-revalidate”;
add_header Pragma “no-cache”;
try_files $uri /h5/index.html;
}
location ~* ^/h5/index\.html$ {
add_header Cache-Control “no-store, no-cache, must-revalidate”;
add_header Pragma “no-cache”;
}
“`
3. 保存
### 8.3 修改 PHP 上传限制
`PHP-7.4` →「设置」→「配置修改」:
| 参数 | 改成 |
|——|—–|
| upload_max_filesize | 100M |
| post_max_size | 100M |
| memory_limit | 512M |
| max_execution_time | 300 |
## 九、设置目录权限
宝塔「文件」管理器,进入网站根目录:
1. 右键 `runtime` → 权限 `755`,所有者 `www`,应用于子目录
2. 右键 `public` → 同上
3. `public` 目录里如果没有 `attachment` 文件夹,新建一个 → 同上
## 十、重启 PHP
**改完所有配置后,一定要重启 PHP!**
宝塔 → 软件商店 → PHP-7.4 → 重启
## 十一、访问网站
### 11.1 后台管理
浏览器打开:`http://你的域名/admin`
– **账号**:`admin`
– **密码**:`admin123`
### 11.2 H5 移动端
浏览器打开:`http://你的域名/h5/`
建议手机访问或微信扫码。
## 十二、常见问题
### Q1:网站打不开,500 错误
**按顺序检查**:
1. **数据库密码对不对**(最常见原因)
– 宝塔 → 数据库 → 看实际密码
– 改 `.env` 里的 `PASSWORD`
– 重启 PHP
2. **Redis 装了没?启动了没?**
– 宝塔 → 软件商店 → 看 Redis 是否运行中
3. **PHP redis 扩展装了没?**
– PHP-7.4 → 安装扩展 → 看 redis 有没有勾选
4. **runtime 三个子文件夹建了没?**
-`runtime/log`、`runtime/cache`、`runtime/session`
5. **直接访问接口看错误**
– 先把 `.env` 里 `APP_DEBUG` 改成 `true`
– 浏览器访问:`http://你的域名/index.php?i=666&m=longbing_massages_city&s=massage/app/Index/configInfo&urls=massage/app/Index/configInfo`
– 页面会显示具体错误信息
– 看完改回 `APP_DEBUG = false`
### Q2:API 报错 “php_network_getaddresses” 或 “Name or service not known”
**原因**:`.env` 里数据库或 Redis 地址写成了 `mysql` 或 `redis`。
**解决**:改成 `127.0.0.1`:
“`ini
[DATABASE]
HOSTNAME = “127.0.0.1”
[CACHE]
host = 127.0.0.1
“`
### Q3:控制台报 open_basedir restriction 错误
**错误信息**:
“`
PHP Warning: file_exists(): open_basedir restriction in effect.
“`
**解决**:部署包已修复。说明你上传的是旧版文件,重新上传部署包里的 `config/cache.php` 和 `config/database.php`,然后重启 PHP。
### Q4:控制台报 SWOOLE_PROCESS 未定义常量错误
**错误信息**:
“`
PHP Warning: Use of undefined constant SWOOLE_PROCESS
“`
**解决**:部署包已修复。重新上传部署包里的 `config/swoole.php`,重启 PHP。
### Q5:图片显示不出来,URL 是 localhost:8088
**解决**:部署包已修复。重新上传 `app/BaseController.php`,重启 PHP。
这个文件会自动把图片 URL 里的 `localhost` 或 `127.0.0.1` 替换成你当前访问的域名,换域名部署也不用改数据库。
### Q6:后台管理打不开 / 空白
**解决**:
1. 强制刷新浏览器:`Ctrl+Shift+R`(Windows)或 `Cmd+Shift+R`(Mac)
2. 或用无痕模式打开
### Q7:H5 页面白屏
**检查**:
1. `public/h5/` 目录有文件吗?
2. 伪静态配置里有没有 H5 的 location 规则?
3. 重启 Nginx:宝塔 → 软件商店 → Nginx → 重启
### Q8:图片上传失败
**解决**:建一个文件夹 `public/attachment`,权限 755,所有者 www。
### Q9:多个项目要用同一个 Redis 怎么办?
一个 Redis 可以给 16 个项目用。每个项目在 `.env` 里设置不同的 `select` 值就行:
| 项目 | .env 里 select 的值 |
|——|———————|
| 项目A(本项目) | `select = 1` |
| 项目B | `select = 2` |
| 项目C | `select = 3` |
| 其他项目 | 4-15 依次用 |
本项目默认用 1 号数据库,再加上 key 前缀 `longyiyi_`,不会和其他项目冲突。
### Q10:控制台报 layer.css / laydate.css / clipboard.min.js 404
**这些报错不影响功能,可以忽略**:
– `clipboard.min.js` 报错:Chrome 浏览器扩展引起,用无痕模式就看不到
– `layer.css` / `laydate.css` 404:弹窗样式文件,不影响核心功能
## 十三、重要提醒
1. **改完 PHP 文件一定要重启 PHP-7.4**,否则修改不生效
2. **登录后台后马上改 admin 默认密码**
3. **`.env` 里 `APP_DEBUG` 保持 `false`**,不要开调试模式
4. **删除服务器上的诊断文件**(如 `diagnose.php`),避免泄露信息
## 十四、换域名怎么办?
**什么都不用改!**
部署包已全面支持任意域名自动适配:
– 后台管理:自动用当前域名
– H5 端:相对路径,自动适配
– 后端 API:自动获取当前域名
– 数据库里的图片 URL:自动把 `localhost`/`127.0.0.1` 替换成当前域名
**唯一可能需要改的地方**:微信小程序/APP 的 API 地址,或微信公众号的 JS 安全域名设置。
## 十五、微信小程序和 APP
本项目前端基于 uni-app 开发,需要用 HBuilderX 打包发布。
**部署包只包含已编译的 H5 和后端 PHP**,小程序/APP 的 uni-app 源码是独立工程,需要单独获取。
### 15.1 配置小程序
1. 注册微信小程序,获取 AppID 和 AppSecret
2. 登录后台管理 →「系统」→「基础设置」→ 填入 AppID 和 AppSecret
3. 微信公众平台 →「开发管理」→「服务器域名」→ 填 `https://你的域名`
4. HBuilderX 打开 uni-app 工程,填 AppID,改 API 地址为 `https://你的域名/index.php`
5. HBuilderX →「运行」→ 微信开发者工具 → 上传 → 提交审核
### 15.2 配置微信支付
1. 申请微信支付商户号
2. 微信支付商户平台 → 设置 API 密钥(32位)
3. 下载证书 `apiclient_cert.pem` 和 `apiclient_key.pem`
4. 后台管理 →「系统」→「支付配置」→ 填商户号、密钥,上传证书
### 15.3 开启 HTTPS(小程序和APP必须)
1. 宝塔 → 网站 → 设置 → SSL
2. 选 Let’s Encrypt 免费证书
3. 点「申请」
4. 开启「强制HTTPS」
## 十六、备份
### 16.1 自动备份(推荐)
1. 宝塔 → 计划任务 → 添加任务
2. 类型:备份网站
3. 选你的网站
4. 周期:每天
5. 保留份数:7份
### 16.2 手动备份
宝塔 → 数据库 → 点数据库名 → 备份

v1.1.0 – 2026-08-16

核心按摩预约模块

  • 技师管理:技师资料、工作照、个人照片、服务项目、排班时间、上下班管理
  • 服务项目:服务分类、服务详情、价格设置、上下架、图文介绍
  • 订单系统:预约下单、在线支付、订单状态流转、订单评价
  • 技师收藏:用户可收藏喜欢的技师
  • 评价系统:服务评分、评价标签、评论列表
  • 屏蔽功能:用户可屏蔽不感兴趣的技师
  • 城市定位:基于城市筛选技师、地图定位技师位置

商城系统模块

  • 商品管理:商品列表、分类、上下架
  • 购物车:加入购物车、结算
  • 订单管理:商品订单、售后退款
  • 优惠券:领券、用券、优惠券记录
  • 分销系统:分销商品、收入管理

门店管理模块

  • 门店列表:多门店管理
  • 门店服务:门店关联技师与服务
  • 到店/上门:支持到店服务和上门服务两种模式

代理商/合伙人模块

  • 代理商管理:代理商账号、权限分配
  • 合伙人系统:合伙人分成、收益管理
  • 渠道分销:渠道商管理、分销佣金
  • 业务员管理:业务员推广、业绩统计

财务管理模块

  • 收入管理:技师收入、代理商收入、平台收入
  • 提现系统:余额提现、提现审核
  • 充值系统:余额充值、充值订单
  • 佣金结算:订单佣金、自定义佣金规则

用户中心模块

  • 个人信息:用户资料、头像昵称
  • 名片系统:创建个人名片、名片切换
  • 地址管理:收货地址列表
  • 订单管理:我的订单、售后订单

内容运营模块

  • 资讯动态:动态发布、资讯列表
  • 文章管理:文章发布、文章列表
  • 轮播图:首页banner配置
  • 推荐系统:智能推荐技师与服务

营销推广模块

  • 优惠券:满减券、折扣券
  • 短信通知:短信验证码、订单通知
  • 分享裂变:分享赚钱、邀请好友

地图与定位模块

  • 地图展示:技师位置地图展示
  • 城市切换:多城市服务支持
  • 附近技师:基于位置查找附近技师

电子签约模块(fdd)

  • 法大大对接:电子合同签署
  • 实名认证:身份验证

后台管理系统

  • 多角色权限:超级管理员、代理商、合伙人、业务员
  • 数据统计:订单统计、收入统计、用户统计
  • 配置管理:系统配置、支付配置、短信配置
  • DIY装修:自定义首页布局、组件拖拽

v1.0.0 – 初始版本

  • 基于 ThinkPHP 8.x 框架
  • 项目模块:longbing_massages_city(龙兵预约按摩)
  • 版本号:massages_city_167
  • 包含功能模块:按摩预约、商城、门店管理、地图定位、电子签约、动态资讯等
评论 抢沙发

请登录后发表评论

    暂无评论内容

龙兵预约按摩-同城上门家政服务预约平台-从H5到小程序到APP的一站式部署实战-微码集市
龙兵预约按摩-同城上门家政服务预约平台-从H5到小程序到APP的一站式部署实战
此内容为免费资源,请登录后查看
0
免费资源
已售 240
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享