☰
Shopware 6 部署完整指南:20 分钟从零跑起你的电商平台
2026/10/20 2:06:10 网站建设 项目流程

Shopware 6 部署完整指南:20 分钟从零跑起你的电商平台

【免费下载链接】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 部署是这篇指南要解决的问题。Shopware 6 是基于 Symfony 7 与 Vue.js 3 的开源电商平台(MIT 协议),既能当一套现成的购物车用,也能作为电商框架让你构建从简单小店到复杂 B2B 系统的任意形态。本仓库当前主线为 6.7 系列(见 composer.json 中的 branch-alias),适合想自建可控电商系统的开发者、以及需要在本地完整跑起开发环境的插件开发者。

跑通之后你会同时拥有商店前台和管理后台两个界面,并能看懂数据库、缓存、邮件这几个核心配置项。

部署方式选型:三条路线怎么选

不同目标对应不同部署路线,先看这张表再动手。

路线适用场景优势取舍
Docker Compose(官方推荐)本地开发、插件开发、学习环境零配置,服务齐全(PHP、MariaDB、Valkey、OpenSearch、Mailpit),一键重置需要 Docker;容器镜像占磁盘,内存消耗较高
手动安装(PHP + Composer + Node)生产服务器、精细控制环境完全自主可控,可逐层调优PHP 8.2–8.5、Node、MariaDB 需自行对齐版本,排障成本高
Composer Flex 模板生产环境快速建站不把 platform 仓库克隆下来,Shopware 作为依赖引入,升级更干净需要按官方模板指南另行准备项目骨架

README 的 Installation 一节把 Flex 模板列为 on-premise 生产环境的首选;本仓库自带 CONTRIBUTING.md 中声明 Docker 是开发环境的推荐方式。下面以 Docker 为主线,手动安装给出可对照的最小路径。

最小可运行路径:从克隆到打开管理后台

这一节的目标很单一:用最少的命令看到第一个可用界面。

先拿到代码。仓库自带完整的开发环境编排,克隆即可:

git clone https://gitcode.com/GitHub_Trending/sh/shopware cd shopware

启动全部服务。compose.yaml里定义了 web(php8.4-node24-caddy 镜像)、database(mariadb)、valkey、opensearch、mailer 五个服务:

docker compose up -d

在 web 容器里执行一次完整初始化。composer setup会依序完成:安装 PHP 依赖、建库并安装系统、安装 JS 依赖、构建前端资源、激活 Storefront 主题(逻辑定义在 composer.json 的 scripts 里):

docker compose exec web composer setup

完成后按这个地址表验证:

界面地址
商店前台http://localhost:8000
管理后台http://localhost:8000/admin
数据库(Adminer)http://localhost:9080
邮件捕获(Mailpit)http://localhost:8025

管理后台默认账号是admin,密码shopware(--basic-setup安装流程的固定产物)。看到后台登录页,说明 Shopware 6 部署的主线已经走通。

如果你不想用 Docker,手动路径是:准备 PHP 8.2–8.5(composer.json 的 require 段写明了版本区间,且需要 pdo_mysql、gd、intl 等扩展)与 Node.js LTS,创建.env文件后依次执行:

composer install -o # 安装 PHP 依赖 bin/console system:install --basic-setup --create-database # 建库并安装 composer init:js # 安装前端依赖 composer build:js # 构建 Administration 与 Storefront

其中--basic-setup会创建前台销售通道和 admin 用户,--create-database让安装程序在库不存在时自动创建(参数定义见 SystemInstallCommand.php)。

界面跑起来只是起点,接下来看支撑它的几个核心配置。

关键配置解读:数据库、邮件与搜索

这一节按「改哪里 → 填什么 → 为什么」过一遍你真正需要动的变量。Docker 路线下这些值集中在 compose.yaml 的web服务 environment 块;手动安装则写进.env。

数据库连接(DATABASE_URL)

改哪里:compose.yaml 的DATABASE_URL或.env。 填什么:

DATABASE_URL="mysql://root:root@database/shopware" # 协议://用户:密码@主机/库名

为什么:安装程序从这里读取全部数据库凭据,决定连接哪个实例、建不建库。compose.yaml 里还配了 OpenSearch、缓存等服务地址:

OPENSEARCH_URL: http://opensearch:9200 # 全文搜索服务,可整段删除 ADMIN_OPENSEARCH_URL: http://opensearch:9200 MAILER_DSN: smtp://mailer:1025 # 邮件发往 Mailpit

邮件(MAILER_DSN)

改哪里:同上。 填什么:开发环境保持smtp://mailer:1025,指向 compose 里的 Mailpit 容器;生产环境换成真实 SMTP,如smtp://user:pass@smtp.example.com:587。 为什么:订单确认、密码重置等邮件都走这个通道,开发时 Mailpit 让你在 http://localhost:8025 直接查看发出的邮件,无需真发。

搜索(OPENSEARCH_URL)

改哪里:同上,两个变量成对出现。 填什么:OpenSearch 地址,或整段删除。 为什么:商品与后台的全文检索依赖它;不配只是失去搜索,不影响下单主流程。

缓存(CACHE_URL)

改哪里:.env(生产环境建议必配)。 填什么:CACHE_URL=redis://localhost:6379。 为什么:前台 HTTP 缓存、实体缓存都落在这层,生产环境用内存型缓存是性能优化的第一杠杆。开发环境的 compose.yaml 已内置 Valkey 容器,开箱即用。

日常维护两个高频命令:composer init:db会重建数据库并重新安装(等效system:install --drop-database --basic-setup --force),composer reset在此基础上重建全部前端资源并同步主题。环境要干净时直接用它们,不必手动删表。

前台跑通、配置看懂之后,可以开始按自己的业务做定制。

定制与扩展:主题、插件与前端开发

扩展机制分两层,先选对层级再动手。App System 适合轻量功能,只需要很少的 Shopware 内部知识;Plugin 系统适合需要直接访问数据库和内部流程的场景(README 的 Extending 一节对此有明确指引)。自研插件放入custom/plugins/,composer.json 已配置为 path 仓库符号链接,放进去即可被识别。

主题基于 Twig 模板与 SCSS,核心流程就三条命令:

bin/console theme:create YourThemeName # 创建主题骨架 bin/console theme:compile # 编译资源 bin/console theme:change --all YourThemeName --sync # 激活并同步

前端热更新用 watch 系列脚本,改动即时生效:

docker compose exec web composer watch:admin # 后台开发,http://localhost:5173 docker compose exec web composer watch:storefront # 前台开发,http://localhost:9998

定制最终要落在订单和支付上。Shopware 把支付拆成同步与异步两种流程,异步流程为网关回调预留了状态迁移,接第三方网关前先看懂这两张图:

定制完成并验证无误后,就可以按下面的清单把环境收敛到生产标准。

生产上线检查清单

上线前逐项打勾。命令均来自仓库内已验证的脚本与 console 命令,不要凭记忆输入。

  • 环境切换为生产:APP_ENV=prod、APP_DEBUG关闭,APP_SECRET已替换为自生成的随机串
  • 前端资源已编译:composer build:js(等价于分别构建 admin 与 storefront,并同步主题)
  • 缓存策略就位:CACHE_URL指向 Redis 或 Valkey,前台 HTTP 缓存启用,PHP 开启 OPcache
  • 定时任务已注册并挂 cron:先执行bin/console scheduled-task:register,再每分钟调度bin/console scheduled-task:run
  • install.lock存在:安装成功后自动生成,阻止重复安装(system:install检测到它即拒绝执行)
  • 数据库只保留业务所需用户,root 密码不对外暴露
  • 升级前通读对应版本说明(仓库内 UPGRADE-6.7.md、UPGRADE-6.8.md 等),确认无破坏性变更

性能基线用 phpbench 跑一次,先有数字再谈优化(phpbench.json已配置好测试集):

vendor/bin/phpbench run --report=compressed

Tideways 的火焰图能直接暴露耗时组件,优化时优先看热点方法而不是凭感觉:

清单全部打勾后,上线初期的问题多半集中在下面这几类。

排障速查

现象可能原因处理方式
安装反复提示已完成、拒绝执行根目录已存在 install.lock确认无误后用--force强制安装,或先删除 install.lock
数据库连接失败DATABASE_URL 主机/账号错误,或数据库容器未就绪核对 compose.yaml 的 DATABASE_URL;确认depends_on的 healthcheck 已通过
前台/后台资源 404前端未构建或构建中断重跑composer build:js,再bin/console assets:install
改前端代码不生效直接访问了 8000 端口的生产构建开发走 5173(admin)/ 9998(storefront)watch 端点
邮件收不到MAILER_DSN 未指向可用 SMTP开发环境确认 Mailpit 容器在跑,浏览器访问 8025 端口查看
后台白屏、样式丢失缓存或主题未同步bin/console cache:clear后bin/console theme:compile --sync
页面整体偏慢未启用 OPcache / Redis 缓存按生产清单逐项核对,用 phpbench 定位热点
npm 构建报错Node 版本不匹配对齐 .nvmrc(lts/*)与容器镜像的 node24,重建 node_modules

问题排完、站点稳定之后,顺着仓库内的文档继续深入会快得多。

进阶方向

  • 贡献与开发规范:CONTRIBUTING.md 完整覆盖 Docker 开发、PHPStorm 配置与常用命令速查表
  • 编码规范:coding-guidelines/ 分 Administration 与 Core 两个目录
  • 架构决策:adr/ 收录了支付流程、缓存策略、消息队列等关键设计的历史决策
  • 版本演进:根目录 CHANGELOG.md 与 UPGRADE-*.md 按版本记录了变更与升级注意事项
  • 扩展开发:App System 与 Plugin 体系的差异和入门路径见 README 的 Extending Shopware 一节,官方开发者文档在 developer.shopware.com

把docker compose up -d和composer setup敲下去,二十分钟后你的 Shopware 6 就会在 8000 端口等你登录。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询