Как применить патчи Magento 2?

12

Я использую Magento 2.1.6 и хочу применить патч CE-MAGETWO-67805.patch.

Как я могу применить файлы * .patch?

Рафаэль Корреа Гомес
источник
Можете ли вы помочь мне найти необходимые исправления для установки для данной версии Magento. Есть ли инструмент, который вы используете, чтобы найти их? или мы должны посетить magento.com для информации о патчах?
Калян Чакраварти,
Я искал наилучшую практику для применения этих исправлений к установке Magento 2 Composer. В этом Artikel я опубликовал, как мы исправляем Magento Source. medium.com/@LarsRoettig/…
Ларс Реттиг

Ответы:

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 у нас есть каталог patches / composer, в котором мы на них ссылаемся, а в разделе extras / patches мы сообщаем ему, какой модуль Magento нужно исправить.

По иронии судьбы я нашел этот пост, глядя на то, как это было сделано, только для того, чтобы выяснить, что наше решение уже было разработано нашим первоначальным поставщиком.

Джошуа Фрике
источник
5

Если у вас установлен git в вашей среде, просто используйте следующую копию патча в корневой папке magento.

Тогда используйте:

$ git apply MAGETWO-67805-2017-05-17-03-04-03.patch
Суреш Чикани
источник
1
Что делать, если никто не хранит папку vendor как часть git-репозитория? Разве это не просто исправляет файлы ядра напрямую?
дчайка
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

  • Возможные предупреждения и ошибки, которые вы можете получить:

предупреждение: поставщик / magento / module-email / Model / FileName.php имеет тип 100755, ожидается 100644

Вышеуказанные средства предупреждения о том , что permissionsв FileName.php являются 755хотя ожидаемый permissionsявляются 644.

Если вы примените файл исправления дважды, вы должны получить сообщение об ошибке, подобное следующему:

ошибка: исправление не удалось: vendor / magento / module-email / Model / AbstractTemplate.php: 534

ошибка: vendor / magento / module-email / Model / 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

Дивья
источник
Есть ли у вас идеи, как удалить последний применивший патч?
Дхадук Митеш