設定設定を上書き
このトピックでは、設定パスを知って環境変数名を導き出す方法について説明します。 Adobe Commerceの設定は、環境変数を使用して上書きできます。 例えば、実稼動システム上の決済代行会社のライブ URLの値を上書きできます。
環境変数を使用して、anyの構成設定の値を上書きできます。ただし、 デプロイメントの一般的な概要で説明しているように、Adobeでは、共有コンフィギュレーションファイル、config.phpおよびシステム固有のコンフィギュレーションファイル、env.phpを使用して一貫した設定を維持することをお勧めします。
環境変数
環境変数名は、そのスコープの後に、特定の形式の設定パスが続く構成で構成されます。 次の節では、変数名の決定方法について詳しく説明します。
変数は、次のいずれかに使用できます。
-
機密値は、環境変数または
magento config:sensitive:setコマンドを使用して設定する必要があります。 -
システム固有の値は、次を使用して設定する必要があります。
- 環境変数
magento config:setコマンド- 管理者の後に
magento app:config:dumpコマンド が続きます
設定パスは、次の場所にあります。
変数名
システム設定の変数名の一般的な形式は次のとおりです。
<SCOPE>__<SYSTEM__VARIABLE__NAME>
<SCOPE>は次のいずれかになります。
-
グローバルスコープ(all スコープのグローバル設定)
グローバルスコープ変数の形式は次のとおりです。
CONFIG__DEFAULT__<SYSTEM__VARIABLE__NAME> -
特定の範囲(つまり、設定は指定されたストアビューまたはweb サイトにのみ影響します)
例えば、ストアビュースコープ変数の形式は次のとおりです。
CONFIG__STORES__ <STORE_VIEW_CODE>__<SYSTEM__VARIABLE__NAME>スコープの詳細は、次を参照してください。
<SYSTEM__VARIABLE__NAME>は、/に置き換えられたダブルアンダースコア文字を含む設定パスです。 詳細については、手順2:システム変数の設定を参照してください。
変数形式
<SCOPE>は<SYSTEM__VARIABLE__NAME>から2つのアンダースコア文字で区切られています。
<SYSTEM__VARIABLE__NAME>は、構成設定の 設定パス から派生しています。これは、特定の設定を一意に識別する/区切り文字列です。 設定パスの各/文字を2つのアンダースコア文字に置き換えて、システム変数を作成します。
設定パスにアンダースコア文字が含まれている場合、アンダースコア文字は変数に残ります。
設定パスの完全なリストは、次の場所にあります。
ステップ 1:web サイトまたはストアビューのスコープ値を見つける
この節では、スコープ (ストアビューまたはweb サイト)ごとにシステム構成値を検索して設定する方法について説明します。 グローバル スコープ変数を設定するには、手順2: グローバル、web サイト、またはストア ビュー変数の設定を参照してください。
範囲の値は、store、store_group、store_website テーブルから取得されます。
storeテーブルは、ストアビュー名とコードを指定しますstore_websiteテーブルは、web サイト名とコードを指定します
また、管理者を使用してコード値を検索することもできます。
テーブルの読み方:
-
Path in Admin列コンマの前の値は、管理者ナビゲーションのパスです。 コンマの後の値は、右側のペインのオプションです。
-
Variable name列は、対応する環境変数の名前です。必要に応じて、これらの設定パラメーターのシステム値を環境変数として指定するオプションがあります。
- 変数名全体は常にALL CAPSです
- 変数名を
CONFIG__で開始します(2つのアンダースコア文字に注意) - 次の節に示すように、変数名の
<STORE_VIEW_CODE>部分または<WEBSITE_CODE>部分は、管理者またはCommerce データベースで見つけることができます。 <SYSTEM__VARIABLE__NAME>については、手順2: グローバル、web サイト、またはストアビュー変数の設定を参照してください。
管理画面でweb サイトまたはストアビューの範囲を検索する
次の表は、管理画面でweb サイトまたはストアビューの値を検索する方法をまとめたものです。
CONFIG__STORES__<STORE_VIEW_CODE>__<SYSTEM__VARIABLE__NAME>CONFIG__WEBSITES__<WEBSITE_CODE>__<SYSTEM__VARIABLE__NAME>例えば、管理画面でweb サイトまたはストアビュースコープの値を検索するには、次の手順を実行します。
-
Web サイトの表示を許可されたユーザーとして管理者にログインします。
-
Stores > All Storesをクリックします。
-
Web サイトまたはストアビューの名前をクリックします。
右側のペインは、次のように表示されます。
-
スコープ名がCode フィールドに表示されます。
データベース内のweb サイトまたはストアビュースコープを検索する
これらの値をデータベースから取得するには、次の手順を実行します。
-
まだ行っていない場合は、開発システムにファイルシステム所有者としてログインします。
-
次のコマンドを入力します。
code language-shell mysql -u <database-username> -p -
mysql>プロンプトで、次のコマンドを次の順序で入力します。code language-shell use <database-name>; -
次のSQL クエリを使用して、関連する値を検索します。
code language-shell SELECT * FROM STORE; SELECT * FROM STORE_WEBSITE;サンプルは次のとおりです。
code language-shell mysql> SELECT * FROM STORE_WEBSITE; +------------+-------+--------------+------------+------------------+------------+ | website_id | code | name | sort_order | default_group_id | is_default | +------------+-------+--------------+------------+------------------+------------+ | 0 | admin | Admin | 0 | 0 | 0 | | 1 | base | Main Website | 0 | 1 | 1 | | 2 | test1 | Test Website | 0 | 3 | 0 | +------------+-------+--------------+------------+------------------+------------+ -
nameの値ではなく、code列の値をスコープ名として使用します。例えば、テスト Web サイトの設定変数を設定するには、次の形式を使用します。
code language-shell CONFIG__WEBSITES__TEST1__<SYSTEM__VARIABLE__NAME><SYSTEM__VARIABLE__NAME>は次のセクションから来ます。
ステップ 2:グローバル、web サイト、またはストアビュー変数を設定する
この節では、システム変数の設定方法について説明します。
-
グローバルスコープの値(つまり、すべてのweb サイト、ストア、ストアビュー)を設定するには、変数名を
CONFIG__DEFAULT__から始めます。 -
特定のストアビューまたはweb サイトの値を設定するには、手順1: スコープ値で説明されているように変数名を開始します。
CONFIG__WEBSITESCONFIG__STORES
-
変数名の最後の部分は設定パスで、設定ごとに一意です。
次の表に、いくつかのサンプル変数を示します。
<SCOPE>__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME<SCOPE>__CATALOG__SEARCH__ELASTICSEARCH_SERVER_PORT<SCOPE>__SHIPPING__ORIGIN__COUNTRY_ID<SCOPE>__ADMIN__URL__CUSTOM<SCOPE>__ADMIN__URL__CUSTOM_PATH例
この節では、いくつかのサンプル変数の値を検索する方法を示します。
Elasticsearch サーバーホスト名
グローバルなHTML縮小の変数名を検索するには:
-
範囲の決定:
グローバル スコープなので、変数名は
CONFIG__DEFAULT__で始まります -
残りの変数名は
CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAMEです。結果:変数名は
CONFIG__DEFAULT__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAMEです
輸送国の起源
配送国の原産地の変数名を検索するには、次の手順を実行します。
環境変数の使用方法
PHPの$_ENV関連付け配列を使用して、設定値を変数として設定します。 Commerceの実行時に実行される任意のPHP スクリプトで値を設定できます。
index.phpまたはpub/index.phpで変数値を設定すると、web サーバーの構成に応じて異なるアプリケーションエントリポイントを使用できるため、必ずしも期待どおりに機能するとは限りません。 アプリケーションのエントリポイントが異なっても、$_ENV ディレクティブをapp/bootstrap.php ファイルに配置すると、app/bootstrap.php ファイルがCommerce アーキテクチャの一部として読み込まれるため、$_ENV ディレクティブは常に実行されます。2つの$_ENV値を設定する例を次に示します。
$_ENV['CONFIG__DEFAULT__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME'] = 'http://search.example.com';
$_ENV['CONFIG__DEFAULT__GENERAL__STORE_INFORMATION__MERCHANT_VAT_NUMBER'] = '1234';
ステップバイステップの例は、環境変数を使用して設定値を設定に示しています。
-
$_ENV配列で設定した値を使用するには、php.iniファイルにvariables_order = "EGPCS"(Environment、Get、Post、Cookie、およびServer)を設定する必要があります。 詳しくは、PHP ドキュメント を参照してください。 -
Adobe Commerce on cloud infrastructureの場合、Project Web Interfaceを使用して構成設定を上書きする場合は、変数名の前に
env:を付ける必要があります。 例: