在上次尝试 Magento 2 / Adobe Commerce 安装新主题 失败之后。我对 Magento 2 安装新主题充满了恐惧 😱。其实根本问题是 PHP 大版本发布太快,向下兼容性做的又不好,很容易出现直接导致整站挂掉的情况。
但是主题还得安装,今天尝试一下 breeze evolution 的安装。官方地址:
https://commercemarketplace.adobe.com/swissup-breeze-evolution.html
从里面的 release notes 看,从 2.1.1 版本支持了 Magento 2.4.6 及 PHP 8.2。(昨天看新闻 PHP 8.4 也已经发布了,完全不感冒了)
Magento 2.4.6 and PHP 8.2 compatibility added.
备份
吸取上次失败的教训,提前对数据库和相关目录进行备份。
- 备份数据库
- 备份目录 app 和 pub (但经此一役,我觉得如果是没有 PHP composer 经验的非程序员, 建议将这个项目目录做备份。因为你很难搞到很多奇葩的 composer 依赖错误)
安装
由于是采用 docker 部署的 magento,所以进入 docker compose 配置目录:
make fpm_bin
cd magento2/
设置 adobe 的 key,以安装官方市场里的主题:
cp auth.json.sample auth.json
vim auth.json
使用 composer 安装 breeze evolution 主题:
composer require swissup/breeze-evolution
或者指定版本:
composer require swissup/breeze-evolution:2.2.0
各种诡异的报错
然后不出意外,出意外了:
Install of swissup/module-rtl failed
[Exception]
Higher matching version 2.3.1 of swissup/theme-frontend-breeze-evolution was found in public repository packagist.org than 2.3.0 in private https://repo.magento.com. Public package might've been taken over by a malicious entity,
please investigate and update package requirement to match the version from the private repository
参考:
https://magento.stackexchange.com/questions/344418/m2-4-exception-throwing-while-executing-composer-require-higher-matching-versio
添加 no plugins 参数解决:
composer require swissup/breeze-evolution:2.2.0 --no-plugins
网站崩了😱 后台报错
你以为安装不报错了,就算完成了么?太天真!
现在轮到网站直接挂掉!!!
Warning: require(=vendor/composer/../swissup/module-breeze/registration.php): Failed to open stream: No such file or directory in =vendor/composer/autoload_real.php on line 78
Fatal error: Uncaught Error: Failed opening required 'vendor/composer/../swissup/module-breeze/registration.php'
慌乱中,我准备通过 composer remove 来干掉这个主题,然而,并没有什么用。
进入 vendor/swissup/module-breeze/ 目录,你会发现,确实没有 registration.php 文件。而这个库的 github 项目中,则确实是有的。 不知道哪里出了问题,所以干脆,把这个目录备份,然后重新 git clone。(因为本质上 composer 就是到处 git clone 不同依赖库的代码)
vendor/swissup# git clone https://github.com/breezefront/module-breeze.git
这个错误消失。但是还会迎来新的崩溃原因,同样方式解决:
vendor/swissup# git clone https://github.com/breezefront/theme-frontend-breeze-blank.git
更新数据库
bin/magento setup:upgrade --safe-mode=1
这样就能在 magento 后台看到主题了。启用之后,就正常了。。。
参考:
https://github.com/breezefront/breeze-evolution
真折腾,浪费生命。
下面是记录的另一种行不通的方式,请忽略
composer require swissup/module-marketplace &&\
bin/magento setup:upgrade --safe-mode=1 &&\
bin/magento marketplace:channel:enable magento
Nothing to import.
Media files stored outside of 'Media Gallery Allowed' folders will not be available to the media gallery.
Please refer to Developer Guide for more details.
bash: : command not found
Warning: Module "gd" is already loaded in Unknown on line 0
There are no commands defined in the "marketplace:channel" namespace.
bin/magento marketplace:package:require swissup/breeze-evolution &&\
bin/magento marketplace:package:install swissup/breeze-evolution
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式