Shopware 6.4.17.2更新后陷入维护模式且恢复页面报错求助
解决Shopware 6.4.17.2升级后维护提示及Recovery更新页面错误
一、处理全站维护提示问题
- 检查项目根目录的
.env文件,确认APP_ENV值为prod,若为maintenance则修改为prod - 打开
config/packages/shopware.yaml,将shopware.maintenance配置项设为false - 执行命令清除缓存:
bin/console cache:clear --env=prod(服务器需支持SSH命令行操作)
二、修复Recovery更新页面的TypeError错误
错误源于Container.php第41行trim()函数接收了布尔值而非字符串,按以下步骤修复:
- 定位到文件
shop/vendor/shopware/recovery/Update/src/DependencyInjection/Container.php的第41行,查看被trim()处理的变量(通常是环境变量读取结果) - 检查
.env文件中对应变量(如APP_SECRET)是否存在且为有效字符串,若缺失则补充或修正 - 临时兼容修复:将目标代码改为强制转换字符串,例如把
trim(getenv('APP_SECRET'))修改为trim((string)getenv('APP_SECRET')),避免布尔值传入trim()
三、兜底:数据库强制关闭维护模式
若上述方法无效,直接操作数据库:
- 登录Shopware对应的数据库,找到
system_config表 - 查找
key字段值为core.maintenance.maintenance的记录,将value字段改为"false"(注意为带双引号的JSON格式字符串) - 删除服务器上
var/cache/prod目录下的所有缓存文件
四、检查文件权限
- 确保
var/、public/目录及子目录归属正确,执行命令:chown -R www-data:www-data var public(根据服务器实际运行用户调整) - 验证
vendor/目录文件完整性,若升级过程中权限不足导致文件损坏,可重新执行composer install(需备份当前配置)
内容的提问来源于stack exchange,提问作者user2511599
相关产品推荐
相关产品推荐

