存放區設定管理

您存放區的預設設定儲存在適當模組的config.xml中。 當您在Commerce管理或CLI bin/magento config:set命令中變更設定時,這些變更會反映在核心資料庫中,特別是core_config_data表格。 這些設定會覆寫儲存在config.xml檔案中的預設組態。

存放區設定參照管理員​ 存放區 > 設定 > 設定 ​區段中的設定,根據組態型別儲存在部署組態檔中:

  • app/etc/config.php — 與靜態內容部署相關的存放區、網站、模組或副檔名、靜態檔案最佳化及系統值的組態設定。 請參閱​ 組態指南 ​中的config.php參考
  • app/etc/env.php — 系統特定覆寫的值以及應該將​ NOT ​儲存在原始檔控制中的敏感設定。 請參閱​ 組態指南 ​中的env.php參考
NOTE
由於雲端基礎結構上的Adobe Commerce僅支援生產和維護模式,因此​ 進階 > 開發人員 ​區段無法在Admin中存取。 您必須有環境管理員許可權才能完成組態管理工作。 您可以使用環境變數來設定其他設定。

配置管理提供了一種使用Pipeline部署以最小的停機時間跨環境部署一致商店設定的方法。 雲端基礎結構專案上的Adobe Commerce包括以管線部署策略設計的組建伺服器、建置和部署指令碼以及部署環境。

設定覆寫配置

所有系統組態均根據下列覆寫配置在建置和部署階段設定:

  1. 如果環境變數存在,請使用自訂設定並忽略預設設定。
  2. 如果環境變數不存在,請使用.magento.app.yaml檔案MAGENTO_CLOUD_RELATIONSHIPS名稱 — 值組的組態。 忽略預設設定。
  3. 如果環境變數不存在且MAGENTO_CLOUD_RELATIONSHIPS不包含名稱 — 值組,請移除所有自訂的設定,並使用預設設定中的值。

總而言之,環境變數會覆寫所有其他值。

TIP
請參閱​_設定指南_​中的設定管理,以取得有關管道部署的覆寫配置的詳細資訊。

如果在多個位置中設定了相同的設定,則應用程式會仰賴下列設定階層來決定要套用至環境的值:

優先順序
組態
方法
說明
1
Cloud Console
環境變數
從Cloud Console中環境設定的​ 變數 ​索引標籤新增的值。 在此處指定敏感或環境特定設定的值。 無法從管理員編輯此處指定的設定。 請參閱環境設定變數
2
.magento.app.yaml
已在.magento.app.yaml檔案的variables區段中新增值。 在此處指定值以確保在所有環境中設定一致。 請勿在.magento.app.yaml檔案中指定敏感值。 ​檢視應用程式設定
3
app/etc/env.php
使用app:config:dump命令新增儲存於此的環境特定設定值。 使用環境變數或CLI設定系統專屬的敏感值。 檢視敏感資料env.php檔案是​ 不包括在原始檔控制中
4
app/etc/config.php
使用app:config:dump命令新增儲存在此處的值。 共用組態值已新增至config.php。 從Admin或使用CLI設定共用設定。 config.php檔案包含在原始檔控制中。
5
資料庫
透過在Admin中設定設定,可新增此處儲存的值。 使用任何上述方法設定的設定會遭到鎖定(呈現灰色),且無法從Admin進行編輯。
6
config.xml
許多組態在config.xml檔案中為模組設定了預設值。 如果Adobe Commerce找不到任何由上述方法設定的值,則會回覆為預設值(如果已設定)。

設定傾印

您可以使用下列ece-tools命令產生包含所有目前存放區設定的config.php檔案:

./vendor/bin/ece-tools config:dump

「傾印」至app/etc/config.php檔案的資料會變成​ 鎖定,這表示Commerce管理員中的對應欄位會變成​ 唯讀config.php檔案僅包含您設定的設定。 它不會鎖定預設值。 僅鎖定您更新的值也可確保中繼和生產環境中使用的所有擴充功能不會因唯讀設定(尤其是Fastly)而中斷。

WARNING
ece-tools config:dump命令無法擷取模組的詳細設定,例如B2B。 如果您需要完整的組態傾印,請使用app:config:dump命令,但此命令會將組態值鎖定在唯讀狀態。

敏感資料

使用bin/magento app:config:dump命令時,任何敏感設定都會匯出至app/etc/env.php檔案。 您可以使用CLI命令設定敏感值: bin/magento config:sensitive:set。 請參閱​ Commerce PHP擴充功能 ​指南中的敏感設定和環境特定設定,瞭解如何將組態設定指定為敏感設定或系統特定設定。

請參閱​ 設定指南 ​中的敏感或系統特定設定清單。

SCD效能

根據存放區的大小,您可能有大量要部署的靜態內容檔案。 通常,當應用程式處於維護模式時,靜態內容會在部署階段進行部署。 最佳設定是在建置階段產生靜態內容。 請參閱選擇部署策略

如果您在傾印設定後啟用了「設定管理」,您應該將SCD_*變數從部署階段移至建置階段,以在建置階段正確啟用靜態內容產生。 請參閱環境變數

組態管理前​

  deploy:
    CRON_CONSUMERS_RUNNER:
      cron_run: true
      consumers: []
    SCD_STRATEGY: compact
    SCD_MATRIX:
      ...
    REDIS_USE_SLAVE_CONNECTION: 1

啟用組態管理之後

將SCD_*變數移至建置階段:

  deploy:
    CRON_CONSUMERS_RUNNER:
      cron_run: true
      consumers: []
    REDIS_USE_SLAVE_CONNECTION: 1
  build:
    SCD_STRATEGY: compact
    SCD_MATRIX:
      ...
NOTE
在部署靜態檔案之前,建置和部署階段會使用GZIP壓縮靜態內容。 壓縮靜態檔案可減少伺服器負載,並提升網站效能。 請參閱建置選項,瞭解如何自訂或停用檔案壓縮。

管理設定的程式

以下說明此程式的高層級概觀:

入門設定管理概觀

若要設定您的存放區並產生設定檔

  1. 在管理員中為存放區完成以下環境之一的所有設定:

    • 入門:作用中的開發分支
    • Pro:整合環境中的作用中分支

    這些設定不包含實際產品,除非您計畫將此環境的資料庫轉儲到中繼和生產環境。 通常開發資料庫不包含您的完整存放區資料。

  2. 在本機工作站上,變更至專案目錄。

  3. 建立遠端資料庫的本機傾印。

    code language-bash
    magento-cloud db:dump
    
  4. 新增、提交和推送程式碼變更以更新遠端環境。

    code language-bash
    git add app/etc/config.php
    
    code language-bash
    git commit -m "Add system-specific configuration"
    
    code language-bash
    git push origin <branch-name>
    

部署完成後,請登入管理員以取得更新的環境以驗證設定。 視需要繼續將任何其他設定合併到測試和生產環境。

更新設定

當您透過Admin修改您的環境並再次執行命令時,新設定會附加至config.php檔案中的程式碼。

WARNING
雖然您可以在測試和生產環境中手動編輯config.php檔案,但​ 不建議。 檔案有助於保持所有環境中的所有設定一致。 永遠不要刪除config.php檔案以進行重建。 刪除檔案可以移除建置和部署流程所需的特定配置和設定。

還原組態檔

原始app/etc/env.phpapp/etc/config.php檔案的復本是在部署過程中建立的,並儲存在相同的資料夾中。 以下顯示相同app/etc資料夾中的BAK (備份檔案)和PHP (原始檔案):

...
config.php.bak
di.xml
env.php.bak
vendor_path.php
config.php
db_schema.xml
env.php
...

舊的設定已使用app/etc/config.local.php檔案。 請參閱移轉較舊的組態

若要還原組態檔

  1. 在本機工作站上,使用SSH登入遠端專案和環境。

    code language-bash
    magento-cloud ssh
    
  2. 驗證備份檔案的位置和可用性。

    code language-bash
    ./vendor/bin/ece-tools backup:list
    

    範例回應:

    code language-none
    The list of backup files:
    app/etc/env.php
    app/etc/config.php
    
  3. 還原備份檔案。

    code language-bash
    ./vendor/bin/ece-tools backup:restore
    

移轉較舊的設定

如果您在雲端基礎結構2.2或更新版本上升級至Adobe Commerce,您可能會想要將設定從config.local.php檔案移轉至新的config.php檔案。 如果管理員中的組態設定符合檔案內容,請依照指示產生並新增config.php檔案。

如果兩者不同,您可以將內容從config.local.php檔案附加至新的config.php檔案:

  1. 依照指示產生config.php檔案。

  2. 開啟config.php檔案並刪除最後一行。

  3. 開啟config.local.php檔案並複製內容。

  4. 將內容貼入config.php檔案、儲存並完成新增到Git。

  5. 跨您的環境部署。

您僅能完成此移轉一次。 移轉之後,請使用config.php檔案。

變更地區設定

您可以變更商店地區設定,而不需遵循複雜的設定匯入和匯出程式,如果 ​您已啟用SCD_ON_DEMAND。 您可以使用「管理員」來更新地區設定。

您可以透過在整合分支中啟用SCD_ON_DEMAND,將另一個地區設定新增到測試或生產環境,使用新的地區設定資訊產生更新的config.php檔案,並將設定檔案複製到目標環境。

WARNING
此處理程式​ 覆寫 ​存放區組態;只有在環境包含相同的存放區時,才執行下列動作。
  1. 在整合環境中,使用.magento.env.yaml檔案啟用SCD_ON_DEMAND變數。

  2. 使用您的管理員新增必要的地區設定。

  3. 使用SSH登入遠端環境,並產生包含所有地區設定的/app/etc/config.php檔案。

    code language-bash
    ssh <SSH-URL> "./vendor/bin/ece-tools config:dump"
    
  4. 將新的設定檔從遠端整合環境複製到本機環境目錄。

    code language-bash
    rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
    
  5. 新增、提交和推送程式碼變更以更新遠端環境。

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26