magento 2.x 打补丁教程

打补丁务必在开发版本进行,不要直接在生产环节撸,打补丁有可能会破坏系统导致bug,要在开发版本测试好。

补丁最终的目的就是替换某些有问题的源代码。

M2里修补程序分为三种:

  • 修补程序-Magento在Magento安全中心上发布的补丁。
  • 单独的补丁程序-Magento支持人员单独创建和分发的补丁程序
  • 自定义补丁-您可以从git commit创建的非官方补丁。

一般我们只需要用Magento官方安全中心发布的修补程序即可,其他2种是更细的情况。

 

一,命令行方式

1,去Magento Security Center 下载你需要的补丁文件下来。传到你服务器项目的根目录。

2,服务器安装`patch`命令

比如ubuntu是

sudo apt-get update -y
sudo apt-get install -y patch

 

3,执行打补丁命令

patch < patch_file_name.patch

如果命令行显示:File to patch:,则意味着即使路径看起来正确,也无法找到目标文件。在命令行终端显示的框中,第一行显示要修补的文件。复制文件路径并将其粘贴到File to patch:提示中,然后按Enter,即可

4,去后台清magento缓存

 

二,composer方式

1,先给项目安装composer-patches库

composer require cweagans/composer-patches

2,编辑composer.json文件,添加类似如下的补丁信息

"extra": {
    "composer-exit-on-patch-failure": true,
    "patches": {
        "magento/module-payment": {
            "MAGETWO-56934: Checkout page freezes when ordering with Authorize.net with invalid credit card": "patches/composer/github-issue-6474.diff"
        }
    }
}
  • Module: "magento/module-payment"
  • Title: "MAGETWO-56934: Checkout page freezes when ordering with Authorize.net with invalid credit card"
  • Path to patch: "patches/composer/github-issue-6474.diff"

这些信息是最开始的单独的补丁程序自定义补丁,需要你去magento github里找。

3,安装激活补丁程序,-v表示输出调试信息

composer -v install

composer会自动下载安装补丁程序

4,更新composer.lock文件。锁定文件跟踪哪些补丁已应用于对象中的每个Composer软件包。

composer update --lock

5,去后台清magento缓存

 

参考

https://devdocs.magento.com/guides/v2.4/comp-mgr/patching.html

 

 

 

 

发表评论