使用環境變數的範例
此範例說明如何在開發系統中設定共用、系統專屬和敏感的值,然後使用共用組態的組合在生產系統中設定所有值。 config.php
和PHP環境變數。
這些組態設定可在開發系統和生產系統之間共用:
起始VAT編號與商店名稱 商店 >設定> 設定 >一般> 一般
這些組態設定是系統專屬的或敏感的,如下所示:
- 傳送電子郵件給(敏感) 商店 >設定> 設定 >一般> 連絡人
- 預設電子郵件網域(系統特定)來源 商店 >設定> 設定 >客戶> 客戶組態 > 建立新帳戶選項
您可以使用相同的程式來配置下列參照中的任何設定:
開始之前
開始之前,請設定檔案系統許可權和擁有權,如中所述 開發、建置和生產系統的先決條件.
假設
本主題提供修改生產系統組態的範例。 您可以視需要選擇不同的組態選項。
在本範例中,我們假設如下:
- 您使用Git原始檔控制
- 開發系統可在名為的Git遠端存放庫中使用
mconfig
- 您的Git工作分支已命名
m2.2_deploy
步驟1:在開發系統中設定設定
若要在開發系統中設定預設語言環境及加權單位:
-
登入管理員。
-
按一下 商店 >設定> 設定 >一般> 一般.
-
如果您有多個可用網站,請使用 存放區檢視 清單位於左上角,可切換至不同的網站,如下圖所示。
-
在右窗格中,展開 存放區資訊.
-
如有必要,請清除 使用預設 核取方塊旁的 VAT編號 欄位。
-
在欄位中輸入數字(例如,
12345
)。 -
在 存放區名稱 欄位,輸入值(如
My Store
)。 -
按一下 儲存設定.
-
使用 存放區檢視 清單以選取 預設設定 如下圖所示。
-
在左側導覽的「一般」底下,按一下 連絡人.
-
清除 使用預設 核取方塊旁的 傳送電子郵件至 欄位。
-
在欄位中輸入電子郵件地址。
-
按一下 儲存設定.
-
在左窗格中,按一下客戶> 客戶組態.
-
在右窗格中,展開 建立新帳戶選項.
-
清除 使用系統值 核取方塊旁的 預設電子郵件網域 欄位。
-
在欄位中輸入網域名稱。
-
按一下 儲存設定.
-
如果出現提示,請排清快取。
步驟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
-
確認
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 執行 非 將變更提交至 generated
,pub/media
,或pub/static
目錄至原始檔控制。 您會在建置系統上產生這些檔案。 開發系統可能有程式碼、主題等未準備好用於生產系統的專案。 -
將您的變更籤入
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:更新您的建置系統並產生檔案
現在您已確認將共用組態的變更提交至原始檔控制,您可以在建置系統中提取這些變更、編譯程式碼,並產生靜態檔案。 最後一個步驟是將這些變更提取至您的生產系統。
更新建置系統的方式:
-
以檔案系統擁有者的身分登入組建系統。
-
變更至應用程式根目錄。
code language-bash cd <Magento root dir>
-
將變更提取至
app/etc/config.php
從原始檔控制。code language-bash git pull mconfig m2.2_deploy
-
編譯程式碼。
code language-bash bin/magento setup:di:compile
-
編譯程式碼之後,產生靜態檢視檔案。
code language-bash bin/magento setup:static-content:deploy -f
-
檢查原始檔控制中的變更。
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
BASE
,作為預設電子郵件網域組態設定。 取代 BASE
搭配您商店的適當網站程式碼。使用環境變數設定變數
您可以在中設定變數值 index.php
格式化:
$_ENV['VARIABLE'] = 'value';
若要設定變數值:
-
以檔案系統擁有者的身分登入您的生產系統,或切換到該檔案系統擁有者。
-
開啟
<Commerce root dir>/pub/index.php
在文字編輯器中。 -
任何位置
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';
-
將變更儲存至
pub/index.php
並退出文字編輯器。 -
繼續下一節。
更新共用設定
本節說明如何提取您在開發及建置系統上所做的所有變更,這些變更會更新共用組態設定(商店名稱和VAT編號)。
更新生產系統的方式:
-
以檔案系統擁有者的身分登入生產系統。
-
變更為應用程式根並啟用維護模式。
code language-bash cd <Magento root dir>
code language-bash bin/magento maintenance:enable
如需其他選項(例如設定IP位址白名單的功能),請參閱
magento maintenance:enable
. -
透過設定停止任何執行中的佇列背景工作
cron_run
至false
在app/etc/env.php
如下所示:code language-php?start_inline=1 'cron_consumers_runner' => [ 'cron_run' => false ]
-
更新設定。
code language-bash bin/magento app:config:import
-
最後,
kill
任何作用中的取用者程式。code language-bash kill <PID>
位置
PID
是要終止的處理序ID,例如:code language-bash kill 1234
-
從原始檔控制提取程式碼。
code language-bash git pull mconfig m2.2_deploy
-
更新設定。
code language-bash bin/magento app:config:import
-
清除快取。
code language-bash bin/magento cache:clean
-
結束維護模式。
code language-bash bin/magento maintenance:disable
驗證Admin中的組態設定
本節探討如何在生產系統管理員中驗證組態設定。
驗證組態設定的方式:
-
登入生產系統的管理員。
-
按一下 商店 >設定> 設定 >一般> 一般.
-
使用 存放區檢視 清單位於左上角,可切換至其他網站。
您在開發系統中設定的共用組態選項顯示如下。
note info INFO 此 存放區名稱 欄位在網站範圍中可編輯,但如果您切換至預設設定範圍,則無法編輯。 這是您在開發系統中設定選項的結果。 的值 VAT編號 無法在網站範圍中編輯。 -
如果您尚未這樣做,請切換到預設設定範圍。
-
在左側導覽的「一般」底下,按一下 連絡人.
此 傳送電子郵件至 欄位不可編輯,如下圖所示。 此為敏感設定。
-
在左窗格中,按一下客戶> 客戶組態.
-
在右窗格中,展開 建立新帳戶選項.
的值 預設電子郵件網域 欄位顯示如下。 此為系統專屬設定。