Як застосувати патчі Magento 2?


12

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

Як я можу застосувати * .patch файли?


чи можете ви допомогти мені, як знайти потрібні патчі для встановлення для даної версії Magento. Чи є якийсь інструмент, який ви використовуєте для їх пошуку? чи ми повинні відвідати magento.com для отримання інформації про виправлення?
Кальян Чакраварті V

Я шукав кращу практику застосування цих патчів на установці Magento 2 Composer. У цьому Artikel я розмістив, як ми Patch Magento Source. medium.com/@LarsRoettig/…
Lars Roettig

Відповіді:


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 root є каталог патчів / композиторів, де ми посилаємось на них, а в розділі "Додатки / патчі" ми розповідаємо, який модуль Magento виправити.

За іронією долі я знайшов цю посаду, коли дивився, як це робиться лише для того, щоб знайти наше рішення вже на місці нашого початкового постачальника.


5

Якщо у вашому оточенні встановлено git, просто скопіюйте наступну копію виправлення на кореневій папці magento.

Потім використовуйте:

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

1
що робити, якщо папка постачальника не зберігається як частина сховища git? Чи це не просто виправлення основних файлів безпосередньо?
дчайка

2

Якщо хтось робить це через Composer, є безкоштовний модуль, ви можете встановити його, що дозволяє встановлювати виправлення із кліпу.

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

  • Можливі попередження та помилки :

попередження: постачальник / магент / модуль-електронна пошта / Модель / FileName.php має тип 100755, очікується 100644

Вищевказані кошти попередження про те , що permissionsв FileName.php є 755хоча очікуваний permissionsє 644.

Якщо ви застосуєте файл патча двічі, ви отримаєте повідомлення про помилку, подібне до:

помилка: помилка виправлення: постачальник / magento / модуль-електронна пошта / Модель / 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


Чи маєте ви якусь ідею, як видалити останній застосувати патч?
Дахук Мітеш
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.