夜雨聆风学习资料网

ARTICLE · 1109828

白黎挪车 v1.3.9 独立版安装部署教程

白黎挪车 v1.3.9 独立版安装部署教程

教程说明

这篇是手把手部署教程,从买服务器一直讲到小程序上线。全程只需要「会用宝塔面板」这个前置技能,不需要懂 PHP。

如果你还没了解这套程序是干什么的,先看:

白黎挪车 v1.3.9 独立版:把微擎模块彻底剥离成独立 PHP,附完整源码分享

先看这个流程图,心里有个整体概念:

① 准备服务器和域名(宝塔 + Nginx + PHP 7.4)        ↓② 创建站点 + 数据库        ↓③ 上传后端源码到站点根目录        ↓④ 浏览器运行 install.php 完成安装        ↓⑤ 删除 install.php,登录后台        ↓⑥ 修改小程序后端地址 + AppID        ↓⑦ 微信开发者工具编译上传        ↓⑧ 配置服务器域名 + 提交审核        ↓⑨ 上线、贴码、跑起来

一、准备工作

1.1 你需要准备什么

项目
说明
大概成本
服务器
1核2G 起步就够,装宝塔面板
云服务器促销价约 100~300元/年
域名
必须已备案
(微信小程序要求),且配好 HTTPS
域名约 50元/年,SSL 证书可用免费的
小程序账号
微信公众平台注册,个人/企业主体都可
免费(个人主体也能用)
MySQL 数据库
建站时一起创建
随服务器

💡 关于备案:这是唯一一个无法跳过的硬门槛。微信小程序要求请求域名必须是 HTTPS 且域名已备案,个人备案一般 7~20 天。如果域名还没备案,建议先去提交,备案期间可以先做本地调试。

1.2 服务器环境要求

推荐配置:宝塔面板 + Nginx + PHP 7.4 + MySQL 5.7/8.0

PHP 版本说明:推荐 7.4,兼容 5.6 ~ 8.0。不支持 PHP 8.1 及以上(部分废弃语法会有问题)。

1.3 PHP 扩展检查(很重要)

宝塔面板 → 软件商店 → 已安装 → 找到 PHP 7.4 → 点 设置 → 安装扩展,确认以下扩展是已安装状态:

扩展
用途
重要性
pdo_mysql
数据库连接
必须
curl
微信接口 / 短信 / 虚拟号
必须
gd
生成二维码、合成挪车码图片
必须
openssl
HTTPS、微信 AES 解密
必须
mbstring
中文字符处理
建议
fileinfo
上传文件类型检测
建议
zip
手机号 AES 解密备用
建议

前四个没装,程序一定跑不起来。如果列表里没有,点「安装」等一会儿即可。

⚠️ 顺便看一眼「禁用函数」列表,如果里面有 putenv、proc_open、pcntl_signal,建议移除。一般不影响,但如果遇到报错可以优先怀疑这里。

二、创建站点和数据库

  1. 登录宝塔面板,左侧菜单点 网站 → 添加站点
  2. 填写:
  • 域名
    :填你的域名,比如 car.example.com
  • 根目录
    :保持默认(一般是 /www/wwwroot/car.example.com)
  • FTP
    :不需要,选「不创建」
  • 数据库
    :选 MySQL,这一步一定要创建
  • PHP 版本
    :选 7.4
  1. 点提交。创建成功后会弹窗显示数据库信息,立刻记下来:
数据库名:car_example_com用户名:  car_example_com密码:    xxxxxxxxxxxx

🔴 重要:这个密码只显示一次,关掉弹窗就看不到了。如果忘了,可以在「数据库」菜单里点「改密码」重设。

  1. 开启 HTTPS
    (微信小程序强制要求)网站 → 你的站点 → 设置 → SSL → Let’s Encrypt → 勾选域名 → 申请。免费证书,几分钟搞定。申请成功后打开「强制 HTTPS」开关。

三、上传后端源码

3.1 上传

  1. 打开本地解压好的源码包,进入 独立版 文件夹
  2. 宝塔:网站 → 你的站点 → 点根目录路径进入 文件管理
  3. 点「上传」,把 独立版文件夹里的所有内容选上一起上传

🔴 最常见的错误:把「独立版」这个文件夹整体拖进去,结果变成/www/wwwroot/你的域名/独立版/index.php

正确的结果应该是直接看到:/www/wwwroot/你的域名/index.php、core/、addons/、web/

如果上传后发现多了一层,把里面的文件全部剪切到上一层,然后删掉空的 独立版 文件夹。

关于上传方式:如果文件多、网速慢,推荐先把 独立版 打包成 zip 上传,然后在宝塔里右键「解压」。注意解压时选择解压到根目录,别又多一层目录。

3.2 设置权限

上传完成后,在文件管理里:

  1. 全选站点根目录所有文件 → 右键 → 权限
  2. 权限设为:所有者 www,目录 755,文件 644
  3. 勾选「应用到子目录」,确定

四、运行安装向导

浏览器访问:

https://你的域名/install.php

第 1 步:环境检查

安装向导会先检查 PHP 版本和扩展。如果这一页有红色❌,回到第一步装扩展,装完刷新重试。

第 2 步:填写数据库信息

字段
填什么
数据库地址
127.0.0.1
(宝塔一般是本机)
端口
3306
数据库名
第二步记下的数据库名
用户名
第二步记下的用户名
密码
第二步记下的密码
表前缀
保持 liuer_car_ 不要改

⚠️ 表前缀千万别改。程序内部表名(liuer_car_codes 等)已经自带这个前缀,改了会读不到数据。

第 3 步:填写小程序信息

填你的 AppID 和 AppSecret(微信公众平台 → 开发管理 → 开发设置里找)。

💡 这里可以先留空,装完在后台补填。但生成小程序码、发订阅消息必须配好才能用。

第 4 步:站点与管理员

填站点名称和后台登录账号密码。

🔴 密码不要用 admin / 123456 这种。这个后台能管理所有车主数据和短信额度,被撞库后果很严重。建议用「大小写字母 + 数字 + 符号」12 位以上。

点「开始安装」,看到「安装完成」就成功了。

第 5 步:立刻删除 install.php ⚠️

这一步千万别忘。

安装完成后,回到宝塔文件管理,删掉站点根目录的 install.php。

不删的后果:任何人都能访问 你的域名/install.php 重新跑一遍安装,直接覆盖你的数据库和管理员密码。

删除后,后台地址是:

https://你的域名/web/index.php

五、配置并上传小程序端

5.1 改后端地址(最关键的一步)

用编辑器打开 wxapp/siteinfo.js,找到这一行:

siteroot: "https://你的域名/app/index.php",

改成你自己的域名。格式要求非常严格:

✅ 正确:

https://car.example.com/app/index.php

❌ 常见错误:

https://car.example.com                      ← 少了 /app/index.php https://car.example.com/app/index.php?       ← 末尾多了问号 https://car.example.com/app/index.php/       ← 末尾多了斜杠 https://car.example.com/app                  ← 少了 /index.php

这是小程序连接后端的唯一配置,写错的话所有接口都会失败,而报错信息通常只是「网络请求失败」,很难定位到是这里的问题。

5.2 改 AppID

打开 wxapp/project.config.json,把 appid 改成你自己的:

"appid": "wx你的AppID"

5.3 用微信开发者工具打开

  1. 下载安装「微信开发者工具」(选稳定版)
  2. 打开 → 导入项目
  3. 目录
    :选择源码包里的 wxapp 文件夹
  4. AppID
    :填你自己的
  5. 后端服务选「不使用云服务」

打开后,先在 详情 → 本地设置 里勾选:

✅ 不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书

这是本地调试用的。正式发布前必须关掉它并配好服务器域名(下一步)。

5.4 配置服务器域名(正式发布必须)

微信公众平台 → 开发管理 → 开发设置 → 服务器域名,把你的域名加进去(都要 https://):

类型
填什么
request 合法域名
https://你的域名
uploadFile 合法域名
https://你的域名
downloadFile 合法域名
https://你的域名

💡 关于 getLocation / getFuzzyLocation:这套程序用的是 getFuzzyLocation(模糊定位),需要在公众平台「接口设置」里申请开通,并且要在「用户隐私保护指引」里声明收集位置信息。这两个都要做,否则定位功能不可用。

5.5 编译上传

  1. 开发者工具点「编译」,真机预览看看功能是否正常
  2. 没问题就点右上角「上传」,填版本号(如 1.0.0)和备注
  3. 微信公众平台 → 版本管理 → 找到刚上传的版本 → 提交审核

审核通常 1~3 天。

⚠️ 审核提醒:审核员会走一遍「拒绝授权」的路径。这套程序已经处理过——登录页有「暂不登录,先看看」按钮,点返回键也不会反复弹授权页。如果收到「登录规范不合规」的驳回,先确认你上传的是 v1.3.9 或更新版本。

六、后台基本配置

后台地址 https://你的域名/web/index.php,用安装时设的账号密码登录。

进 参数设置,按需配置:

6.1 必配项

配置
在哪申请
说明
小程序 AppID / AppSecret
微信公众平台
不配则无法生成小程序码、发订阅消息
订阅消息模板 ID
微信公众平台 → 订阅消息
车主能收到微信挪车通知

💡 订阅消息模板字段:填写模板 ID 后,程序会自动调微信接口拉取模板的真实字段并智能匹配。后台的「模板字段顺序」推荐留空,程序会自动处理。

ℹ️ 关于「腾讯地图 Key」:后台参数设置里没有这一项——原版程序把「地图相关」设置面板隐藏了(模板里带 display:none),不是你漏看了。不配置也能正常用:扫码挪车通知里的「位置」会显示为「附近」,其余功能不受影响。想显示真实地址的话,去腾讯位置服务免费申请一个 Key(WebServiceAPI 类型),然后二选一:

  1. 放出隐藏面板
    :编辑 addons/liuer_car/template/settings.html,删掉「地图相关」面板 <div class="panel panel-default"> 上的 style="display: none;",上传后删 data/tpl/ 下的缓存文件刷新,后台就会出现这个输入框;
  2. 改内置默认值
    :编辑 addons/liuer_car/module.php,搜索 FMXBZ,把那一行的默认 Key 换成自己的。

6.2 通知通道(二选一,也可以都配)

短信通道

通道
说明
腾讯云短信
需配置 SecretId / SecretKey / SDK AppID / 签名 / 模板 ID
互亿无线
需配置账号 APIID / APIKEY

虚拟号平台(隐私号外呼)

平台
说明
华为云
需配置对应密钥
通用 HTTP 接口
有自建隐私号服务时用
测试模式
模拟绑定,不真实外呼
,调试用

💡 不配也能跑:短信通道没配时,程序会自动降级 —— 路人扫码后会看到一段文案,复制后用自己的手机发短信给车主。功能可用,只是体验差一些。

另外说明:微信订阅消息的额度是不可查询的,只能从发送返回码反推。所以短信通道作为兜底是有必要的。

6.3 其他可选项

  • 后台字体
    :不喜欢默认字体可以切换(微软雅黑 / 系统默认 / 黑体 / 宋体 / 楷体)
  • 挪车码外观
    :圆形小程序码、成品图样式
  • 精选商品
    :接微信小店带货,需要先在小店后台把小程序绑为「合作账号」

七、常见问题排查

Q1:访问 install.php 显示 500 错误

排查顺序:

  1. PHP 扩展是否装全(重点看 pdo_mysql、curl、gd)
  2. 站点根目录权限是否正确(所有者 www,755/644)
  3. 看错误日志:宝塔 → 网站 → 你的站点 → 日志 → 看 error.log

如果是 500 且日志里没有明显信息,把 PHP 的 display_errors 打开再看一次。

Q2:安装完后台白屏 / 打不开

先试这个:删除站点根 data/tpl/ 目录下的所有 *.tpl.php 文件,然后刷新。

这是模板编译缓存。改过模板之后如果没清缓存,可能加载到旧的编译结果。

Q3:小程序提示「request 合法域名校验失败」

两个检查点:

  1. 微信公众平台 → 开发管理 → 服务器域名,是否配了你的域名
  2. siteinfo.js
     的 siteroot 是否是 https://你的域名/app/index.php

Q4:小程序所有接口都失败 / 一直转圈

八成是 siteroot 写错了。 对照 5.1 节的格式要求逐字检查:

  • 必须是 https://(不能用 http)
  • 必须以 /app/index.php 结尾
  • 不能有多余的问号、斜杠

Q5:挪车码生成失败

  1. 后台的 AppID 和 AppSecret 是否配好
  2. 这个小程序是否至少发布过一个版本(未发布的小程序调用生成码接口会失败)
  3. 服务器 curl 扩展是否正常(curl 不通就没法调微信接口)

Q6:挪车通知发不出去

  • 订阅消息
    :额度由微信控制且不可查询,用户每授权一次可用一次。让车主在「我的」页点一下「开启微信挪车通知」累积授权。
  • 短信
    :检查短信通道配置、余额、模板是否审核通过。
  • 两个都不通时,前端会走客户端降级(让路人自己发)。

Q7:定位不准 / 显示不了地址

  1. 腾讯地图 Key 是否启用(不启用时通知里位置显示「附近」,这是正常降级,见 6.1 说明)
  2. 微信公众平台是否开通了「getFuzzyLocation」接口权限
  3. 「用户隐私保护指引」里是否声明了收集位置信息

第 2、3 项缺一不可,否则小程序端拿不到定位;第 1 项只影响通知里的地址文字。

Q8:想换域名

  1. 改 wxapp/siteinfo.js 的 siteroot,重新编译上传小程序
  2. 微信公众平台更新服务器域名
  3. 如果换了小程序 AppID,后台也要同步改

Q9:改了后台模板不生效

删除站点根 data/tpl/ 目录下的 *.tpl.php 缓存文件,刷新页面会自动重新编译。

Q10:想导入原有数据(从微擎版迁移)

  1. 把原微擎站点的数据库导出
  2. 把 liuer_car_* 这些表导入到你新站点的数据库
  3. 如果有 config.php,参考 config.sample.php 手写一份,填对数据库信息

表结构和表名是完全保留的,不需要做数据转换。

八、安全加固建议

程序能跑了,上线前建议做完这几条:

  1. ✅ 删除 install.php(最容易忘,也最危险)
  2. ✅ 后台用强密码,不要跟其他地方复用
  3. ✅ 配置伪静态规则 —— 把 独立版/nginx.conf.sample 的内容粘贴到宝塔 → 网站 → 设置 → 伪静态,可以禁止外部直接访问 core/、data/、config.php
  4. ✅ 宝塔开启「网站防火墙」
  5. ✅ 定期备份:宝塔 → 计划任务 → 加一条「备份数据库」+「备份站点」
  6. ✅ AppSecret、短信密钥只填在后台,不要写进任何会公开的代码或仓库
  7. ✅ 服务器关掉不需要的端口,SSH 建议改端口 + 密钥登录

九、上线检查清单

正式对外之前,对照这张表过一遍:

功能检查

  • [ ] 小程序能正常打开,首页数据加载正常
  • [ ] 授权登录能走通,登录后「我的」页显示正常
  • [ ] 点「暂不登录」后能正常返回,不再反复弹授权页 ← 审核必查
  • [ ] 车牌 + 手机号绑定成功
  • [ ] 能生成挪车码,图片显示正常
  • [ ] 扫码能进入挪车页,能通知车主(三种方式至少通一种)
  • [ ] 挪车记录能看到

配置检查

  • [ ] AppID / AppSecret 已配
  • [ ] (可选)腾讯地图 Key 已启用(未启用时通知位置显示「附近」)
  • [ ] 服务器域名已在微信公众平台配置
  • [ ] getFuzzyLocation 接口权限已申请
  • [ ] 用户隐私保护指引已声明位置信息
  • [ ] 短信/虚拟号通道已配(或确认接受降级体验)

安全检查

  • [ ] install.php 已删除
  • [ ] 后台密码已改为强密码
  • [ ] 伪静态规则已配置
  • [ ] 备份计划任务已设置

十、写在最后

部署这套程序最难的地方其实不是技术,而是细节:siteroot 末尾的一个斜杠、表前缀动了一个字母、忘了删 install.php……这些都会导致完全不同的报错,而且报错信息往往指向不了真正的原因。

所以建议按本文顺序一步步来,每一步做完就验证一下,不要全部弄完再一起测。

如果卡在某个环节,先看第七节常见问题;还没解决的话,把具体报错信息(截图也好、文字也好)发出来,我看看能不能帮上忙。

相关学习资料