如何应用Magento 2补丁?


12

我使用的是Magento 2.1.6,我想应用补丁CE-MAGETWO-67805.patch

如何应用* .patch文件?


您能帮我找到如何为给定的Magento版本安装所需的补丁程序吗?您是否使用任何工具来找到它们?还是我们应该访问magento.com了解补丁程序信息?
Kalyan Chakravarthi V

我正在寻找最佳实践,以在Magento 2 Composer安装中应用这些补丁。在此Artikel中,我张贴了我们如何修补Magento来源。medium.com/@LarsRoettig/...
拉斯Roettig

Answers:


12

传统的

您可以使用传统方法:

git apply MAGEPatch-20181106.patch

要么

patch -p1 < MDVA-14172_EE_2.2.6_COMPOSER_v1.patch    

作曲家

或通过在供应商目录中修补文件来解决相同情况,此处有一篇不错的文章:http : //jamescowie.me/blog/2016/12/Composer-Magento-Patches/

我们在作曲家文件中做了类似的事情:

...
   "extra": {
        "magento-force": "override",
        "composer-exit-on-patch-failure": true,
        "patches": {
            "magento/module-cache-invalidate": {
                "GH 8815: Varnish purge requests can overrun size limit": "patches/composer/github-issue-8815.patch"
            },
        }
    }
...

在我们的Magento根目录中,我们有一个patch / composer目录,在这里我们可以引用它们。在extras / patches部分中,我们告诉它要修补的Magento模块。

具有讽刺意味的是,我在查看此操作是如何发现最初的供应商已经采用我们的解决方案时才找到了这篇文章。


5

如果您的环境中已安装git,请使用以下命令将修补程序复制到您的magento根文件夹中。

然后使用:

$ git apply MAGETWO-67805-2017-05-17-03-04-03.patch

1
如果没有将供应商文件夹保留在git存储库中怎么办?这不只是直接修补核心文件吗?
dchayka

2

如果有人通过Composer进行此操作,则可以安装一个免费模块,它允许您从cli安装补丁程序。

magento@ce87c6cc1cdf /home/magento/htdocs/$ php bin/magento patch:list
Magento Version: 2.3.0
PRODSECBUG-2198 - This patch provides protection against the SQL injection vulnerability described under PRODSECBUG-2198
More info can be found here: https://www.magentocommerce.com/products/downloads/magento/#download2288

magento@ce87c6cc1cdf /home/magento/htdocs/$ php bin/magento patch:add --patch=PRODSECBUG-2198
Patch: PRODSECBUG-2198
Message: PRODSECBUG-2198 - Added via Zero1_Patches
Magento Version: 2.3.0
SUCCESS!
The patch has been added to you composer.json
You can now run: "composer install" to apply the patch.
magento@ce87c6cc1cdf /home/magento/htdocs/$

我在Mdoq上使用它,但是它可以在任何地方使用。
有好就可以了博客文章在这里


我曾尝试向公司发送有关添加补丁程序的电子邮件,但它们的电子邮件已损坏(support@mdoq.io)。看起来他们大约一年都没有添加新补丁。这似乎是一个死项目。
njm5785

@ njm5785不是一个死项目,很抱歉我们错过了您的电子邮件。有什么可以帮忙的吗?
亚当

1
  • 下载补丁文件,并将其放置到根目录下Magento的

  • 使用以下命令设置开发人员模式

    php bin/magento deploy:mode:set developer

  • 使用以下命令应用补丁

    $ git apply CE-MAGETWO-93036-2018-07-02-07-06-53.patch

  • 可能的警告和错误,你可以得到的是:

警告:vendor / magento / module-email / Model / FileName.php的类型为100755,预期为100644

上面的警告表示permissionsFileName.php的755虽为预期permissions644

如果两次应用补丁文件,则将收到类似于以下内容的错误消息:

错误:修补程序失败:vendor / magento / module-email / Model / AbstractTemplate.php:534

错误:供应商/ magento /模块电子邮件/模型/AbstractTemplate.php:补丁不适用

可以得到上述错误或警告。

您的补丁仍成功应用。请享用 ;)


0
  1. 确保您的Magento商店在 developer mode

    php bin/magento deploy:mode:set developer

  2. 下载安全补丁

    git apply MAGETWO-67805-2017-05-17-03-04-03.patch

  3. 之后,只需运行以下命令即可应用补丁

    php bin/magento setup:upgrade


您有什么想法,如何删除最后一次应用补丁?
Dhaduk Mitesh
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.