Magento 2パッチを適用する方法は?


12

Magento 2.1.6を使用していますが、パッチを適用しますCE-MAGETWO-67805.patch

* .patchファイルを適用するにはどうすればよいですか?


特定のMagentoバージョンにインストールするために必要なパッチを見つける方法を教えてください。それらを見つけるために使用しているツールはありますか?または、パッチ情報についてはmagento.comにアクセスする必要がありますか?
Kalyan Chakravarthi V

Magento 2 Composerインストールにこれらのパッチを適用するためのベストプラクティスを探していました。このArtikelでは、Magentoソースにパッチを適用する方法を投稿しました。medium.com/@LarsRoettig/...
ラース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/を参照してください。

composerファイルでも同様のことを行いました。

...
   "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のルートには、それらを参照するpatch / composerディレクトリがあり、extras / patchesセクションで、どのMagentoモジュールにパッチを適用するかを伝えます。

皮肉なことに、これがどのようにして私たちのソリューションが最初のベンダーによってすでに設置されているかを見つけるためだけにこれがどのように行われたかを見て、私はこの投稿を見つけました。


5

環境にgitをインストールしている場合は、次のコピーを使用して、magentoルートフォルダーにパッチをコピーします。

次に使用します:

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

1
ベンダーフォルダーをgitリポジトリの一部として保持しない場合はどうなりますか?これはコアファイルに直接パッチを適用するだけではありませんか?
dchayka 2017

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)。また、約1年間新しいパッチを追加していないようです。これは死んだプロジェクトのようです。
njm5785

@ njm5785は死んだプロジェクトではありません。お詫び申し上げます。手伝いましょうか?
アダム

1
  • パッチファイルダウンロードしMagentoのルートディレクトリに配置します。

  • コマンドを使用して開発者モードを設定します

    php bin/magento deploy:mode:set developer

  • コマンドを使用してパッチを適用します。

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

  • 表示される可能性のある警告とエラーは次のとおりです。

警告:vendor / magento / module-email / Model / FileName.phpのタイプは100755で、100644が必要です

上記の警告はpermissions、FileName.phpのが755予想どおりであることを意味しpermissionsます644

パッチファイルを2回適用すると、次のようなエラーメッセージが表示されます。

エラー:パッチが失敗しました:vendor / magento / module-email / Model / AbstractTemplate.php:534

エラー:vendor / magento / module-email / Model / 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


最後にパッチを適用して削除する方法はありますか?
Dhaduk Mitesh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.