覆寫組態設定

本主題討論如何在知道設定路徑的情況下衍生環境變數名稱。 您可以使用環境變數覆寫Adobe Commerce組態設定。 例如,您可以在生產系統上覆寫付款處理者的即時URL值。

您可以覆寫下列專案的值: 任何 使用環境變數進行組態設定;不過,Adobe建議您使用共用組態檔來維持一致的設定。 config.php以及系統特定組態檔、 env.php,如中所述 部署一般概覽.

TIP
檢視 設定環境 中的主題 雲端基礎結構上的Commerce指南.

環境變數

環境變數名稱包含其範圍,及其以特定格式顯示的設定路徑。 以下小節將更詳細地討論如何決定變數名稱。

您可以將變數用於下列任一專案:

可在下列位置找到設定路徑:

變數名稱

系統設定變數名稱的一般格式如下:

<SCOPE>__<SYSTEM__VARIABLE__NAME>

<SCOPE> 可以是下列其中一項:

<SYSTEM__VARIABLE__NAME> 是以雙底線字元取代的組態路徑 /. 如需詳細資訊,請參閱 步驟2:設定系統變數.

變數格式

<SCOPE> 分隔自 <SYSTEM__VARIABLE__NAME> 兩個底線字元。

<SYSTEM__VARIABLE__NAME> 衍生自組態設定的 設定路徑,即 / 可唯一識別特定設定的分隔字串。 取代每個 / 字元(在設定路徑中具有兩個底線字元)來建立系統變數。

如果設定路徑包含底線字元,底線字元仍會保留在變數中。

您可以在下列位置找到設定路徑的完整清單:

步驟1:尋找網站或商店檢視範圍值

本節探討如何根據下列專案尋找及設定系統組態值: 範圍 (商店檢視或網站)。 若要設定全域範圍變數,請參閱 步驟2:設定全域、網站或商店檢視變數.

範圍值來自 storestore_group、和 store_website 表格。

  • store 表格指定存放區檢視名稱和代碼
  • store_website 表格會指定網站名稱和代碼

您也可以使用「管理員」來尋找代碼值。

如何讀取表格:

  • Path in Admin

    逗號前的值是管理員導覽中的路徑。 逗號後的值是右窗格中的選項。

  • Variable name 欄是對應環境變數的名稱。

    您可以視需要將這些組態引數的系統值指定為環境變數。

    • 整個變數名稱一律為全大寫
    • 變數名稱的開頭為 CONFIG__ (注意兩個底線字元)
    • 您可找到 <STORE_VIEW_CODE><WEBSITE_CODE> Admin或Commerce資料庫中變數名稱的一部分,如下列區段所示。
    • 您可以找到 <SYSTEM__VARIABLE__NAME> 如中所述 步驟2:設定全域、網站或商店檢視變數.

在管理員中尋找網站或商店檢視範圍

下表摘要說明如何在「管理員」中尋找網站或商店檢視值。

說明
管理員中的路徑
變數名稱
建立、編輯、刪除存放區檢視
Stores > All Stores
CONFIG__STORES__<STORE_VIEW_CODE>__<SYSTEM__VARIABLE__NAME>
建立、編輯、刪除網站
Stores > All Stores
CONFIG__WEBSITES__<WEBSITE_CODE>__<SYSTEM__VARIABLE__NAME>

例如,若要在「管理員」中尋找網站或存放區檢視範圍值:

  1. 以獲授權檢視網站的使用者身分登入「管理員」 。

  2. 按一下 Stores > All Stores.

  3. 按一下網站或商店檢視的名稱。

    右窗格顯示如下。

    尋找網站程式碼

  4. 範圍名稱會顯示在 Code 欄位。

  5. 繼續使用 步驟2:設定全域、網站或商店檢視變數.

在資料庫中尋找網站或商店檢視範圍

若要從資料庫取得這些值:

  1. 如果您尚未以檔案系統擁有者的身分登入您的開發系統,請先登入。

  2. 輸入下列命令:

    code language-bash
    mysql -u <database-username> -p
    
  3. mysql> 提示,請依照顯示的順序輸入下列命令:

    code language-shell
    use <database-name>;
    
  4. 使用下列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 |
    +------------+-------+--------------+------------+------------------+------------+
    
  5. 使用來自以下位置的值: code 欄做為範圍名稱,而不是 name 值。

    例如,若要設定「測試網站」的組態變數,請使用下列格式:

    code language-shell
    CONFIG__WEBSITES__TEST1__<SYSTEM__VARIABLE__NAME>
    

    位置 <SYSTEM__VARIABLE__NAME> 來自下一個區段。

步驟2:設定全域、網站或商店檢視變數

本節將討論如何設定系統變數。

  • 若要設定全域範圍(亦即所有網站、商店和商店檢視)的值,請在變數名稱開頭使用 CONFIG__DEFAULT__.

  • 若要設定特定商店檢視或網站的值,請依照中所述啟動變數名稱 步驟1:尋找範圍值

    • CONFIG__WEBSITES
    • CONFIG__STORES
  • 變數名稱的最後一部分是組態路徑,每個組態設定都具有唯一性。

檢視一些範例.

下表顯示一些範例變數。

說明
管理中的路徑(省略) 商店 > 設定 > 設定)
變數名稱
Elasticsearch伺服器主機名稱
目錄> 目錄Elasticsearch伺服器主機名稱
<SCOPE>__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME
Elasticsearch伺服器連線埠
目錄> 目錄Elasticsearch伺服器連線埠
<SCOPE>__CATALOG__SEARCH__ELASTICSEARCH_SERVER_PORT
出貨國家/地區
銷售> 送貨設定
<SCOPE>__SHIPPING__ORIGIN__COUNTRY_ID
自訂管理員URL
進階> 管理員
<SCOPE>__ADMIN__URL__CUSTOM
自訂管理路徑
進階> 管理員
<SCOPE>__ADMIN__URL__CUSTOM_PATH

範例

本節說明如何尋找某些範例變數的值。

Elasticsearch伺服器主機名稱

若要尋找全域HTML縮制的變數名稱:

  1. 決定範圍。

    這是全域範圍,所以變數名稱開頭為 CONFIG__DEFAULT__

  2. 變數名稱的其餘部分為 CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME.

    結果:變數名稱為 CONFIG__DEFAULT__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME

出貨國家/地區

若要尋找出貨國家/地區的變數名稱,請執行下列步驟:

  1. 決定範圍。

    在中尋找範圍 資料庫 如步驟1中所述:尋找網站或商店檢視範圍值。 (您也可以在「管理員」中找到值,如 [步驟2中的表格:設定全域、網站或商店檢視變數] (#step-2-set-global-website-or-store-view-variables。

    例如,範圍可以是 CONFIG__WEBSITES__DEFAULT.

  2. 變數名稱的其餘部分為 SHIPPING__ORIGIN__COUNTRY_ID.

    結果:變數名稱為 CONFIG__WEBSITES__DEFAULT__SHIPPING__ORIGIN__COUNTRY_ID

如何使用環境變數

使用PHP的設定組態值為變數 $_ENV 關聯陣列。 您可以在Commerce執行時執行的任何PHP指令碼中設定值。

TIP
設定變數值 index.phppub/index.php 由於可根據Web伺服器組態使用不同的應用程式進入點,因此不一定能如預期運作。 透過放置 $_ENV 中的指示 app/bootstrap.php 檔案,無論不同的應用程式入口點為何, $_ENV 指示詞一律執行,因為 app/bootstrap.php 檔案會在Commerce架構中載入。

設定兩個的範例 $_ENV 值如下:

$_ENV['CONFIG__DEFAULT__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME'] = 'http://search.example.com';
$_ENV['CONFIG__DEFAULT__GENERAL__STORE_INFORMATION__MERCHANT_VAT_NUMBER'] = '1234';

逐步範例顯示於 使用環境變數設定設定設定值.

WARNING
  • 若要使用您在 $_ENV 陣列,您必須設定 variables_order = "EGPCS"(環境、Get、Post、Cookie和伺服器) php.ini 檔案。 如需詳細資訊,請參閱 PHP檔案.

  • 針對雲端基礎結構上的Adobe Commerce,如果您嘗試使用 Project Web介面,您必須在變數名稱前面加上 env:. 例如:

環境變數範例
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c