使用CLI命令的範例

此範例說明如何在開發系統中設定共用、系統專屬和敏感的值,然後將這些值部署至生產系統。
這是透過使用共用組態、config.php檔案和Commerce CLI命令的組合來完成的。

此範例使用下列組態設定:

  • 共用組態設定的​ Vat號碼 ​和​ 存放區名稱

    您可以在​ 商店 >設定> 設定 >一般> 一般 ​下找到這些專案。

  • 傳送電子郵件給 ​以取得機密的設定值。

    您可以在​ 商店 >設定> 組態 >一般> 連絡人 ​中找到此專案。

  • 系統特定組態值的​ 預設電子郵件網域

    您可以在​ 商店 >設定> 設定 >客戶> 客戶設定 > 建立新帳戶選項 ​中找到此專案。

您可以使用本範例中所示的相同程式,來設定下列參照中的任何設定:

開始之前

開始之前,請設定檔案系統許可權和擁有權,如開發、建置和生產系統的先決條件中所述。

假設

本主題提供修改生產系統組態的範例。 您可以視需要選擇不同的組態選項。

在本範例中,我們假設如下:

  • 您使用Git原始檔控制
  • 開發系統可在名為mconfig的Git遠端存放庫中取得
  • 您的Git工作分支名為m2.2_deploy

步驟1:在開發系統中設定設定

若要在開發系統中設定預設語言環境及加權單位:

  1. 登入管理員。

  2. 按一下​ 商店 >設定> 組態 >一般> 一般

  3. 如果您有多個可用網站,請使用左上角的​ 商店檢視 ​清單,切換至不同的網站,如下圖所示。

    切換網站

  4. 在右窗格中,展開​ 存放區資訊

  5. 如有必要,請清除​ VAT編號 ​與​ 商店名稱 ​欄位旁的​ 使用預設值 ​核取方塊。

  6. 在欄位中輸入數字(例如,12345)。

  7. 在​ 存放區名稱 ​欄位中,輸入值(如My Store)。

  8. 按一下​ 儲存設定

  9. 在左側導覽列的[一般]底下,按一下[連絡人]。

  10. 在右窗格中,展開​ 電子郵件選項

  11. 如有必要,請清除​ 傳送電子郵件給 ​欄位旁的​ 使用預設值 ​核取方塊。

  12. 在欄位中輸入電子郵件地址。

  13. 按一下​ 儲存設定

  14. 使用​ 存放區檢視 ​清單來選取​ 預設設定,如下圖所示。

    切換到預設設定

  15. 在左窗格中,按一下「客戶> 客戶組態」。

  16. 在右窗格中,展開​ 建立新帳戶選項

  17. 如有必要,請清除​ 預設電子郵件網域 ​欄位旁的​ 使用系統值 ​核取方塊。

  18. 在欄位中輸入網域名稱。

  19. 按一下​ 儲存設定

  20. 如果出現提示,請排清快取。

步驟2:更新設定

現在您已變更管理員中的設定,請使用下列步驟將共用設定寫入檔案:

若要更新組態

  1. 以檔案系統擁有者的身分登入或切換到您的開發系統。

  2. 變更至應用程式根目錄,然後執行傾印命令。

    code language-bash
    cd <Magento root dir>
    php bin/magento app:config:dump
    

    例如,如果Commerce安裝在/var/www/html/magento2中,請輸入:

    code language-bash
    cd /var/www/html/magento2
    php bin/magento app:config:dump
    
  3. 確認app/etc/config.php已更新。

    code language-bash
    git status
    

    範例回應:

    code language-none
    On branch m2.2_deploy
    Changed but not updated:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
           modified:   app/etc/config.php
    
    note warning
    WARNING
    請​_不_​將變更提交至generatedpub/mediapub/static目錄至原始檔控制。 您會在建置系統上產生這些檔案。 開發系統可能有程式碼、主題等未準備好用於生產系統的專案。
  4. 只將您對app/etc/config.php的變更籤入至原始檔控制。

    code language-bash
    git add app/etc/config.php && git commit -m "Updated shared configuration" && git push mconfig m2.2_deploy
    

即使app/etc/env.php (系統特定組態)已更新,請勿將其簽入原始檔控制。
稍後在本程式中,您將在生產系統上建立相同的組態設定。

步驟3:更新您的建置系統並產生檔案

現在您已確認將共用組態的變更提交至原始檔控制,您可以將這些變更提取至您的建置系統、編譯程式碼並產生靜態檔案。

若要更新組建系統

  1. 以檔案系統擁有者的身分登入組建系統。

  2. 變更至應用程式根目錄。

    code language-bash
    cd <Magento root dir>
    
  3. 從原始檔控制提取變更到app/etc/config.php

    code language-bash
    git pull mconfig m2.2_deploy
    
  4. 編譯程式碼。

    code language-bash
    bin/magento setup:di:compile
    
  5. 編譯程式碼之後,產生靜態檢視檔案。

    code language-bash
    bin/magento setup:static-content:deploy -f
    
  6. 檢查原始檔控制中的變更。

    code language-bash
    git add -A && git commit -m "Updated files on build system" && git push mconfig m2.2_deploy
    

步驟4:更新生產系統

該流程的最後一步是更新您的生產系統。 您必須分成兩個部分來執行:

  • 更新敏感和系統專屬設定
  • 更新共用設定

更新敏感和系統專屬設定

若要使用環境變數設定敏感和系統專屬設定,您必須知道以下事項:

  • 每個設定的範圍

    如果您依照步驟1的指示進行,傳送電子郵件給 ​的範圍為網站,預設電子郵件網域 ​的範圍為全域(亦即,預設設定範圍)。

    您需要網站程式碼以設定​ 傳送電子郵件給 ​設定值。

    如需尋找此值的詳細資訊,請參閱: 使用環境變數覆寫組態設定

  • 此範例中使用的設定的設定路徑:

    table 0-row-2 1-row-2 2-row-2
    設定名稱 設定路徑
    傳送電子郵件至 contact/email/recipient_email
    預設電子郵件網域 customer/create_account/email_domain

    如需所有敏感及系統特定組態路徑,請參閱: 敏感及系統特定組態路徑參考

使用CLI命令設定變數

使用下列CLI指令來設定系統特定和敏感的組態設定:

  • 系統特定設定的magento config:set
  • magento config:sensitive:set為敏感設定

若要設定預設範圍中的系統特定設定​ 預設電子郵件網域,請使用下列命令:

bin/magento config:set customer/create_account/email_domain <email domain>

您不需要在命令中使用範圍,因為它是預設範圍。

但是,若要設定​ 傳送電子郵件至 ​的值,您必須知道範圍型別(website)和範圍代碼,每個網站上的範圍代碼可能都不相同。

範例:

bin/magento config:sensitive:set contact/email/recipient_email --scope=website --scope-code=<website code> <email address>

更新共用設定

本節探討如何將您在開發及建置系統上所做的所有變更提取至生產環境,這會更新共用組態設定(商店名稱及VAT編號)。

若要更新生產系統

  1. 以檔案系統擁有者的身分登入生產系統。

  2. 變更為應用程式根並啟用維護模式。

    code language-bash
    cd <Magento root dir>
    
    code language-bash
    bin/magento maintenance:enable
    

    如需其他選項,例如設定IP位址白名單的功能,請參閱magento maintenance:enable

  3. 透過在app/etc/env.php中將cron_run設定為false來停止任何執行中的佇列背景工作,如下所示:

    code language-php?start_inline=1
    'cron_consumers_runner' => [
            'cron_run' => false
        ]
    
  4. 更新設定。

    code language-bash
    bin/magento app:config:import
    
  5. 最後,kill任何使用中的消費者處理序。

    code language-bash
    kill <PID>
    

    其中PID是要終止的處理序識別碼,例如:

    code language-bash
    kill 1234
    
  6. 從原始檔控制提取程式碼。

    code language-bash
    git pull mconfig m2.2_deploy
    
  7. 更新設定。

    code language-bash
    bin/magento app:config:import
    
  8. 清除快取。

    code language-bash
    bin/magento cache:clean
    
  9. 結束維護模式。

    code language-bash
    bin/magento maintenance:disable
    

驗證Admin中的組態設定

若要驗證組態設定:

  1. 登入生產系統的管理員。

  2. 按一下​ 商店 >設定> 組態 >一般> 一般

  3. 使用左上角的​ 商店檢視 ​清單,切換到不同的網站。

    您在開發系統中設定的共用組態選項顯示如下。

    檢查生產系統中的設定

    note info
    INFO
    存放區名稱 ​欄位可在網站範圍中編輯,但如果您切換至預設設定範圍,則無法編輯。 這是您在開發系統中設定選項的結果。 VAT編號 ​的值在網站範圍中不可編輯。
  4. 如果您尚未這樣做,請切換到預設設定範圍。

  5. 在左側導覽列的[一般]底下,按一下[連絡人]。

    無法編輯​ 傳送電子郵件給 ​欄位,如下圖所示。 此為敏感設定。

    檢查生產系統中的設定

  6. 在左窗格中,按一下「客戶> 客戶組態」。

  7. 在右窗格中,展開​ 建立新帳戶選項

    預設電子郵件網域 ​欄位的值顯示如下。 此為系統專屬設定。

    檢查生產系統中的設定

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c