จะใช้ Magento 2 patches ได้อย่างไร?


12

ฉันใช้วีโอไอพี 2.1.6 CE-MAGETWO-67805.patchและฉันต้องการที่จะใช้แพทช์

ฉันจะใช้ไฟล์ * .patch ได้อย่างไร


คุณช่วยฉันได้ไหมในการหาแพตช์ที่จำเป็นในการติดตั้งสำหรับเวอร์ชั่น Magento ที่ระบุ มีเครื่องมือใดที่คุณใช้ในการค้นหาหรือไม่ หรือเราควรเยี่ยมชม magento.com เพื่อดูข้อมูลการแก้ไข
Kalyan Chakravarthi V

ฉันค้นหาวิธีปฏิบัติที่ดีที่สุดในการติดตั้ง Patch เหล่านี้ในการติดตั้ง Magento 2 Composer ในบทความนี้ฉันโพสต์ว่าเราแก้ไขแหล่งข้อมูลวีโอไอพีอย่างไร 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"
            },
        }
    }
...

ในรูตวีโอไอพีของเราเรามีไดเรกทอรีแพตช์ / ผู้แต่งซึ่งเป็นที่ที่เราอ้างอิงพวกเขาและในส่วนพิเศษ / แพทช์เราบอกว่าโมดูลวีโอไอพีที่จะแก้ไข

อย่างแดกดันฉันพบโพสต์นี้เมื่อดูว่าสิ่งนี้ทำเพื่อค้นหาโซลูชันของเราโดยผู้ขายเริ่มต้นของเราแล้ว


5

หากคุณมีการติดตั้งคอมไพล์ในสภาพแวดล้อมของคุณเพียงใช้โปรแกรมคัดลอกต่อไปนี้ในโฟลเดอร์ root ของ magento

จากนั้นใช้:

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

1
เกิดอะไรขึ้นถ้าใครไม่เก็บโฟลเดอร์ผู้ขายเป็นส่วนหนึ่งของที่เก็บ git? สิ่งนี้ไม่เพียง แต่แก้ไขไฟล์หลักโดยตรงหรือไม่
dchayka

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
  • ดาวน์โหลดไฟล์แพทช์และวางลงในไดเรกทอรีรากของวีโอไอพี

  • ตั้งค่าโหมดผู้พัฒนาโดยใช้คำสั่ง:

    php bin/magento deploy:mode:set developer

  • ใช้แพตช์โดยใช้คำสั่ง:

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

  • คำเตือนและข้อผิดพลาดที่เป็นไปได้ที่คุณจะได้รับคือ:

คำเตือน: ผู้ขาย / magento / module-email / รุ่น / FileName.php มีประเภท 100755, คาดว่า 100644

หมายถึงคำเตือนดังกล่าวข้างต้นว่าpermissionsของจะ FileName.php 755แม้ว่าที่คาดว่าจะเป็นpermissions644

หากคุณใช้ไฟล์แก้ไขสองครั้งคุณจะได้รับข้อความแสดงข้อผิดพลาดคล้ายกับ:

ข้อผิดพลาด: การแก้ไขล้มเหลว: ผู้ขาย / magento / module-email / Model / AbstractTemplate.php: 534

ข้อผิดพลาด: ผู้ขาย / magento / module-email / รุ่น / AbstractTemplate.php: patch ใช้ไม่ได้

ตกลงเพื่อรับข้อผิดพลาดหรือคำเตือนข้างต้น

แพทช์ของคุณยังคงใช้ประสบความสำเร็จ สนุก ;)


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


คุณมีความคิดวิธีการลบล่าสุดใช้แพทช์?
Dhaduk Mitesh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.