使用環境變數的範例

此範例說明如何在開發系統中設定共用、系統專屬和敏感的值,然後使用共用組態的組合在生產系統中設定所有值。 config.php和PHP環境變數。

這些組態設定可在開發系統和生產系統之間共用:

起始VAT編號與商店名稱 商店 >設定> 設定 >一般> 一般

這些組態設定是系統專屬的或敏感的,如下所示:

  • 傳送電子郵件給(敏感) 商店 >設定> 設定 >一般> 連絡人
  • 預設電子郵件網域(系統特定)來源 商店 >設定> 設定 >客戶> 客戶組態 > 建立新帳戶選項

您可以使用相同的程式來配置下列參照中的任何設定:

開始之前

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

假設

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

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

  • 您使用Git原始檔控制
  • 開發系統可在名為的Git遠端存放庫中使用 mconfig
  • 您的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. 如果出現提示,請排清快取。

步驟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-terminal
    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/media,或 pub/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

    您可在以下位置找到所有敏感且系統特定的設定路徑: 敏感和系統特定設定路徑參考.

將設定路徑轉換為變數名稱

如中所述 使用環境變數覆寫組態設定,變數的格式為:

<SCOPE>__<SYSTEM__VARIABLE__NAME>

的值 <SCOPE>CONFIG__DEFAULT__ 全域範圍或 CONFIG__WEBSITES__<WEBSITE CODE> 適用於網站範圍。

若要尋找值 <SYSTEM__VARIABLE__NAME>,取代每個 / 字元,在設定路徑中具有兩個底線。

變數名稱如下:

名稱
設定路徑
變數名稱
傳送電子郵件至
contact/email/recipient_email
CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL
預設電子郵件網域
customer/create_account/email_domain
CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN
INFO
上表有一個範例網站程式碼, BASE,作為預設電子郵件網域組態設定。 取代 BASE 搭配您商店的適當網站程式碼。

使用環境變數設定變數

您可以在中設定變數值 index.php 格式化:

$_ENV['VARIABLE'] = 'value';

若要設定變數值

  1. 以檔案系統擁有者的身分登入您的生產系統,或切換到該檔案系統擁有者。

  2. 開啟 <Commerce root dir>/pub/index.php 在文字編輯器中。

  3. 任何位置 index.php,請為變數設定類似下列的值:

    code language-php
    $_ENV['CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL'] = 'myname@example.com';
    $_ENV['CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN'] = 'magento.com';
    
  4. 將變更儲存至 pub/index.php 並退出文字編輯器。

  5. 繼續下一節。

更新共用設定

本節說明如何提取您在開發及建置系統上所做的所有變更,這些變更會更新共用組態設定(商店名稱和VAT編號)。

更新生產系統的方式

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

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

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

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

  3. 透過設定停止任何執行中的佇列背景工作 cron_runfalseapp/etc/env.php 如下所示:

    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 是要終止的處理序ID,例如:

    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