一、前言
在之前的系列文章中,我写了 LikeShop 多商户版的部署配置、数据迁移和权限体系。这一篇回到单商户标准版,把宝塔一键部署和小程序对接的完整流程走一遍。
单商户标准版的部署和高级版、多商户版有一个关键区别:PHP 版本要求是 7.2~7.4,推荐 7.2,和高级版的 PHP 8.0 完全不同。用错版本会直接导致安装失败或运行时报错。除此之外,单商户标准版的部署流程相对简单,宝塔的一键部署功能可以省去大部分手动配置。
这篇文章按照实际部署顺序,把环境准备、一键部署、数据库配置、运行目录与伪静态、小程序对接和常见问题排查完整拆开讲清楚。
二、部署前的环境准备
2.1 运行软件版本选择
在宝塔面板的「软件商店」中安装以下软件:
| 软件 | 版本要求 |
|---|---|
| Nginx 或 Apache | 不限制 |
| PHP | 7.2~7.4,推荐 7.2 |
| MySQL | 5.7,推荐 5.7 |
官方特别提示:使用推荐的版本,可减少兼容性导致的问题,避免不必要的环境报错。
2.2 PHP 扩展检查
安装 PHP 7.2 后,进入「设置」→「安装扩展」,确认以下扩展已启用:
- fileinfo:安装环境检测会检查这个扩展
- redis:建议一并安装,用于缓存
- opcache:生产环境建议开启,提升 PHP 执行效率
如果安装时提示扩展未通过,在 PHP 设置的扩展安装页面找到对应扩展点击安装即可。
2.3 源码包准备
从 Gitee 下载 LikeShop 单商户标准版源码包,地址是https://gitee.com/likeshop_gitee/likeshop。下载完成后,如果压缩包不是 zip 格式的,需要解压后重新打包成 zip 格式,否则宝塔的一键部署功能无法识别。
三、宝塔一键部署实战
3.1 一键部署操作步骤
在宝塔面板的「软件商店」→「一键部署」→「导入项目」中,上传 zip 包,按提示填写域名和数据库信息,点击「提交」即可自动完成部署。
操作流程如下:
第一步:点击「软件商店」→「一键部署」→「导入项目」,选择下载好的 zip 文件包。
第二步:点击列表中的「一键部署」,填写部署的域名,按产品填写其它信息,点击「提交」。
第三步:复制并保存系统显示的信息(数据库名、用户名、密码等),下一步安装程序时需要用到。
第四步:打开上一步显示的访问站点,进入安装界面。
3.2 安装程序配置
进入安装界面后,按以下步骤操作:
阅读许可协议:点击「我已阅读并同意」。
环境监测:检查 PHP 版本、扩展、目录权限。如果没有通过,按要求调整后点击「继续」。
- 目录权限问题:一般设置为 www 用户即可,如果不行,给目录 777 权限
- 隐藏文件缺失:很多人会把项目解压后重新打包,遗漏了隐藏文件,按提示创建文件即可
- PHP 扩展缺失:点击「软件商店」→ 找到对应 PHP 版本 →「设置」→「安装扩展」
填写数据库信息:填写数据库名、用户名、密码,以及超级管理员的账号密码。点击「继续」后如果安装报错,请仔细检查信息是否填写正确。
3.3 sql-mode 配置
如果安装提示“请在 mysql 配置文件修改 sql-mode 添加 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”,需要在 MySQL 配置文件中修改后重启 MySQL。
在宝塔的「软件商店」→「MySQL 5.7」→「设置」→「配置修改」中,找到sql-mode行,修改为:
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION修改后重启 MySQL 服务。注意上面的配置已经去掉了ONLY_FULL_GROUP_BY,这是关键。
安装成功后,点击「进入管理平台」,即可进入管理后台。
四、运行目录与伪静态配置
虽然一键部署会自动配置运行目录和伪静态,但了解这些配置的原理有助于排查问题。
4.1 运行目录
单商户标准版的运行目录必须指向server/public。在宝塔中进入站点设置 →「网站目录」→「运行目录」,选择server/public。
4.2 伪静态规则
如果一键部署后部分页面出现 404,检查伪静态规则是否正确。LikeShop 的标准伪静态规则是:
location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; } }注意s=/$1中间有一个斜杠,这是关键。在宝塔中配置后,必须点击「重载 Nginx」——只保存不重载,规则不会立即生效。
4.3 HTTPS 证书部署
如果项目准备上线小程序,需要使用 HTTPS 证书。宝塔配置 HTTPS 证书比较方便:
回到网站列表,选择设置,点击「SSL」→「Let‘s Encrypt」,选上选项,点击「申请」即可。申请成功后关闭窗口,就可以使用 HTTPS 访问网站了。
五、小程序对接
5.1 小程序配置的重要性
官方文档明确说明:小程序配置一定要配置,否则可能会造成「微信登录」「微信支付」等功能无法使用。
5.2 配置小程序 ID 和密钥
打开并登录微信小程序官网后台(https://mp.weixin.qq.com/),点击「开发管理」→「开发设置」,分别复制 AppID(小程序ID)和 AppSecret(小程序密钥)。
关于 IP 白名单:可以不设置 IP 白名单,如果设置了 IP 白名单,要填写服务器的正确 IP 地址。
打开并登录商城后台,进入「渠道」→「小程序设置」,填写从微信小程序官网后台复制的 AppID 和 AppSecret,然后点击确定保存。
5.3 配置服务器域名
在商城后台的「渠道」→「小程序设置」中,找到服务器域名,分别复制以下域名:
- request 合法域名
- socket 合法域名
- uploadFile 合法域名
- downloadFile 合法域名
- udp 合法域名
- tcp 合法域名
打开微信小程序官网后台,点击「开发管理」→「开发设置」→「修改」,找到服务器域名,将上述域名一一复制到对应选项中,点击「保存并提交」。
特别提醒:如果使用了对象存储 OSS 或其他图片代理域名,也需要一并添加,否则和域名相关的功能可能存在异常。
5.4 配置业务域名
如果小程序中需要通过 webview 打开非本系统链接(如导航链接),需要额外配置业务域名。
操作步骤:
第一步:在商城后台的「小程序设置」中,点击「下载校验文件」。
第二步:将校验文件上传到项目目录的server/public路径下,注意不要修改文件名称。
第三步:在微信小程序官网后台,点击「开发管理」→「开发设置」→「修改」,将业务域名复制到对应选项中,点击「保存」。
5.5 编译小程序
打开 HBuilderX 编辑器,使用「APP 开发版」。打开项目时,一定要打开uniapp目录,不要选择外层目录。
设置服务端地址:打开项目根目录,找到.env.production.example文件,创建副本后去掉.example后缀,修改其中的域名地址为服务端部署的域名地址。不要使用本地地址,修改完成后按 Ctrl+S 保存。
重新设置 DCloud AppID:第一次使用 LikeShop 时,需要重新设置 DCloud AppID,找到manifest.json文件,点击「重新获取」→「继续」。
编译与上传:打开项目的app.js目录,点击「发行」→「小程序-微信(仅适用于 uni-app)」,填写好小程序名称和 AppId,然后点击「发行」。编译完成后,点击「上传」→「确定」→「上传」小程序。
提交审核:登录微信小程序管理后台,点击「版本管理」,找到刚才发布的版本,点击「提交审核」。
六、常见问题与排查
6.1 页面 404
官方文档明确说明,404 错误主要有两个原因:1. 没有设置伪静态或者伪静态设置错误;2. 网站路径设置错误。
排查顺序:先查运行目录是否为server/public,再查伪静态规则中s=/$1的斜杠是否正确,最后确认 Nginx 已重载。
6.2 sql-mode 报错
按第 3.3 节的方法修改 MySQL 的 sql-mode 配置,重启 MySQL 后重试。
6.3 小程序编译报错
如果编译时报错“请参考官方文档在 .env 文件下配置请求域名”,说明环境变量文件没有正确配置。检查.env.production文件是否存在、域名是否正确填写、文件是否已保存。
6.4 微信登录报错
如果小程序登录报错,优先排查:
- IP 白名单:是否设置了 IP 白名单,服务器 IP 是否填写正确
- JS 安全域名:是否配置了 JS 安全域名
- 小程序配置:小程序 ID 和密钥是否填写正确
6.5 定时任务跑不起来
定时任务配置中,think文件路径必须是绝对路径,执行周期设为每分钟一次:
php /www/wwwroot/likeshop/server/thinkcrontab七、总结
LikeShop 单商户标准版的部署流程可以概括为四条线:
环境准备:PHP 7.2~7.4,推荐 7.2;MySQL 5.7;确认 fileinfo、redis、opcache 扩展已安装。
宝塔一键部署:导入 zip 包 → 填写域名和数据库信息 → 提交 → 进入安装程序 → 填写数据库信息 → 安装完成。
运行目录与伪静态:运行目录指向server/public,伪静态规则rewrite ^(.*)$ /index.php?s=/$1 last;,配置后必须重载 Nginx。
小程序对接:配置小程序 ID/密钥 → 配置服务器域名 → 配置业务域名 → 编译上传 → 提交审核。
把这四个环节的配置做对,单商户标准版就能顺利跑通。剩下的就是运营和二开的事了。