ストアの設定管理
ストアのデフォルトの設定は、適切なモジュールの config.xml
に格納されます。 Commerce Admin または CLI bin/magento config:set
コマンドで設定を変更すると、変更内容がコアデータベース(特に core_config_data
テーブル)に反映されます。 これらの設定は、config.xml
ファイルに保存されているデフォルトの設定を上書きします。
ストア設定は、管理 ストア/設定/設定 セクションの設定を参照し、設定のタイプに基づいてデプロイメント設定ファイルに格納されます。
app/etc/config.php
- ストア、web サイト、モジュールまたは拡張機能、静的ファイル最適化、静的コンテンツのデプロイメントに関連するシステム値の設定。 Configuration Guide の config.php リファレンスを参照してください。app/etc/env.php
- ソース管理に保管する必要があるシステム固有の上書きと機密設定の値 NOT。 Configuration Guide の env.php リファレンスを参照してください。
構成管理では、パイプラインデプロイメントを使用して、ダウンタイムを最小限に抑えながら、環境全体で一貫性のあるストア設定をデプロイする方法を提供します。 クラウドインフラストラクチャー上のAdobe Commerce プロジェクトには、ビルドサーバー、ビルドおよびデプロイスクリプト、デプロイメント環境が含まれ、これらは パイプラインのデプロイメント方法を念頭に置いて設計されています。
構成オーバーライド スキーム
すべてのシステム設定は、次のオーバーライドスキームに従ってビルドおよびデプロイフェーズで設定されます。
- 環境変数が存在する場合、カスタム設定を使用し、デフォルト設定を無視します。
- 環境変数が存在しない場合は、
.magento.app.yaml
ファイルのMAGENTO_CLOUD_RELATIONSHIPS
の名前と値のペアから設定を使用します。 デフォルトの設定を無視します。 - 環境変数が存在せず、
MAGENTO_CLOUD_RELATIONSHIPS
に名前と値のペアが含まれていない場合は、カスタマイズした設定をすべて削除し、デフォルト設定の値を使用します。
要約すると、環境変数は他のすべての値を上書きします。
同じ設定が複数の場所で設定されている場合、アプリケーションは次の設定階層に基づいて、環境に適用する値を決定します。
メソッド
環境変数
.magento.app.yaml
.magento.app.yaml
ファイルの variables
セクションに追加された値。 ここで値を指定し、すべての環境で一貫した設定を行います。 .magento.app.yaml
ファイル内で機密性の高い値を指定しないでください。 アプリケーション設定を参照してくださ。app/etc/env.php
app:config:dump
コマンドを使用して追加します。 環境変数または CLI を使用して、システム固有の機密性の高い値を設定します。 機密データを参照してください。 env.php
ファイルはソース管理に含まれていま ん。app/etc/config.php
app:config:dump
コマンドを使用して追加されます。 共有設定値が config.php
に追加されます。 管理者から、または CLI を使用して共有構成を設定します。 config.php
ファイルはソース管理に含まれます。config.xml
config.xml
ファイルにデフォルト値が設定されています。 上記のいずれかの方法で設定された値がAdobe Commerceで見つからない場合、設定されていれば、デフォルト値にフォールバックします。設定ダンプ
次の ece-tools
コマンドを使用して、現在のすべてのストア設定を含む config.php
ファイルを生成できます。
./vendor/bin/ece-tools config:dump
app/etc/config.php
ファイルに「ダンプ」されたデータは ロック済み になり、Commerce管理者の対応するフィールドは 読み取り専用 になります。 config.php
ファイルには、設定した設定のみが含まれます。 デフォルト値はロックされません。 また、更新した値のみをロックすると、特に Fastly の場合、読み取り専用設定が原因で、ステージング環境と実稼動環境で使用されるすべての拡張機能が破損しなくなります。
ece-tools config:dump
コマンドは、B2B などのモジュールの詳細な設定を取得しません。 包括的な設定ダンプが必要な場合は、app:config:dump
コマンドを使用します。ただし、このコマンドは、設定値を読み取り専用状態でロックします。機密データ
bin/magento app:config:dump
コマンドを使用すると、機密性の高い設定がすべて app/etc/env.php
ファイルに書き出されます。 CLI コマンドを使用して機密性の高い値を設定できます:bin/magento config:sensitive:set
。 2}Commerce PHP Extensions ガイドの {Sensitive and environment-specific settings を参照して、コンフィギュレーション設定を機密またはシステム固有として指定する方法を確認してください。
設定ガイド の 機密またはシステム固有の設定のリストを参照してください。
SCD パフォーマンス
ストアのサイズによっては、デプロイする静的コンテンツファイルが多数ある場合があります。 通常、静的コンテンツのデプロイは、アプリケーションがメンテナンスモードのデプロイ段階でおこなわれます。 最も最適な設定は、ビルドフェーズで静的コンテンツを生成することです。 デプロイ方法の選択を参照してください。
設定のダンプ後に設定管理を有効にした場合は、SCD_*変数をデプロイステージからビルドステージに移動し、ビルドフェーズ中に静的コンテンツの生成を適切に有効にする必要があります。 環境変数を参照してください。
設定管理前:
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
SCD_STRATEGY: compact
SCD_MATRIX:
...
REDIS_USE_SLAVE_CONNECTION: 1
構成管理を有効にした後:
SCD_*変数をビルドステージに移動します。
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
REDIS_USE_SLAVE_CONNECTION: 1
build:
SCD_STRATEGY: compact
SCD_MATRIX:
...
設定を管理する手順
以下に、このプロセスの概要を示します。
ストアを設定し、設定ファイルを生成するには:
-
いずれかの環境で、管理者のストアのすべての設定を完了します。
- スターター:アクティブな開発ブランチ
- Pro:統合環境のアクティブなブランチ
この環境からステージング環境および実稼動環境にデータベースをダンプする予定がない限り、これらの設定には実際の製品は含まれません。 通常、開発データベースには、完全なストアデータは含まれていません。
-
ローカルワークステーションで、をプロジェクトディレクトリに変更します。
-
リモート・データベースのローカル・ダンプを作成します。
code language-bash magento-cloud db:dump
-
コードの変更を追加、コミット、プッシュして、リモート環境を更新します。
code language-bash git add app/etc/config.php
code language-bash git commit -m "Add system-specific configuration"
code language-bash git push origin <branch-name>
デプロイメントが完了したら、更新された環境の管理者にログインして、設定を確認します。 必要に応じて、追加の設定をステージング環境と実稼動環境に引き続き結合します。
設定を更新
管理者を通じて環境を変更し、コマンドを再度実行すると、新しい設定が config.php
ファイルのコードに追加されます。
config.php
ファイルを手動で編集できますが、推奨しません。 ファイルは、すべての環境ですべての設定の一貫性を維持するのに役立ちます。 再構築のために config.php
ファイルを削除しないでください。 ファイルを削除すると、ビルドプロセスおよびデプロイプロセスに必要な特定の設定を削除できます。設定ファイルの復元
デプロイメントプロセス中に元の app/etc/env.php
ファイルと app/etc/config.php
ファイルのコピーが作成され、同じフォルダーに保存されます。 以下に、同じ app/etc
フォルダー内の BAK (バックアップファイル)と PHP (元のファイル)を示します。
...
config.php.bak
di.xml
env.php.bak
vendor_path.php
config.php
db_schema.xml
env.php
...
古い設定では app/etc/config.local.php
ファイルを使用していました。 古い設定の移行を参照してください。
設定ファイルを復元するには:
-
ローカルワークステーションで、SSH を使用してリモートプロジェクトおよび環境にログインします。
code language-bash magento-cloud ssh
-
バックアップファイルの場所と可用性を確認します。
code language-bash ./vendor/bin/ece-tools backup:list
応答の例:
code language-none The list of backup files: app/etc/env.php app/etc/config.php
-
バックアップファイルを復元します。
code language-bash ./vendor/bin/ece-tools backup:restore
古い設定を移行
Cloud infrastructure 2.2 以降でAdobe Commerceにアップグレードする場合は、config.local.php
ファイルから新しい config.php
ファイルに設定を移行することをお勧めします。 管理者の設定がファイルの内容と一致する場合は、手順に従って config.php
ファイルを生成して追加します。
異なる場合は、config.local.php
ファイルのコンテンツを新しい config.php
ファイルに追加できます。
-
指示に従って
config.php
ファイルを生成します。 -
config.php
ファイルを開き、最後の行を削除します。 -
config.local.php
ファイルを開き、内容をコピーします。 -
内容を
config.php
ファイルに貼り付け、保存して、Git への追加を完了します。 -
環境全体にデプロイします。
この移行は 1 回だけ完了します。 移行後、config.php
ファイルを使用します。
ロケールを変更
SCD_ON_DEMAND を有効にしている場合は、複雑な設定のインポートおよびエクスポートプロセスに従わずに ストアロケールを変更できます。 管理者を使用してロケールを更新できます。
別のロケールをステージング環境または実稼動環境に追加するには、統合ブランチで SCD_ON_DEMAND
を有効にし、新しいロケール情報を含む更新された config.php
ファイルを生成して、設定ファイルをターゲット環境にコピーします。
-
統合環境で、
.magento.env.yaml
ファイルを使用してSCD_ON_DEMAND
変数を有効にします。 -
管理者を使用して、必要なロケールを追加します。
-
SSH を使用してリモート環境にログインし、すべてのロケールを含む
/app/etc/config.php
ファイルを生成します。code language-bash ssh <SSH-URL> "./vendor/bin/ece-tools config:dump"
-
新しい設定ファイルをリモート統合環境からローカル環境ディレクトリにコピーします。
code language-bash rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
-
コードの変更を追加、コミット、プッシュして、リモート環境を更新します。