設定設定值

WARNING
所有MagentoCLI命令都必須由檔案系統擁有者執行。

本主題討論可用來執行下列作業的進階組態命令:

  • 從命令列設定任何組態選項
  • 可選擇鎖定任何設定選項,使其值無法在Admin中變更
  • 變更在Admin中鎖定的設定選項

您可以使用這些命令來手動或使用指令碼設定Commerce設定。 您使用​ 組態路徑 ​設定組態選項,這是唯一識別該組態選項的/分隔字串。 您可在下列參照中找到組態路徑:

您可以在下列時間設定值:

  • 安裝Commerce之前,您只能為預設範圍設定設定設定值,因為這是唯一有效的範圍。

  • 安裝Commerce後,您可以為任何網站或商店檢視範圍設定設定值。

使用下列命令:

  • bin/magento config:set根據其設定路徑設定任何非敏感設定值
  • bin/magento config:sensitive:set會依據其設定路徑設定任何敏感的設定值
  • bin/magento config:show顯示已儲存的設定值;加密設定的值顯示為星號

必要條件

若要設定組態值,您必須至少知道下列其中一項:

  • 設定路徑

  • 若要設定特定範圍的組態值,您必須知道範圍代碼。

    若要設定預設範圍的設定值,您不需要執行任何動作。

尋找設定路徑

請參閱下列參考資料:

尋找範圍代碼

您可以在Commerce資料庫或Commerce管理員中找到範圍代碼。

若要在Admin ​中尋找範圍代碼:

  1. 以可檢視網站和商店檢視的使用者身分登入「管理員」。

  2. 按一下「Stores >設定> All Stores」。

  3. 在右窗格中,按一下網站或商店檢視的名稱,以檢視其程式碼。

    下圖顯示範例網站程式碼。

    從管理員取得網站或商店檢視代碼

  4. 繼續設定

若要在資料庫 ​中尋找範圍代碼:

網站和存放區檢視的範圍程式碼分別儲存在store_websitestore表格的Commerce資料庫中。

  1. 連線至Commerce資料庫。

    code language-bash
    mysql -u <Commerce database username> -p
    
  2. 輸入下列命令:

    code language-shell
    use <Commerce database name>;
    
    code language-shell
    SELECT * FROM store;
    
    code language-shell
    SELECT * FROM store_website;
    

    範例結果如下:

    code language-none
    [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 |
    +------------+-------+--------------+------------+------------------+------------+
    

    使用code欄中的值。

  3. 繼續下一節。

設定值

若要設定系統特定組態值

bin/magento config:set [--scope="..."] [--scope-code="..."] [-le | --lock-env] [-lc | --lock-config] path value

若要設定敏感的組態值

bin/magento config:sensitive:set [--scope="..."] [--scope-code="..."] path value

下表說明set命令引數:

引數
說明
--scope
設定的範圍。 可能的值為defaultwebsitestore。 預設值為default
--scope-code
設定的範圍代碼(網站代碼或商店檢視代碼)
-e or --lock-env
鎖定值,使其無法在管理員中編輯,或變更已在管理員中鎖定的設定。 命令會將值寫入<Commerce base dir>/app/etc/env.php檔案。
-c or --lock-config
鎖定值,使其無法在管理員中編輯,或變更已在管理員中鎖定的設定。 命令會將值寫入<Commerce base dir>/app/etc/config.php檔案。 如果您同時指定兩個選項,--lock-config選項會覆寫--lock-env
path
必要。 設定路徑
value
必要。 設定的值
INFO
截至Commerce 2.2.4,--lock-env--lock-config選項會取代--lock選項。
如果您使用--lock-env--lock-config選項來設定或變更值,則必須使用bin/magento app:config:import命令來匯入設定,然後才能存取Admin或Storefront。

如果您輸入的設定路徑不正確,這個命令會傳回錯誤

The "wrong/config/path" does not exist

如需詳細資訊,請參閱下列其中一節:

設定可在Admin中編輯的設定值

使用bin/magento config:set (不含 --lock-env--lock-config)將值寫入資料庫。 您以這種方式設定的值可在Admin中編輯。

設定存放區基底URL的部分範例如下:

設定預設範圍的基底URL:

bin/magento config:set web/unsecure/base_url http://example.com/

設定base網站的基底URL:

bin/magento config:set --scope=websites --scope-code=base web/unsecure/base_url http://example2.com/

設定test存放區檢視的基本URL:

bin/magento config:set --scope=stores --scope-code=test web/unsecure/base_url http://example3.com/

設定無法在Admin中編輯的設定值

如果您依下列方式使用--lock-env選項,該命令會將組態值儲存在<Commerce base dir>/app/etc/env.php中,並停用Admin中用於編輯此值的欄位。

bin/magento config:set --lock-env --scope=stores --scope-code=default web/unsecure/base_url http://example3.com

如果未安裝Commerce,您可以使用--lock-env選項來設定組態值。 不過,您只能設定預設範圍的值。

INFO
env.php檔案是系統特定的。 您不應該將它轉移到另一個系統。 您可以使用它來覆寫資料庫中的組態值。 例如,您可以從另一個系統取得資料庫傾印並覆寫base_url和其他值,因此您不必修改資料庫。

如果您依下列方式使用--lock-config選項,組態值會儲存在<Commerce base dir>/app/etc/config.php中。 在管理員中編輯此值的欄位已停用。

bin/magento config:set --lock-config --scope=stores --scope-code=default web/url/use_store 1

如果未安裝Commerce,您可以使用--lock-config來設定組態值。 不過,您只能設定預設範圍的值。

INFO
您可以將config.php傳輸到另一個系統,以便在該處使用相同的組態值。 例如,如果您有測試系統,使用相同的config.php表示您不必再次設定相同的設定值。

顯示組態設定的值

命令選項:

bin/magento config:show [--scope[="..."]] [--scope-code[="..."]] path

位置

  • --scope是設定的範圍(預設、網站、商店)。 預設值為default
  • --scope-code是設定的範圍代碼(網站代碼或商店檢視代碼)
  • path是格式為first_part/second_part/third_part/etc (required)的設定路徑
INFO
bin/magento config:show命令會將任何加密值的值顯示為一系列星號: **​**​**

範例

若要顯示所有儲存的組態

bin/magento config:show

結果:

web/unsecure/base_url - http://example.com/
general/region/display_all - 1
general/region/state_required - AT,BR,CA,CH,EE,ES,FI,LT,LV,RO,US
catalog/category/root_id - 2
analytics/subscription/enabled - 1

若要顯示base網站 ​的所有已儲存設定:

bin/magento config:show --scope=websites --scope-code=base

結果:

web/unsecure/base_url - http://example-for-website.com/
general/region/state_required - AT,BR,CA

若要顯示預設範圍 ​的基本URL:

bin/magento config:show web/unsecure/base_url

結果:

web/unsecure/base_url - http://example.com/

若要顯示base網站 ​的基本URL:

bin/magento config:show --scope=websites --scope-code=base web/unsecure/base_url

結果:

web/unsecure/base_url - http://example-for-website.com/

若要顯示default存放區 ​的基本URL:

bin/magento config:show --scope=stores --scope-code=default web/unsecure/base_url

結果:

web/unsecure/base_url - http://example-for-store.com/
INFO
範圍代碼只能包含字母(a-z或A-Z)、數字(0-9)和底線(_)。 此外,第一個字元必須是字母。 如果在建立網站或商店檢視時使用大寫或駝峰式大小寫,則內部比對不區分大小寫,以透過環境變數來適應設定覆寫。 請參閱使用環境變數覆寫組態設定
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c