Как применить патчи 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


Есть ли у вас идеи, как удалить последний применивший патч?
Дхадук Митеш
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.