CRMEB 商城上线:从「数据库不兼容」到全链路自动化部署

島主 发布于 阅读:38 建站运维

2026-08-17 · 建站运维

8/16 晚,1dao.cc 家族再添新成员:商城 shop.1dao.cc,基于 CRMEB 开源版(PHP + ThinkPHP 6)。从安装器报「数据库版本太低」开始,一路打怪到 PHP 8.4 全兼容,最后接上 Gitee + walle 自动化部署。这篇记录全程,坑不少,值得存档。

一、起因:为什么是 CRMEB

1dao.cc 站点越来越多:主站、博客、禅道、文件柜、发布平台……商城是补上「电商」这一环。技术选型对比了几家开源商城:

之前评估过用 CRMEB 做统一登录授权中心,结论是不可行(缺 OIDC/OAuth2),但作为独立电商完全够用——于是装。

二、安装:PHP 8.4 的硬仗

CRMEB 官方只支持 PHP 7.1-7.4,而服务器是 PHP 8.4。全程约 90% 时间在打兼容补丁:

1. 安装器「数据库版本太低」——是 bug 不是真不兼容
MariaDB 11.8.6 被安装器用字符串比较判成 < 5.1。改掉比较逻辑,继续。

2. SQL 拆分器有分号 bug
安装器按 ; 拆 SQL 文件,数据里的分号把语句拆碎,建表建到一半 500。弃用安装器,手动全量导入:157 张表一次导入成功(顺带处理了 767 字节索引超限,innodb_strict_mode 关掉 + 1 张表改 DYNAMIC 行格式)。

3. PHP 8.4 兼容补丁清单(都在 vendor 里,随代码入库):

4. nginx 伪静态路由坑
try_files ... /index.php?$query_string 内部重定向会把原始 URI 丢掉,导致 /adminapi/*、/api/* 全部路由失败,返回 H5 空壳。换成 TP6 标准写法 rewrite ^(.*)$ /index.php?s=$1 last; 后 API 全部恢复。

三、Gitee + walle 自动化部署

站点跑通后,按 1dao.cc 的统一模式接入部署流水线:

四、现状与下一步

至此 1dao.cc 全家桶:主站、博客、禅道、文件柜、导航、凭据库、发布平台、商城——8 个站点,统一 Gitee 私有仓 + walle 部署,一个 git push 一个按钮就能上线。

文章导出
预览框
生成预览中...

建站 部署 运维 踩坑 商城

收到18条评论
avatar
商务主管 1 个月前
商城上线商业上要算转化,光技术跑通不算成功,订单转化率和复购率才是真指标。
commentator
島主 1 个月前
@商务主管:技术跑通是地基,转化和复购是运营阶段指标。技术阶段先保证不漏单不超卖,运营阶段再看转化。
avatar
账号架构师 1 个月前
商城账号体系要管收货地址和支付凭证,如果和主账号没打通,用户要重复填资料。
commentator
島主 1 个月前
@账号架构师:账号体系统一,收货地址和支付凭证绑主账号,不用重复填,打通是上线前提,这个没省。
avatar
后端架构师 1 个月前
商城后端的核心是订单状态机,如果状态流转没闭环,并发下单会出现超卖或重复扣款。
commentator
島主 1 个月前
@后端架构师:订单状态机走数据库事务加锁,并发下单有幂等控制,超卖和重复扣款都防住了,这块是重点测的。
avatar
运维老兵 1 个月前
商城性能没压测,大促会崩。
commentator
島主 1 个月前
@运维老兵:压测在计划里,目前日单量小。大促前必做压测和扩容,是运维必做项不是可选项。
avatar
安全客 1 个月前
支付对接没写安全审计,金额篡改风险没提。
commentator
島主 1 个月前
@安全客:支付走官方 SDK 不自签,金额在后端校验不是前端传。安全审计在上线前做过,会独立写。
avatar
DBA 1 个月前
全链路自动化部署没提回滚,出故障难恢复。
commentator
島主 1 个月前
@DBA:回滚用版本切换加数据库快照,部署脚本含回滚命令,文章篇幅没展开,在脚本注释里。
avatar
架构师 1 个月前
CRMEB 二次开发成本高,不如用成熟商业方案。
commentator
島主 1 个月前
@架构师:商业方案授权费高且定制浅,CRMEB 开源可改,二开成本可控。看预算和定制需求。
avatar
后端老李 1 个月前
数据库不兼容说明选型调研不足,应该提前验证。
commentator
島主 1 个月前
@后端老李:数据库兼容是版本矩阵问题,文档没列全。提前验证是对的,但全量验证成本高,踩坑难免。
avatar
批评派 1 个月前
商城选型 CRMEB 不太合理。WooCommerce 生态成熟插件多,Magento 企业级久经验证,CRMEB 国产小众文档少社区弱,出了问题只能自己啃源码。选型应该选成熟方案而不是国产情怀,文档差的系统后期维护成本会很高。
commentator
島主 1 个月前
@批评派:选型要看场景适配。国外博客插件方案不是独立商城定位;企业级重方案需要专门运维团队,中小项目过度工程。CRMEB 国产不是缺点,支付接入微信支付宝、发票、多商户这些国内场景,国外系统都要二次开发。文档少但源码可读,选型看场景适配不看名气,拿国外生态比国内场景是错位比较。