Wie wende ich die Magento 2-Patches an?

11

Ich verwende Magento 2.1.6 und möchte den Patch anwenden CE-MAGETWO-67805.patch.

Wie kann ich die * .patch-Dateien anwenden?

Rafael Corrêa Gomes
quelle
Können Sie mir bitte helfen, die erforderlichen Patches für eine bestimmte Magento-Version zu finden? Gibt es ein Tool, mit dem Sie sie finden? oder sollten wir magento.com besuchen, um Informationen zu Patches zu erhalten?
Kalyan Chakravarthi V
Ich suchte nach bewährten Methoden, um diese Patches auf eine Magento 2 Composer-Installation anzuwenden. In diesem Artikel habe ich gepostet, wie wir Magento Source patchen. medium.com/@LarsRoettig/…
Lars Roettig

Antworten:

11

Traditionell

Sie können die traditionelle Methode verwenden:

git apply MAGEPatch-20181106.patch

oder

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

Komponist

Um die gleiche Situation mit Dateien zu lösen, die im Herstellerverzeichnis gepatcht werden, finden Sie hier einen guten Artikel: http://jamescowie.me/blog/2016/12/Composer-Magento-Patches/

Wir haben etwas Ähnliches in unserer Komponistendatei gemacht:

...
   "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"
            },
        }
    }
...

In unserem Magento-Stammverzeichnis haben wir ein Patches / Composer-Verzeichnis, auf das wir verweisen, und im Abschnitt Extras / Patches teilen wir ihm mit, welches Magento-Modul gepatcht werden soll.

Ironischerweise fand ich diesen Beitrag, als ich mir ansah, wie dies gemacht wurde, nur um herauszufinden, dass unsere Lösung bereits von unserem ursprünglichen Anbieter vorhanden war.

Joshua Fricke
quelle
5

Wenn Sie Git in Ihrer Umgebung installiert haben, kopieren Sie einfach den Patch auf Ihren Magento-Stammordner.

Dann benutze:

$ git apply MAGETWO-67805-2017-05-17-03-04-03.patch
Suresh Chikani
quelle
1
Was ist, wenn man den Vendor-Ordner nicht als Teil des Git-Repositorys behält? Patcht das nicht einfach Core-Dateien direkt?
Dchayka
2

Wenn jemand dies über Composer tut, gibt es ein kostenloses Modul , mit dem Sie Patches von der CLI installieren können.

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/$

Ich benutze es auf Mdoq , aber es kann überall verwendet werden.
Es gibt einen guten Blog - Post auf es hier

Adam
quelle
Ich habe versucht, dem Unternehmen eine E-Mail über das Hinzufügen von Patches zu senden, aber die E-Mail-Adresse ist fehlerhaft ([email protected]). Es sieht auch so aus, als hätten sie seit etwa einem Jahr keine neuen Patches hinzugefügt. Dies scheint ein totes Projekt zu sein.
njm5785
1
  • Laden Sie die Patch-Datei herunter und legen Sie sie im Stammverzeichnis von Magento ab

  • Stellen Sie den Entwicklermodus mit dem folgenden Befehl ein:

    php bin/magento deploy:mode:set developer

  • Wenden Sie den Patch mit dem folgenden Befehl an:

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

  • Die möglichen Warnungen und Fehler, die Sie erhalten können, sind:

Warnung: Hersteller / magento / Modul-E-Mail / Modell / Dateiname.php hat den Typ 100755, voraussichtlich 100644

Die obige Warnung bedeutet, dass die permissionsder FileName.php 755obwohl die erwarteten permissionssind 644.

Wenn Sie die Patch-Datei zweimal anwenden, wird eine Fehlermeldung erwartet, die der folgenden ähnelt:

Fehler: Patch fehlgeschlagen: Hersteller / magento / Modul-E-Mail / Modell / AbstractTemplate.php: 534

Fehler: Hersteller / Magento / Modul-E-Mail / Modell / AbstractTemplate.php: Patch gilt nicht

Es ist in Ordnung, den obigen Fehler oder die Warnung zu erhalten.

Ihr Patch wird weiterhin erfolgreich angewendet . Genießen ;)

Usman Yousaf
quelle
0
  1. Stellen Sie sicher, dass sich Ihr Magento-Shop in befindet developer mode

    php bin/magento deploy:mode:set developer

  2. Laden Sie den Sicherheitspatch herunter

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

  3. Führen Sie danach einfach den folgenden Befehl aus, um den Patch anzuwenden

    php bin/magento setup:upgrade

Divya
quelle
Haben Sie eine Idee, wie Sie den Patch zuletzt entfernen können?
Dhaduk Mitesh