ストア設定管理
ストアのデフォルト設定は、適切なモジュールのconfig.xmlに保存されます。 Commerce AdminまたはCLI bin/magento config:set コマンドで設定を変更すると、その変更はコアデータベース、特にcore_config_data テーブルに反映されます。 これらの設定は、config.xml ファイルに保存されている既定の設定を上書きします。
管理者ストア > 設定 > 設定 セクションの設定を参照するストア設定は、設定のタイプに基づいてデプロイメント設定ファイルに保存されます。
app/etc/config.php– 静的コンテンツのデプロイメントに関連するストア、web サイト、モジュールまたは拡張機能、静的ファイルの最適化、およびシステム値の設定。 設定ガイドのconfig.php リファレンス を参照してください。app/etc/env.php- システム固有のオーバーライドの値と、NOTをソース コントロールに保存する必要がある機密設定。 設定ガイドのenv.php リファレンス を参照してください。
設定管理を使用すると、パイプラインのデプロイメントを使用して、ダウンタイムを最小限に抑えながら、環境全体で一貫したストア設定をデプロイできます。 Adobe Commerce on cloud infrastructure プロジェクトには、 パイプラインのデプロイメント戦略を念頭に置いて設計されたビルドサーバー、ビルドおよびデプロイ環境が含まれます。
設定の上書きスキーム
すべてのシステム設定は、次のオーバーライドスキームに従って、ビルドおよびデプロイのフェーズ中に設定されます。
- 環境変数が存在する場合は、カスタム設定を使用し、デフォルト設定を無視します。
- 環境変数が存在しない場合は、
.magento.app.yamlファイル のMAGENTO_CLOUD_RELATIONSHIPSの名前と値のペアの設定を使用します。 デフォルト設定を無視します。 - 環境変数が存在せず、
MAGENTO_CLOUD_RELATIONSHIPSに名前と値のペアが含まれていない場合は、カスタマイズされた設定をすべて削除し、デフォルト設定の値を使用します。
要約すると、環境変数は他のすべての値を上書きします。
同じ設定が複数の場所で設定されている場合、アプリケーションは次の設定階層に依存して、環境に適用する値を決定します。
メソッド
環境変数
.magento.app.yaml.magento.app.yaml ファイルのvariables セクションに追加された値。 ここで値を指定すると、すべての環境で一貫した設定が行われます。 .magento.app.yaml ファイルで機密値を指定しないでください。 アプリケーション設定を参照してください。app/etc/env.phpapp:config:dump コマンドを使用して追加されます。 環境変数またはCLIを使用して、システム固有の値と機密性の高い値を設定します。 機密データ を参照してください。 env.php ファイルは not でソース コントロールに含まれています。app/etc/config.phpapp:config:dump コマンドを使用して追加されます。 共有設定値がconfig.phpに追加されます。 管理者またはCLIを使用して、共有設定を設定します。 config.php ファイルはソース管理に含まれています。config.xmlconfig.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を使用して、機密値を設定できます。 Commerce PHP Extensions ガイドの機密性の高い環境固有の設定を参照して、機密性の高い設定またはシステム固有の設定を指定する方法について説明します。
設定ガイドの機密設定またはシステム固有の設定の一覧を参照してください。
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:
...
設定を管理する手順
このプロセスの概要を次に示します。
ストアを設定して設定ファイルを生成するには:
-
いずれかの環境の管理者で、ストアのすべての設定を完了します。
- Starter: アクティブな開発ブランチ
- Pro:統合環境のアクティブなブランチ
これらの設定には、データベースをこの環境からステージング環境および実稼動環境にダンプする予定がない限り、実際の製品は含まれません。 通常、開発データベースにはストア全体のデータは含まれません。
-
ローカル ワークステーションで、プロジェクト ディレクトリに移動します。
-
リモートデータベースのローカルダンプを作成します。
code language-bash magento-cloud db:dump -
コード変更を追加、コミット、プッシュして、リモート環境を更新します。
code language-bash git add app/etc/config.phpcode 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 ファイルを使用します。
ロケールを変更
複雑な設定の読み込みおよび書き出しプロセスに従うことなく、ストアのロケールを変更できます。ifSCD_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 -
コード変更を追加、コミット、プッシュして、リモート環境を更新します。