¿Cómo aplicar los parches Magento 2?

12

Estoy usando el Magento 2.1.6 y quiero aplicar el parche CE-MAGETWO-67805.patch.

¿Cómo puedo aplicar los archivos * .patch?

Rafael Corrêa Gomes
fuente
¿Pueden ayudarme a encontrar los parches necesarios para instalar una versión de Magento? ¿Hay alguna herramienta que esté utilizando para encontrarlos? o deberíamos visitar magento.com para obtener información sobre parches?
Kalyan Chakravarthi V
Estaba buscando las mejores prácticas para aplicar estos parches en una instalación de Magento 2 Composer. En este Artikel publiqué cómo aplicamos Patch Magento Source. medium.com/@LarsRoettig/…
Lars Roettig

Respuestas:

12

Tradicional

Puedes usar el método tradicional:

git apply MAGEPatch-20181106.patch

o

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

Compositor

O para resolver la misma situación con los archivos parcheados en el directorio de proveedores, hay un buen artículo aquí: http://jamescowie.me/blog/2016/12/Composer-Magento-Patches/

Hicimos algo similar en nuestro archivo de compositor:

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

En nuestra raíz de Magento, tenemos un directorio de parches / compositor que es donde los referenciamos y en la sección extras / parches, le decimos qué módulo de Magento debe parchear.

Irónicamente, encontré esta publicación al ver cómo se hizo esto solo para encontrar que nuestra solución ya estaba implementada por nuestro proveedor inicial.

Joshua Fricke
fuente
5

Si tiene instalado git en su entorno, simplemente use la siguiente copia del parche en su carpeta raíz de magento.

Luego use:

$ git apply MAGETWO-67805-2017-05-17-03-04-03.patch
Suresh Chikani
fuente
1
¿Qué pasa si uno no mantiene la carpeta del proveedor como parte del repositorio git? ¿Esto no solo parchea directamente los archivos principales?
dchayka
2

Si alguien está haciendo esto a través de Composer, hay un módulo gratuito que puede instalar, le permite instalar parches desde el 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 en Mdoq , pero se puede usar en cualquier lugar.
Hay una buena publicación de blog aquí

Adán
fuente
Intenté enviarle un correo electrónico a la compañía para agregar parches, pero su correo electrónico no funciona ([email protected]). También parece que no han agregado parches nuevos durante aproximadamente un año. Esto parece ser un proyecto muerto.
njm5785
@ njm5785 no es un proyecto muerto, disculpas nos perdimos su correo electrónico. ¿Cómo puedo ayudar?
Adam
1
  • Descargue el archivo de parche y colóquelo en el directorio raíz de Magento

  • Establezca el modo de desarrollador mediante el comando:

    php bin/magento deploy:mode:set developer

  • Aplique el parche usando el comando:

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

  • Las posibles advertencias y errores que puede obtener son:

advertencia: vendor / magento / module-email / Model / FileName.php tiene el tipo 100755, esperado 100644

Los medios de aviso anteriores que el permissionsde la filename.php son 755aunque el esperado permissionsson 644.

Si aplica el archivo de parche dos veces, se espera que reciba un mensaje de error similar a:

error: parche fallido: vendedor / magento / module-email / Model / AbstractTemplate.php: 534

error: vendor / magento / module-email / Model / AbstractTemplate.php: el parche no se aplica

Está bien obtener el error o advertencia anterior.

Su parche aún se aplica con éxito . Disfrutar;)

Usman Yousaf
fuente
0
  1. Asegúrese de que su tienda Magento esté en developer mode

    php bin/magento deploy:mode:set developer

  2. Descargue el parche de seguridad

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

  3. Después de eso, simplemente ejecute el siguiente comando para aplicar el parche

    php bin/magento setup:upgrade

Divya
fuente
¿Tienes alguna idea de cómo quitar la última aplicación del parche?
Dhaduk Mitesh