Shopware 6 从克隆到上线:一条命令跑通开发环境

Shopware 6 从克隆到上线:一条命令跑通开发环境

【免费下载链接】shopwareShopware 6 is an open commerce platform based on Symfony Framework and Vue and supported by a worldwide community and more than 3.100 community extensions项目地址: https://gitcode.com/GitHub_Trending/sh/shopware

Shopware 6 是一个基于 Symfony 7 和 Vue.js 3 的开源电商平台:商品、订单、促销、结算整套流程开箱即用,背后 3100 多个社区扩展按需拼装。适合想拥有完整商城、而不是自己拼积木的开发者。本文带你从零把 Shopware 6 装起来、配好并推向线上。

先核对一下手头的工具版本

这张表列出 Shopware 6 对运行环境的基本要求,装之前就照此核对。

项目最低版本备注
PHP8.2官方依赖声明支持 8.2–8.5,开发容器自带 8.4
数据库MariaDB 10.11+ / MySQL 8.0+开发环境默认使用 MariaDB
Web 服务器Caddy / Nginx 1.18+容器方案内置 Caddy
Node.js18+官方开发容器使用 Node 24,前端构建依赖它
Docker + Compose2.x最短路径方案的前提

为什么卡在这个版本:Shopware 6 的核心 API 用了 8.2 之后的语言特性,而前端资源由 Vite 工具链编译,Node 太旧会在编译阶段直接报错。

🐳 用容器拉起整套开发环境

这一章的目标:不装任何本地运行时,只用容器让 Shopware 6 跑起来。仓库根目录自带的 compose.yaml 已经把 web、MariaDB、OpenSearch、Valkey 缓存、Mailpit 邮件收件箱全部配好,四步走完。

git clone https://gitcode.com/GitHub_Trending/sh/shopware cd shopware docker compose up -d docker compose exec web composer setup
  • docker compose up -d后台启动全部服务,web 容器把仓库目录挂载为工作目录,宿主机改动即时生效;
  • composer setup是一条全量安装脚本,内部依次执行composer install -o、init:db(建库并安装 Shopware)、init:js(安装前端依赖)、build:js(编译前后端资源)、最后theme:change --sync --all Storefront激活默认主题;
  • 成功的标志:http://localhost:8000打开店铺首页,http://localhost:8000/admin进入后台,http://localhost:8025能看到 Mailpit 收件箱,http://localhost:9080是数据库管理面板 Adminer。

进后台的默认账号是admin/shopware,改密码之前先记好它。

不用容器:手动装一遍,看清每个环节

不想把一切交给容器?这一章按"拿代码 → 配环境 → 装依赖 → 初始化"的顺序手动走一遍,装完你对 Shopware 6 的启动过程就有数了。

仓库已经在你手里,先把环境文件配好。仓库没有预置.env,变量取值可以参考 compose.yaml 里web服务的那一段:

cat > .env <<'EOF' APP_ENV=dev APP_URL=http://localhost:8000 DATABASE_URL="mysql://root:root@127.0.0.1:3306/shopware?serverVersion=8.0" MAILER_DSN=smtp://127.0.0.1:1025 OPENSEARCH_URL=http://127.0.0.1:9200 EOF

这五个变量分别管环境、访问地址、数据库连接、邮件通道和商品搜索,其余项可以保持默认。数据库连接不通时所有后续命令都会卡住,所以先确认库服务已启动、账号密码能对上。

代码就位后,装 PHP 依赖:

composer install -o

接着初始化数据库。Shopware 的安装命令是system:install,仓库的composer init:db脚本就是它的封装,完整安装会再跑数据库迁移、配置商店、刷新索引、注册定时任务、刷新插件,最后编译主题:

bin/console system:install --drop-database --basic-setup --force --no-assign-theme

--basic-setup会顺手创建admin/shopware管理员和默认商店渠道;--drop-database --force则是重跑安装时用来清掉旧库和安装锁的。

再装前端依赖。管理后台和店铺前端各有一份package.json,仓库的composer init:js会对它们和验收测试目录分别执行clean-install,等价于:

cd src/Administration/Resources/app/administration && npm ci && cd - cd src/Storefront/Resources/app/storefront && npm ci && cd -

最后把前端资源编译成可发布的静态文件:

composer build:js

这一步会先后构建管理后台(含 TypeScript 类型生成)和店铺前端(含theme:compile主题编译)。全部结束后跑一次bin/console system:check,全绿就手动装通了。

装好之后先接上缓存、邮件与搜索

装完别急着建商品,先把这三项配置落实,后面的开发体验会顺很多。

  • 邮件通道:变量MAILER_DSN。开发环境指向 Mailpit 就能在http://localhost:8025里截住所有邮件,订单通知、找回密码都看得见;生产环境换成真实 SMTP。
  • 商品搜索:变量OPENSEARCH_URL与ADMIN_OPENSEARCH_URL。搜索索引建在 OpenSearch 里,不接的话前台搜索和后台部分列表会明显变慢。
  • 缓存与会话:compose 文件里的 Valkey 服务就是 Redis 的替代品,会话和对象缓存落到内存里,能大幅减少重复的数据库查询。

⚙️ 按场景往下做

跑通只是起点。下面三个场景覆盖你大概率会碰到的三件事,每个都给一个最小可用的起点。

把性能瓶颈找出来

想知道某个页面慢在哪,用仓库自带的基准脚本对比改动前后的耗时:

composer phpbench

它执行phpbench run --report=compressed,输出压缩后的各场景基准数据。更进一步可以挂剖析器做请求级分析,仓库的 ADR 文档里放了一张 Tideways 火焰图,能清楚看到一次结算页请求里购物车、促销、运费各占多少时间:

把店铺前端改成自己的样子

店铺页面由 Twig 模板加 SCSS 构成,主题体系是定制入口:

bin/console theme:create YourTheme bin/console theme:change --all YourTheme

日常开发开composer watch:storefront起热更新服务,改 SCSS 和 Twig 立即生效;发布前用theme:compile重新编译。页面内容由 CMS 的原生区块搭建,机制说明见 native-block-system 的 ADR。

把第三方支付服务商接进来

对接支付前先弄清两条流程:同步支付(卡类,当场出结果)和异步支付(跳转类,靠回跳加异步通知确认结果)。异步流程的时序如下:

图里 Storefront 创建订单后把客户端数据转给 StoreAPI,StoreAPI 向支付服务商(PSP)发起支付并拿回跳转链接;用户被 PSP 送回后,客户端落到订单完成页。你的扩展要实现的就是Handle Payment这一段。

上线前逐项打勾

部署到生产环境前,按顺序过一遍这张清单,每项后面就是对应的验证命令。

检查项验证命令
系统健康检查全绿bin/console system:check
前端资源已编译composer build:js
默认主题已激活并编译bin/console theme:change --all --sync Storefront
缓存已清理,避免旧产物干扰bin/console cache:clear
依赖安全审计无高危composer audit
错误日志无 ERROR 级条目grep -R "ERROR" var/log/

⚡ 踩坑速查

装 Shopware 6 最容易卡住的五个地方,按"症状 → 常见原因 → 处理方式"列在这里。

提示install.lock already exists装不动→ 上次安装已经留下锁文件 → 删掉项目根目录的install.lock,或给system:install加--force。

system:install报数据库连接失败→DATABASE_URL里的地址、账号或端口和实际服务对不上 → 先用同一条 DSN 手动连一次库,确认服务在监听、权限足够再重跑安装。

前台打开是一片空白→ JS 资源没有编译,或页面在走开发服务器 → 先跑composer build:js;开发模式则确认对应 watcher 进程还在运行。

搜索框什么都搜不到→ OpenSearch 没接,或索引没建 → 核对OPENSEARCH_URL,连上后执行bin/console dal:refresh:index。

/admin提示账号密码错误→ 没有用--basic-setup安装,后台不存在admin账号 → 手动执行bin/console user:create --admin创建管理员。

Shopware 6 装完只是个骨架,把支付、邮件和搜索接上、把演示数据换成自己的商品,它才开始像一家真实的店。下一步就打开http://localhost:8000/admin,把商店名字改成你自己的。

【免费下载链接】shopwareShopware 6 is an open commerce platform based on Symfony Framework and Vue and supported by a worldwide community and more than 3.100 community extensions项目地址: https://gitcode.com/GitHub_Trending/sh/shopware

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Open Quantum Safe 后量子密码库 liboqs 上手指南:构建、示例与 TLS 接入

Open Quantum Safe 后量子密码库 liboqs 上手指南:构建、示例与 TLS 接入

Open Quantum Safe 后量子密码库 liboqs 上手指南:构建、示例与 TLS 接入 【免费下载链接】liboqs C library for prototyping and experimenting with quantum-resistant cryptography 项目地址: https://gitcode.com/GitHub_Trending/li/liboqs NIST 在 2024 年陆续发…

2026/10/20 10:39:22 阅读更多 →
Frappe LMS 多语言配置指南:让平台界面跟着学员的语言走

Frappe LMS 多语言配置指南:让平台界面跟着学员的语言走

Frappe LMS 多语言配置指南&#xff1a;让平台界面跟着学员的语言走 【免费下载链接】lms Easy to Use, 100% Open Source Learning Management System 项目地址: https://gitcode.com/GitHub_Trending/lms1/lms 场景&#xff1a;满屏英文的界面&#xff0c;留不住海外学…

2026/10/20 10:39:22 阅读更多 →
AutoDL 4090上Qwen2.5-7B微调实战:LLaMA-Factory与LoRA全流程解析

AutoDL 4090上Qwen2.5-7B微调实战:LLaMA-Factory与LoRA全流程解析

简介&#xff1a;面向有一定机器学习基础的研究人员与开发者&#xff0c;这是一份基于Qwen2.5-7B-Instruct的大模型微调实战指南&#xff0c;重点解决在AutoDL平台独立部署并微调大模型的完整流程问题&#xff0c;适合自然语言处理任务优化、模型性能提升等实际项目。内容涵盖环…

2026/10/20 10:38:22 阅读更多 →

最新新闻

大模型竞赛加速下,国产AI新一轮更新的关键与开发者避坑指南

大模型竞赛加速下,国产AI新一轮更新的关键与开发者避坑指南

1. 大模型竞赛的节奏为什么突然变了过去一年多&#xff0c;我一直在跟踪各类大模型的迭代节奏&#xff0c;从最早的季度更新&#xff0c;到后来一个月一版&#xff0c;再到现在几乎每周都有新动作。这个加速不是错觉&#xff0c;而是整个行业进入了一个新的竞争阶段。以前大家比…

2026/10/20 16:22:55 阅读更多 →
OpenCvSharp实战:C#图像处理从Mat到Bitmap的转换与边缘检测

OpenCvSharp实战:C#图像处理从Mat到Bitmap的转换与边缘检测

简介&#xff1a;这是基于OpenCvSharp开发的C#图片显示控件Demo&#xff0c;面向需要在WinForms或WPF中集成OpenCV图像处理的开发者。控件支持图片显示、任意缩放、鼠标位置与各颜色通道信息实时获取&#xff0c;并内置圆、点、线、矩形绘制能力&#xff0c;UI可交互调整形状大…

2026/10/20 16:22:55 阅读更多 →
从堆模块到做减法:Agent架构重构实战复盘

从堆模块到做减法:Agent架构重构实战复盘

1. 从“堆模块”到“做减法”&#xff1a;一次架构重构的完整复盘做Agent这一年来&#xff0c;我最大的感受就是&#xff1a;这个领域太容易让人产生“加东西就能变强”的幻觉了。每次效果不好&#xff0c;第一反应就是“是不是缺个记忆模块”“是不是该加个规划器”“要不要再…

2026/10/20 16:22:55 阅读更多 →
AI辅助开发如何催生开源设计工具全家桶:技术路径与实操分析

AI辅助开发如何催生开源设计工具全家桶:技术路径与实操分析

1. 当“全家桶”遇上开源&#xff1a;一个让设计师集体失眠的传闻前几天在一个设计群里&#xff0c;有人甩了张截图&#xff0c;配文是“Adobe 全家桶被人用 AI 搞了套开源免费版”。群里瞬间炸锅&#xff0c;有人喊“终于等到这一天”&#xff0c;有人质疑“又是标题党”&…

2026/10/20 16:22:55 阅读更多 →
Unity透明窗口桌面精灵:Win32 API实现点击穿透与动画跳动

Unity透明窗口桌面精灵:Win32 API实现点击穿透与动画跳动

简介&#xff1a;一套基于Unity引擎的桌面精灵完整工程与配套脚本&#xff0c;面向希望实现类似QQ宠物透明桌面角色的Unity开发者。工程围绕窗口无边界设置、透明渲染、界面布局、动画控制及鼠标事件处理等关键技术展开&#xff0c;并涉及系统接口调用与跨平台兼容处理&#xf…

2026/10/20 16:22:55 阅读更多 →
多模态RAG工作流实战:从图文混排文档到精准问答

多模态RAG工作流实战:从图文混排文档到精准问答

把一份几十页的产品手册、一堆扫描合同、几十页会议 PPT&#xff0c;以及同事随手拍的白板照片&#xff0c;全部丢进同一个知识库&#xff0c;然后让问答系统不仅能引用里面的话&#xff0c;还能看懂流程图、表格和截图里的关键信息&#xff0c;最后给出带页码和出处依据的回答…

2026/10/20 16:21:54 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →