アップグレードの前提条件の完了
Adobe Commerceの実行に何が必要かを理解することが重要です。 まず、 システム要件 アップグレード先のバージョンの
必要システム構成を確認した後、システムをアップグレードする前に、次の前提条件を満たす必要があります。
- すべてのソフトウェアを更新
- サポートされている検索エンジンがインストールされていることを確認します。
- データベーステーブル形式の変換
- 開くファイルの制限を設定する
- Cron ジョブが実行中であることを確認します。
- 設定
DATA_CONVERTER_BATCH_SIZE
- ファイルシステムの権限の検証
- を設定します。
pub/
ディレクトリルート - Composer の更新プラグインをインストールします。
すべてのソフトウェアを更新
The システム要件 Adobe Commerceリリースでテストされたサードパーティソフトウェアのバージョンを正確に説明します。
環境内のすべてのシステム要件と依存関係を更新していることを確認します。 PHP を参照 7.4, PHP 8.0, PHP 8.1、および 必要な PHP 設定.
.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 をインストールして設定する必要があります。 このプロセスの手引きとして、次のリソースを使用します。
- インストールと設定Elasticsearch
- インストールElasticsearch
- 設定 nginx または Apache 検索エンジンを使用するには
- コマースでElasticsearchを使用するように設定 と再インデックス
一部のサードパーティカタログ検索エンジンは、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 以前)
次の推奨事項に加えて、次のパラメーターの設定については、データベース管理者に問い合わせる必要があります。
検索エンジン
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 にアップグレードする例を示しています。
-
Elasticsearch7.x サーバーを 8.x にアップグレードし、が起動して実行されていることを確認します。 詳しくは、 Elasticsearch文書.
-
を有効にします。
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
プロパティ。 -
Adobe Commerceプロジェクトのルートディレクトリで、Composer の依存関係を更新して、
Magento_Elasticsearch7
モジュールとインストールMagento_Elasticsearch8
モジュール。code language-bash composer require magento/module-elasticsearch-8 --update-with-all-dependencies
-
プロジェクトコンポーネントを更新します。
code language-bash bin/magento setup:upgrade
-
設定Elasticsearch (内) Admin.
-
カタログインデックスを再インデックスします。
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
有効なキャッシュタイプからすべての項目を削除します。
code language-bash bin/magento cache:clean
ダウングレードElasticsearch
誤ってサーバー上のElasticsearchのバージョンをアップグレードした場合や、他の理由でダウングレードする必要がある場合は、Adobe Commerceプロジェクトの依存関係も更新する必要があります。 例えば、Elasticsearch8.x から 7.x にダウングレードするには、次のようにします。
-
Elasticsearch8.x サーバーを 7.x にダウングレードし、が起動して実行されていることを確認します。 詳しくは、 Elasticsearch文書.
-
Adobe Commerceプロジェクトのルートディレクトリで、Composer の依存関係を更新して、
Magento_Elasticsearch8
モジュールとそのコンポーザーの依存関係とインストールMagento_Elasticsearch7
モジュール。code language-bash composer remove magento/module-elasticsearch-8
-
プロジェクトコンポーネントを更新します。
code language-bash bin/magento setup:upgrade
-
設定Elasticsearch (内) Admin.
-
カタログインデックスを再インデックスします。
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
有効なキャッシュタイプからすべての項目を削除します。
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 を設定するには、次の手順に従います。
-
次に切り替え: ファイルシステム所有者.
-
制限をに設定します。
65536
.code language-bash ulimit -n 65536
Bash シェルに値を設定するには、次の手順を実行します。
-
次に切り替え: ファイルシステム所有者.
-
開く
/home/<username>/.bashrc
をクリックします。 -
次の行を追加します。
code language-bash ulimit -n 65536
-
変更を
.bashrc
ファイルを開き、テキストエディタを終了します。
pcre.recursion_limit
プロパティを php.ini
ファイルを作成する必要があります。Cron ジョブが実行中であることを確認します。
UNIX タスクスケジューラ cron
は、毎日のAdobe Commerce操作にとって重要です。 インデックスの再作成、ニュースレター、電子メール、サイトマップなどのスケジュールを設定します。 いくつかの機能を使用するには、ファイルシステムの所有者として少なくとも 1 つの cron ジョブを実行する必要があります。
cron ジョブが正しく設定されていることを確認するには、ファイルシステムの所有者として次のコマンドを入力して crontab を確認します。
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
.
環境変数を設定するには、次の手順に従います。
-
次に切り替え: ファイルシステム所有者.
-
変数を設定します。
code language-bash export DATA_CONVERTER_BATCH_SIZE=100000
note note NOTE DATA_CONVERTER_BATCH_SIZE
メモリが必要です。最初にテストしないで、大きな値(約 1 GB)に設定しないでください。 -
アップグレードが完了したら、変数の設定を解除できます。
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
ファイルを更新してから、新しい製品要件に更新してください。
プラグインは、手動アップグレードを部分的に自動化し、依存関係の競合を特定して手動で修正する代わりに、特定して解決するのに役立ちます。
プラグインをインストールするには:
-
パッケージを
composer.json
ファイル。code language-bash composer require magento/composer-root-update-plugin ~2.0 --no-update
-
依存関係を更新します。
code language-bash composer update