ARTICLE · 1109828
白黎挪车 v1.3.9 独立版安装部署教程
教程说明
这篇是手把手部署教程,从买服务器一直讲到小程序上线。全程只需要「会用宝塔面板」这个前置技能,不需要懂 PHP。
如果你还没了解这套程序是干什么的,先看:
白黎挪车 v1.3.9 独立版:把微擎模块彻底剥离成独立 PHP,附完整源码分享
先看这个流程图,心里有个整体概念:
① 准备服务器和域名(宝塔 + Nginx + PHP 7.4)↓② 创建站点 + 数据库↓③ 上传后端源码到站点根目录↓④ 浏览器运行 install.php 完成安装↓⑤ 删除 install.php,登录后台↓⑥ 修改小程序后端地址 + AppID↓⑦ 微信开发者工具编译上传↓⑧ 配置服务器域名 + 提交审核↓⑨ 上线、贴码、跑起来
一、准备工作
1.1 你需要准备什么
| 必须已备案 | ||
💡 关于备案:这是唯一一个无法跳过的硬门槛。微信小程序要求请求域名必须是 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 | ||
mbstring | ||
fileinfo | ||
zip |
前四个没装,程序一定跑不起来。如果列表里没有,点「安装」等一会儿即可。
⚠️ 顺便看一眼「禁用函数」列表,如果里面有
putenv、proc_open、pcntl_signal,建议移除。一般不影响,但如果遇到报错可以优先怀疑这里。
二、创建站点和数据库
登录宝塔面板,左侧菜单点 网站 → 添加站点 填写:
- 域名
:填你的域名,比如 car.example.com - 根目录
:保持默认(一般是 /www/wwwroot/car.example.com) - FTP
:不需要,选「不创建」 - 数据库
:选 MySQL,这一步一定要创建 - PHP 版本
:选 7.4
点提交。创建成功后会弹窗显示数据库信息,立刻记下来:
数据库名:car_example_com用户名: car_example_com密码: xxxxxxxxxxxx
🔴 重要:这个密码只显示一次,关掉弹窗就看不到了。如果忘了,可以在「数据库」菜单里点「改密码」重设。
- 开启 HTTPS
(微信小程序强制要求)网站 → 你的站点 → 设置 → SSL → Let’s Encrypt → 勾选域名 → 申请。免费证书,几分钟搞定。申请成功后打开「强制 HTTPS」开关。
三、上传后端源码
3.1 上传
打开本地解压好的源码包,进入 独立版 文件夹 宝塔:网站 → 你的站点 → 点根目录路径进入 文件管理 点「上传」,把 独立版文件夹里的所有内容选上一起上传
🔴 最常见的错误:把「独立版」这个文件夹整体拖进去,结果变成
/www/wwwroot/你的域名/独立版/index.php正确的结果应该是直接看到:
/www/wwwroot/你的域名/index.php、core/、addons/、web/
如果上传后发现多了一层,把里面的文件全部剪切到上一层,然后删掉空的 独立版 文件夹。
关于上传方式:如果文件多、网速慢,推荐先把 独立版 打包成 zip 上传,然后在宝塔里右键「解压」。注意解压时选择解压到根目录,别又多一层目录。
3.2 设置权限
上传完成后,在文件管理里:
全选站点根目录所有文件 → 右键 → 权限 权限设为:所有者 www,目录755,文件644勾选「应用到子目录」,确定
四、运行安装向导
浏览器访问:
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.phphttps://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 用微信开发者工具打开
下载安装「微信开发者工具」(选稳定版) 打开 → 导入项目 - 目录
:选择源码包里的 wxapp文件夹 - AppID
:填你自己的 后端服务选「不使用云服务」
打开后,先在 详情 → 本地设置 里勾选:
✅ 不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书
这是本地调试用的。正式发布前必须关掉它并配好服务器域名(下一步)。
5.4 配置服务器域名(正式发布必须)
微信公众平台 → 开发管理 → 开发设置 → 服务器域名,把你的域名加进去(都要 https://):
https://你的域名 | |
https://你的域名 | |
https://你的域名 |
💡 关于
getLocation/getFuzzyLocation:这套程序用的是getFuzzyLocation(模糊定位),需要在公众平台「接口设置」里申请开通,并且要在「用户隐私保护指引」里声明收集位置信息。这两个都要做,否则定位功能不可用。
5.5 编译上传
开发者工具点「编译」,真机预览看看功能是否正常 没问题就点右上角「上传」,填版本号(如 1.0.0)和备注微信公众平台 → 版本管理 → 找到刚上传的版本 → 提交审核
审核通常 1~3 天。
⚠️ 审核提醒:审核员会走一遍「拒绝授权」的路径。这套程序已经处理过——登录页有「暂不登录,先看看」按钮,点返回键也不会反复弹授权页。如果收到「登录规范不合规」的驳回,先确认你上传的是 v1.3.9 或更新版本。
六、后台基本配置
后台地址 https://你的域名/web/index.php,用安装时设的账号密码登录。
进 参数设置,按需配置:
6.1 必配项
💡 订阅消息模板字段:填写模板 ID 后,程序会自动调微信接口拉取模板的真实字段并智能匹配。后台的「模板字段顺序」推荐留空,程序会自动处理。
ℹ️ 关于「腾讯地图 Key」:后台参数设置里没有这一项——原版程序把「地图相关」设置面板隐藏了(模板里带 display:none),不是你漏看了。不配置也能正常用:扫码挪车通知里的「位置」会显示为「附近」,其余功能不受影响。想显示真实地址的话,去腾讯位置服务免费申请一个 Key(WebServiceAPI 类型),然后二选一:
- 放出隐藏面板
:编辑 addons/liuer_car/template/settings.html,删掉「地图相关」面板<div class="panel panel-default">上的style="display: none;",上传后删data/tpl/下的缓存文件刷新,后台就会出现这个输入框; - 改内置默认值
:编辑 addons/liuer_car/module.php,搜索FMXBZ,把那一行的默认 Key 换成自己的。
6.2 通知通道(二选一,也可以都配)
短信通道
虚拟号平台(隐私号外呼)
| 模拟绑定,不真实外呼 |
💡 不配也能跑:短信通道没配时,程序会自动降级 —— 路人扫码后会看到一段文案,复制后用自己的手机发短信给车主。功能可用,只是体验差一些。
另外说明:微信订阅消息的额度是不可查询的,只能从发送返回码反推。所以短信通道作为兜底是有必要的。
6.3 其他可选项
- 后台字体
:不喜欢默认字体可以切换(微软雅黑 / 系统默认 / 黑体 / 宋体 / 楷体) - 挪车码外观
:圆形小程序码、成品图样式 - 精选商品
:接微信小店带货,需要先在小店后台把小程序绑为「合作账号」
七、常见问题排查
Q1:访问 install.php 显示 500 错误
排查顺序:
PHP 扩展是否装全(重点看 pdo_mysql、curl、gd)站点根目录权限是否正确(所有者 www,755/644)看错误日志:宝塔 → 网站 → 你的站点 → 日志 → 看 error.log
如果是 500 且日志里没有明显信息,把 PHP 的 display_errors 打开再看一次。
Q2:安装完后台白屏 / 打不开
先试这个:删除站点根 data/tpl/ 目录下的所有 *.tpl.php 文件,然后刷新。
这是模板编译缓存。改过模板之后如果没清缓存,可能加载到旧的编译结果。
Q3:小程序提示「request 合法域名校验失败」
两个检查点:
微信公众平台 → 开发管理 → 服务器域名,是否配了你的域名 siteinfo.js的 siteroot是否是https://你的域名/app/index.php
Q4:小程序所有接口都失败 / 一直转圈
八成是 siteroot 写错了。 对照 5.1 节的格式要求逐字检查:
必须是 https://(不能用 http)必须以 /app/index.php结尾不能有多余的问号、斜杠
Q5:挪车码生成失败
后台的 AppID 和 AppSecret 是否配好 这个小程序是否至少发布过一个版本(未发布的小程序调用生成码接口会失败) 服务器 curl扩展是否正常(curl不通就没法调微信接口)
Q6:挪车通知发不出去
- 订阅消息
:额度由微信控制且不可查询,用户每授权一次可用一次。让车主在「我的」页点一下「开启微信挪车通知」累积授权。 - 短信
:检查短信通道配置、余额、模板是否审核通过。 两个都不通时,前端会走客户端降级(让路人自己发)。
Q7:定位不准 / 显示不了地址
腾讯地图 Key 是否启用(不启用时通知里位置显示「附近」,这是正常降级,见 6.1 说明) 微信公众平台是否开通了「getFuzzyLocation」接口权限 「用户隐私保护指引」里是否声明了收集位置信息
第 2、3 项缺一不可,否则小程序端拿不到定位;第 1 项只影响通知里的地址文字。
Q8:想换域名
改 wxapp/siteinfo.js的siteroot,重新编译上传小程序微信公众平台更新服务器域名 如果换了小程序 AppID,后台也要同步改
Q9:改了后台模板不生效
删除站点根 data/tpl/ 目录下的 *.tpl.php 缓存文件,刷新页面会自动重新编译。
Q10:想导入原有数据(从微擎版迁移)
把原微擎站点的数据库导出 把 liuer_car_*这些表导入到你新站点的数据库如果有 config.php,参考config.sample.php手写一份,填对数据库信息
表结构和表名是完全保留的,不需要做数据转换。
八、安全加固建议
程序能跑了,上线前建议做完这几条:
✅ 删除 install.php(最容易忘,也最危险)✅ 后台用强密码,不要跟其他地方复用 ✅ 配置伪静态规则 —— 把 独立版/nginx.conf.sample的内容粘贴到宝塔 → 网站 → 设置 → 伪静态,可以禁止外部直接访问core/、data/、config.php✅ 宝塔开启「网站防火墙」 ✅ 定期备份:宝塔 → 计划任务 → 加一条「备份数据库」+「备份站点」 ✅ AppSecret、短信密钥只填在后台,不要写进任何会公开的代码或仓库 ✅ 服务器关掉不需要的端口,SSH 建议改端口 + 密钥登录
九、上线检查清单
正式对外之前,对照这张表过一遍:
功能检查
[ ] 小程序能正常打开,首页数据加载正常 [ ] 授权登录能走通,登录后「我的」页显示正常 [ ] 点「暂不登录」后能正常返回,不再反复弹授权页 ← 审核必查 [ ] 车牌 + 手机号绑定成功 [ ] 能生成挪车码,图片显示正常 [ ] 扫码能进入挪车页,能通知车主(三种方式至少通一种) [ ] 挪车记录能看到
配置检查
[ ] AppID / AppSecret 已配 [ ] (可选)腾讯地图 Key 已启用(未启用时通知位置显示「附近」) [ ] 服务器域名已在微信公众平台配置 [ ] getFuzzyLocation接口权限已申请[ ] 用户隐私保护指引已声明位置信息 [ ] 短信/虚拟号通道已配(或确认接受降级体验)
安全检查
[ ] install.php已删除[ ] 后台密码已改为强密码 [ ] 伪静态规则已配置 [ ] 备份计划任务已设置
十、写在最后
部署这套程序最难的地方其实不是技术,而是细节:siteroot 末尾的一个斜杠、表前缀动了一个字母、忘了删 install.php……这些都会导致完全不同的报错,而且报错信息往往指向不了真正的原因。
所以建议按本文顺序一步步来,每一步做完就验证一下,不要全部弄完再一起测。
如果卡在某个环节,先看第七节常见问题;还没解决的话,把具体报错信息(截图也好、文字也好)发出来,我看看能不能帮上忙。