Come applicare le patch Magento 2?


12

Sto usando Magento 2.1.6 e voglio applicare la patch CE-MAGETWO-67805.patch.

Come posso applicare i file * .patch?


potete per favore aiutarmi su come trovare le patch richieste da installare per una data versione di Magento. C'è qualche strumento che stai usando per trovarli? o dovremmo visitare magento.com per informazioni sulle patch?
Kalyan Chakravarthi V

stavo cercando le migliori pratiche per applicare queste patch su un'installazione di Magento 2 Composer. In questo articolo ho pubblicato come Patch Magento Source. medium.com/@LarsRoettig/…
Lars Roettig

Risposte:


12

Tradizionale

Puoi usare il metodo tradizionale:

git apply MAGEPatch-20181106.patch

o

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

Compositore

O per risolvere la stessa situazione con i file sottoposti a patch nella directory del fornitore, è disponibile un buon articolo qui: http://jamescowie.me/blog/2016/12/Composer-Magento-Patches/

Abbiamo fatto qualcosa di simile nel nostro file del compositore:

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

Nella nostra radice Magento, abbiamo una directory patch / compositore che è dove li facciamo riferimento e nella sezione extra / patch, diciamo quale modulo Magento patchare.

Ironia della sorte, ho trovato questo post osservando come è stato fatto solo per scoprire che la nostra soluzione era già in atto dal nostro fornitore iniziale.


5

Se hai installato git sul tuo ambiente, usa semplicemente la seguente copia della patch sulla tua cartella radice magento.

Quindi utilizzare:

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

1
cosa succede se non si mantiene la cartella del fornitore come parte del repository git? Questo non corregge direttamente i file core?
Dchayka,

2

Se qualcuno lo sta facendo tramite Composer, c'è un modulo gratuito che puoi installare che ti consente di installare patch dal 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/$

Lo uso su Mdoq , ma può essere utilizzato ovunque.
C'è un buon post sul blog qui


Ho provato a inviare un'e-mail all'azienda per aggiungere patch ma la loro e-mail è rotta (support@mdoq.io). Sembra anche che non abbiano aggiunto nuove patch per circa un anno. Questo sembra essere un progetto morto.
njm5785

@ njm5785 non è un progetto morto, ci scusiamo per aver perso la tua email. Come posso aiutare?
Adam,

1
  • Scarica il file patch e posizionalo nella directory principale di Magento

  • Imposta la modalità sviluppatore usando il comando:

    php bin/magento deploy:mode:set developer

  • Applicare la patch utilizzando il comando:

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

  • I possibili avvisi ed errori che è possibile ottenere sono:

attenzione: il fornitore / magento / module-email / Model / FileName.php ha il tipo 100755, previsto 100644

I mezzi di avvertimento di cui sopra che la permissionsdel FileName.php sono 755però l'atteso permissionssiano 644.

Se si applica il file patch due volte, è previsto un messaggio di errore simile a:

errore: patch fallita: vendor / magento / module-email / Model / AbstractTemplate.php: 534

errore: vendor / magento / module-email / Model / AbstractTemplate.php: la patch non si applica

Va bene per ottenere l'errore o l'avviso di cui sopra.

La patch è ancora applicata correttamente . Godere ;)


0
  1. Assicurati che il tuo negozio Magento sia attivo developer mode

    php bin/magento deploy:mode:set developer

  2. Scarica la patch di sicurezza

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

  3. Dopodiché basta eseguire il comando seguente per applicare la patch

    php bin/magento setup:upgrade


Hai idea di come rimuovere l'ultima applicazione della patch?
Dhaduk Mitesh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.