アップグレードの前提条件の完了

Adobe Commerceの実行に何が必要かを理解することが重要です。 まず、 システム要件 アップグレード先のバージョンの

必要システム構成を確認した後、システムをアップグレードする前に、次の前提条件を満たす必要があります。

  • すべてのソフトウェアを更新
  • サポートされている検索エンジンがインストールされていることを確認します。
  • データベーステーブル形式の変換
  • 開くファイルの制限を設定する
  • Cron ジョブが実行中であることを確認します。
  • 設定 DATA_CONVERTER_BATCH_SIZE
  • ファイルシステムの権限の検証
  • を設定します。 pub/ ディレクトリルート
  • Composer の更新プラグインをインストールします。

すべてのソフトウェアを更新

The システム要件 Adobe Commerceリリースでテストされたサードパーティソフトウェアのバージョンを正確に説明します。

環境内のすべてのシステム要件と依存関係を更新していることを確認します。 PHP を参照 7.4, PHP 8.0, PHP 8.1、および 必要な PHP 設定.

NOTE
Adobe Commerce on cloud infrastructure Pro プロジェクトの場合、 サポート ステージング環境と実稼動環境でサービスをインストールまたは更新するためのチケット。 必要なサービスの変更を示し、更新した .magento.app.yaml および services.yaml ファイルと PHP のバージョンをチケット内で指定します。 Cloud インフラストラクチャチームがプロジェクトを更新するまでに最大 48 時間かかる場合があります。 詳しくは、 サポートされるソフトウェアとサービス.

サポートされている検索エンジンがインストールされていることを確認します。

Adobe Commerceでは、Elasticsearchを使用するために、ソフトウェアまたは OpenSearch をインストールする必要があります。

2.3.x から 2.4 にアップグレードする場合 2.3.x インスタンスで、カタログ検索エンジンとして MySQL、Elasticsearch、またはサードパーティの拡張機能を使用しているかどうかを確認する必要があります。 結果によって、必要な作業が決まります 2.4 へのアップグレード

2.3.x または 2.4.x のリリース行内でパッチリリースをアップグレードする場合(Elasticsearch7.x が既にインストールされている場合 ) OpenSearch に移行.

コマンドラインまたは管理者を使用して、カタログ検索エンジンを決定できます。

  • 次を入力します。 bin/magento config:show catalog/search/engine コマンドを使用します。 このコマンドは、 mysql, elasticsearch ( これはElasticsearch2 が設定されていることを示します )。 elasticsearch5, elasticsearch6, elasticsearch7またはカスタム値。サードパーティの検索エンジンがインストールされていることを示します。 2.4.6 より前のバージョンでは、 elasticsearch7 Elasticsearch7 または OpenSearch エンジンの値。 バージョン 2.4.6 以降では、 opensearch OpenSearch エンジンの値。

  • 管理者から、 Stores > Settings > Configuration > Catalog > Catalog > Catalog Search > Search Engine フィールドに入力します。

次の節では、2.4.0 にアップグレードする前に実行する必要のあるアクションについて説明します。

MySQL

2.4 以降、MySQL はサポート対象のカタログ検索エンジンではなくなりました。 アップグレードする前に、Elasticsearchまたは OpenSearch をインストールして設定する必要があります。 このプロセスの手引きとして、次のリソースを使用します。

一部のサードパーティカタログ検索エンジンは、Adobe Commerce検索エンジンの上で動作します。 ベンダーに問い合わせて、拡張機能を更新する必要があるかどうかを判断してください。

MariaDB

MariaDB 10.4 および 10.6 でのインデックス再作成は、以前の MariaDB または MySQL バージョンと比べて時間がかかります。 インデックスの再作成を高速化するには、次の MariaDB 設定パラメーターを設定することをお勧めします。

MariaDB 10.6 にアップグレードした後、インデックス化に関連しないパフォーマンスの低下が発生する場合は、 --query-cache-type 設定。 例: --query-cache-type=ON.

クラウドインフラストラクチャプロジェクト上のAdobe Commerceをアップグレードする前に、MariaDB (MariaDB アップグレードのベストプラクティスを参照してください。) をクリックします。

例:

  • Adobe Commerce 2.4.6(MariaDB バージョン 10.5.1 以降を使用)
  • Adobe Commerce 2.3.5(MariaDB バージョン 10.3 以前)

次の推奨事項に加えて、次のパラメーターの設定については、データベース管理者に問い合わせる必要があります。

NOTE
これらの設定は、オンプレミスでの展開でのみ使用できます。 Adobe Commerce on cloud infrastructure のお客様は、これらの設定にアクセスできません。

検索エンジン

2.4.0 にアップグレードする前に、Elasticsearch7.6 以降または OpenSearch 1.2 をインストールして設定する必要があります。Adobeは、Elasticsearch2.x、5.x、6.x をサポートしなくなりました。 検索エンジンの設定 (内) 設定ガイド サポート対象のバージョンにアップグレードした後にElasticsearchを実行する必要があるタスクについて説明します。

参照: アップグレードElasticsearch データのバックアップ、移行に関する潜在的な問題の検出、アップグレードのテストを実稼動環境にデプロイする前に行う手順について詳しくは、 現在のバージョンのElasticsearchに応じて、完全なクラスターの再起動が必要な場合と不要な場合があります。

Elasticsearchには Java Development Kit(JDK)1.8 以降が必要です。 詳しくは、 Java Software Development Kit(JDK) のインストール をクリックして、インストールされている JDK のバージョンを確認します。

OpenSearch

OpenSearch は、Elasticsearch7.10.2のオープンソースのフォークで、Elasticsearchのライセンスの変更に続いています。 Adobe Commerceの次のリリースでは、OpenSearch のサポートが導入されています。

  • 2.4.6 (OpenSearch は別々のモジュールと設定を持っています)
  • 2.4.5
  • 2.4.4
  • 2.4.3-p2
  • 2.3.7-p3

以下が可能です。 Elasticsearchから OpenSearch への移行 上記(またはそれ以降)のバージョンのAdobe Commerceにアップグレードする場合にのみ有効です。

OpenSearch には JDK 1.8 以降が必要です。 詳しくは、 Java Software Development Kit(JDK) のインストール をクリックして、インストールされている JDK のバージョンを確認します。

検索エンジンの設定 では、検索エンジンを変更した後に実行する必要があるタスクについて説明します。

アップグレードElasticsearch

Elasticsearch8.x のサポートは、Adobe Commerce 2.4.6 で導入されました。次の手順は、Elasticsearchを 7.x から 8.x にアップグレードする例を示しています。

  1. Elasticsearch7.x サーバーを 8.x にアップグレードし、が起動して実行されていることを確認します。 詳しくは、 Elasticsearch文書.

  2. を有効にします。 id_field_data フィールドに次の設定を追加して、 elasticsearch.yml ファイルを作成し、Elasticsearch8.x サービスを再起動します。

    code language-yaml
    indices:
      id_field_data:
        enabled: true
    
    note info
    INFO
    Elasticsearch8.x をサポートするために、Adobe Commerce 2.4.6 では indices.id_field_data プロパティはデフォルトで、 _id フィールド docvalue_fields プロパティ。
  3. Adobe Commerceプロジェクトのルートディレクトリで、Composer の依存関係を更新して、 Magento_Elasticsearch7 モジュールとインストール Magento_Elasticsearch8 モジュール。

    code language-bash
    composer require magento/module-elasticsearch-8 --update-with-all-dependencies
    
  4. プロジェクトコンポーネントを更新します。

    code language-bash
    bin/magento setup:upgrade
    
  5. 設定Elasticsearch (内) Admin.

  6. カタログインデックスを再インデックスします。

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  7. 有効なキャッシュタイプからすべての項目を削除します。

    code language-bash
    bin/magento cache:clean
    

ダウングレードElasticsearch

誤ってサーバー上のElasticsearchのバージョンをアップグレードした場合や、他の理由でダウングレードする必要がある場合は、Adobe Commerceプロジェクトの依存関係も更新する必要があります。 例えば、Elasticsearch8.x から 7.x にダウングレードするには、次のようにします。

  1. Elasticsearch8.x サーバーを 7.x にダウングレードし、が起動して実行されていることを確認します。 詳しくは、 Elasticsearch文書.

  2. Adobe Commerceプロジェクトのルートディレクトリで、Composer の依存関係を更新して、 Magento_Elasticsearch8 モジュールとそのコンポーザーの依存関係とインストール Magento_Elasticsearch7 モジュール。

    code language-bash
    composer remove magento/module-elasticsearch-8
    
  3. プロジェクトコンポーネントを更新します。

    code language-bash
    bin/magento setup:upgrade
    
  4. 設定Elasticsearch (内) Admin.

  5. カタログインデックスを再インデックスします。

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  6. 有効なキャッシュタイプからすべての項目を削除します。

    code language-bash
    bin/magento cache:clean
    

サードパーティの拡張機能

拡張機能とAdobe Commerceリリースの互換性が完全にあるかどうかについては、検索エンジンのベンダーに問い合わせることをお勧めします。

データベーステーブル形式の変換

すべてのデータベーステーブルの形式は、次の形式から変換する必要があります: COMPACT から DYNAMIC. また、次のストレージエンジンタイプを変換する必要があります: MyISAM から InnoDB. 詳しくは、 ベストプラクティス.

開くファイルの制限を設定する

開くファイルの制限 (ulimit) を設定すると、長いクエリ文字列の複数の再帰呼び出しや、 bin/magento setup:rollback コマンドを使用します。 このコマンドは、UNIX シェルごとに異なります。 詳しくは、個々のフレーバーを参照してください。 ulimit コマンドを使用します。

Adobeでは、開くファイルを設定することをお勧めします ulimit 値に 65536 または複数の値を指定できますが、必要に応じて、より大きな値を使用できます。 コマンドラインで ulimit を設定するか、ユーザーのシェルに対して永続的な設定を指定できます。

コマンドラインから ulimit を設定するには、次の手順に従います。

  1. 次に切り替え: ファイルシステム所有者.

  2. 制限をに設定します。 65536.

    code language-bash
    ulimit -n 65536
    

Bash シェルに値を設定するには、次の手順を実行します。

  1. 次に切り替え: ファイルシステム所有者.

  2. 開く /home/<username>/.bashrc をクリックします。

  3. 次の行を追加します。

    code language-bash
    ulimit -n 65536
    
  4. 変更を .bashrc ファイルを開き、テキストエディタを終了します。

IMPORTANT
この場合、 pcre.recursion_limit プロパティを php.ini ファイルを作成する必要があります。

Cron ジョブが実行中であることを確認します。

UNIX タスクスケジューラ cron は、毎日のAdobe Commerce操作にとって重要です。 インデックスの再作成、ニュースレター、電子メール、サイトマップなどのスケジュールを設定します。 いくつかの機能を使用するには、ファイルシステムの所有者として少なくとも 1 つの cron ジョブを実行する必要があります。

cron ジョブが正しく設定されていることを確認するには、ファイルシステムの所有者として次のコマンドを入力して crontab を確認します。

NOTE
crontab は、cron ジョブの実行を担当する設定ファイルです。
crontab -l

次のような結果が表示されます。

#~ MAGENTO START c5f9e5ed71cceaabc4d4fd9b3e827a2b
* * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log
#~ MAGENTO END c5f9e5ed71cceaabc4d4fd9b3e827a2b

cron が動作しないもう 1 つの症状は、管理画面で次のエラーが発生することです。

エラーを確認するには、 システムメッセージ を次のようにして、ウィンドウの上部に表示します。

詳しくは、 cron の設定と実行 を参照してください。

DATA_CONVERTER_BATCH_SIZE を設定

Adobe Commerce 2.4 には、一部のデータをシリアル化から JSON に変換する必要があるセキュリティ強化が含まれています。 この変換はアップグレード中に発生し、データベース内のデータ量に応じて時間がかかる場合があります。

次の表が最も影響を受けます。

  • catalogrule
  • core_config_data
  • magento_reward_history
  • quote_payment
  • quote
  • sales_order_payment
  • sales_order
  • salesrule
  • url_rewrite

大量のデータがある場合は、環境変数の値を設定してパフォーマンスを向上させることができます。 DATA_CONVERTER_BATCH_SIZE. デフォルトでは、値はに設定されています。 50,000.

環境変数を設定するには、次の手順に従います。

  1. 次に切り替え: ファイルシステム所有者.

  2. 変数を設定します。

    code language-bash
    export DATA_CONVERTER_BATCH_SIZE=100000
    
    note note
    NOTE
    DATA_CONVERTER_BATCH_SIZE メモリが必要です。最初にテストしないで、大きな値(約 1 GB)に設定しないでください。
  3. アップグレードが完了したら、変数の設定を解除できます。

    code language-bash
    unset DATA_CONVERTER_BATCH_SIZE
    

ファイルシステムの権限の検証

セキュリティ上の理由から、Adobe Commerceにはファイルシステムに対する特定の権限が必要です。 権限は、 所有権. 所有権は、ファイル・システム上でアクションを実行できるユーザーを決定し、権限はユーザーが実行できる操作を決定します。

ファイルシステム内のディレクトリは、 ファイルシステム所有者の グループ化します。

ファイルシステムの権限が正しく設定されていることを確認するには、アプリケーションサーバーにログインするか、ホスティングプロバイダーの File Manager アプリケーションを使用します。

例えば、アプリケーションが /var/www/html/magento2:

ls -l /var/www/html/magento2

サンプル出力:

total 1028
drwxrwx---. 12 magento_user apache   4096 Jun  7 07:55 .
drwxr-xr-x.  3 root         root     4096 May 11 14:29 ..
drwxrwx---.  4 magento_user apache   4096 Jun  7 07:53 app
drwxrwx---.  2 magento_user apache   4096 Jun  7 07:53 bin
-rw-rw----.  1 magento_user apache 439792 Apr 27 21:23 CHANGELOG.md
-rw-rw----.  1 magento_user apache   3422 Apr 27 21:23 composer.json
-rw-rw----.  1 magento_user apache 425214 Apr 27 21:27 composer.lock
-rw-rw----.  1 magento_user apache   3425 Apr 27 21:23 CONTRIBUTING.md
-rw-rw----.  1 magento_user apache  10011 Apr 27 21:23 CONTRIBUTOR_LICENSE_AGREEMENT.html
-rw-rw----.  1 magento_user apache    631 Apr 27 21:23 COPYING.txt
drwxrwx---.  4 magento_user apache   4096 Jun  7 07:53 dev
-rw-rw----.  1 magento_user apache   2926 Apr 27 21:23 Gruntfile.js
-rw-rw----.  1 magento_user apache   7592 Apr 27 21:23 .htaccess
-rw-rw----.  1 magento_user apache   6419 Apr 27 21:23 .htaccess.sample
drwxrwx---.  4 magento_user apache   4096 Jun  7 07:53 lib
-rw-rw----.  1 magento_user apache  10376 Apr 27 21:23 LICENSE_AFL.txt
-rw-rw----.  1 magento_user apache  30634 Apr 27 21:23 LICENSE_EE.txt
-rw-rw----.  1 magento_user apache  10364 Apr 27 21:23 LICENSE.txt
-rw-rw----.  1 magento_user apache   4108 Apr 27 21:23 nginx.conf.sample
-rw-rw----.  1 magento_user apache   1427 Apr 27 21:23 package.json
-rw-rw----.  1 magento_user apache   1659 Apr 27 21:23 .php_cs
-rw-rw----.  1 magento_user apache    804 Apr 27 21:23 php.ini.sample
drwxrwx---.  2 magento_user apache   4096 Jun  7 07:53 phpserver
drwxrwx---.  6 magento_user apache   4096 Jun  7 07:53 pub
-rw-rw----.  1 magento_user apache   2207 Apr 27 21:23 README_EE.md
drwxrwx---.  7 magento_user apache   4096 Jun  7 07:53 setup
-rw-rw----.  1 magento_user apache   3731 Apr 27 21:23 .travis.yml
drwxrwx---.  7 magento_user apache   4096 Jun  7 07:53 update
drwxrws---. 11 magento_user apache   4096 Jun 13 16:05 var
drwxrws---. 29 magento_user apache   4096 Jun  7 07:53 vendor

サンプル出力の説明については、次を参照してください。

  • ほとんどのファイルは -rw-rw----は、 660
  • drwxrwx--- = 770
  • -rw-rw-rw- = 666
  • ファイルシステムの所有者は、 magento_user

詳細を確認するには、次のコマンドを入力します。

ls -la /var/www/html/magento2/pub

これは、Adobe Commerceがのサブディレクトリに静的ファイルアセットをデプロイするからです pubでは、そこで権限と所有権も検証することをお勧めします。

詳しくは、 ファイル・システムの権限と所有権.

を設定します。 pub/ ディレクトリルート

詳しくは、 セキュリティを向上させるために docroot を変更 を参照してください。

Composer の更新プラグインをインストールします。

The magento/composer-root-update-plugin Composer プラグインは、ルートプロジェクトに対して行う必要のある変更を解決します composer.json ファイルを更新してから、新しい製品要件に更新してください。

プラグインは、手動アップグレードを部分的に自動化し、依存関係の競合を特定して手動で修正する代わりに、特定して解決するのに役立ちます。

プラグインをインストールするには:

  1. パッケージを composer.json ファイル。

    code language-bash
    composer require magento/composer-root-update-plugin ~2.0 --no-update
    
  2. 依存関係を更新します。

    code language-bash
    composer update
    
recommendation-more-help
83a60e0e-8849-4685-a8cd-c129ecd795ea