ストアの設定管理
ストアのデフォルトの設定は、に保存されています。 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
- システム固有のオーバーライドと重要な設定の値 ではない ソースコントロールに保存される。 を参照してください。 env.php リファレンス が含まれる 設定ガイド.
構成管理では、パイプラインデプロイメントを使用して、ダウンタイムを最小限に抑えながら、環境全体で一貫性のあるストア設定をデプロイする方法を提供します。 クラウドインフラストラクチャプロジェクト上のAdobe Commerceには、で設計された、ビルドサーバー、ビルドおよびデプロイスクリプト、デプロイメント環境が含まれます パイプラインデプロイメント戦略 覚えておいて。
構成オーバーライド スキーム
すべてのシステム設定は、次のオーバーライドスキームに従ってビルドおよびデプロイフェーズで設定されます。
- 環境変数が存在する場合、カスタム設定を使用し、デフォルト設定を無視します。
- 環境変数が存在しない場合は、
MAGENTO_CLOUD_RELATIONSHIPS
内の名前と値のペア.magento.app.yaml
ファイル. デフォルトの設定を無視します。 - 環境変数が存在しない場合、および
MAGENTO_CLOUD_RELATIONSHIPS
に名前と値のペアが含まれていない場合は、カスタマイズした設定をすべて削除し、デフォルト設定の値を使用します。
要約すると、環境変数は他のすべての値を上書きします。
同じ設定が複数の場所で設定されている場合、アプリケーションは次の設定階層に基づいて、環境に適用する値を決定します。
メソッド
環境変数
.magento.app.yaml
variables
の節 .magento.app.yaml
ファイル。 ここで値を指定し、すべての環境で一貫した設定を行います。 で機密値を指定しないでください .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
ファイルが locked つまり、Commerce管理者の対応するフィールドはになります 読み取り専用. この config.php
ファイルには、設定した設定のみが含まれます。 デフォルト値はロックされません。 また、更新した値のみをロックすると、特に Fastly の場合、読み取り専用設定が原因で、ステージング環境と実稼動環境で使用されるすべての拡張機能が破損しなくなります。
ece-tools config:dump
コマンドが、B2B などのモジュールの詳細設定を取得しない。 包括的な設定ダンプが必要な場合は、 app:config:dump
コマンド。ただし、このコマンドは、設定値を読み取り専用状態でロックします。機密データ
に書き出す機密設定 app/etc/env.php
を使用する場合、ファイルは bin/magento app:config:dump
コマンド。 機密性の高い値は、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:
...
設定を管理する手順
以下に、このプロセスの概要を示します。
ストアを設定し、設定ファイルを生成するには:
-
いずれかの環境で、管理者のストアのすべての設定を完了します。
- スターター:アクティブな開発ブランチ
- 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
ファイルはデプロイメントプロセス中に作成され、同じフォルダーに保存されます。 以下に、BAK (バックアップファイル)と PHP (元のファイル)を同じ形式で示します app/etc
フォルダー:
...
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-terminal 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
新しいロケール情報を含んだファイルを作成し、設定ファイルをターゲット環境にコピーします。
-
統合環境で、を有効にします
SCD_ON_DEMAND
を使用した変数.magento.env.yaml
ファイル. -
管理者を使用して、必要なロケールを追加します。
-
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
-
コードの変更を追加、コミット、プッシュして、リモート環境を更新します。