文件Commerce設定指南

僅限PaaS

env.php參考

最後更新: 2025年6月6日
  • 主題:
  • 設定

建立對象:

  • 經驗豐富
  • 管理員
  • 開發人員

env.php檔案包含下列區段:

名稱說明
backend管理區域的設定
cache設定Redis頁面和預設快取
cache_types快取儲存設定
consumers_wait_for_messages設定使用者處理訊息佇列訊息的方式
cron啟用或停用cron工作
crypt密碼編譯功能的加密金鑰
db資料庫連線設定
default_connection訊息佇列預設連線
directoriesCommerce目錄對應設定
downloadable_domains可下載網域的清單
install安裝日期
lock鎖定提供者設定
MAGE_MODE應用程式模式
queue訊息佇列設定
resource將資源名稱對應到連線
session工作階段儲存資料
system停用「管理員」中要編輯的欄位
x-frame-options[x-frame-options][x-frame-options]的設定

後端

使用env.php中的backend節點設定Commerce管理員URL的​ frontName。

'backend' => [
  'frontName' => 'admin'
]

快取

使用env.php檔案中的cache節點,設定redis頁面和預設快取。

'cache' => [
    'frontend' => [
        'default' => [
            'backend' => 'Magento\\Framework\\Cache\\Backend\\Redis',
            'backend_options' => [
                'server' => '127.0.0.1',
                'database' => '0',
                'port' => '6379'
            ],
        ],
        'page_cache' => [
            'backend' => 'Magento\\Framework\\Cache\\Backend\\Redis',
            'backend_options' => [
                'server' => '127.0.0.1',
                'port' => '6379',
                'database' => '1',
                'compress_data' => '0'
            ]
        ]
    ]
]

深入瞭解Redis組態。

cache_type

所有快取型別設定都可從此節點取得。

'cache_types' => [
  'config' => 1,
  'layout' => 1,
  'block_html' => 1,
  'collections' => 1,
  'reflection' => 1,
  'db_ddl' => 1,
  'compiled_config' => 1,
  'eav' => 1,
  'customer_notification' => 1,
  'config_integration' => 1,
  'config_integration_api' => 1,
  'full_page' => 1,
  'config_webservice' => 1,
  'translate' => 1,
  'vertex' => 1
]

深入瞭解不同的快取型別。

consumers_wait_for_messages

指定當處理的訊息數目小於max_messages值時,消費者是否應繼續輪詢訊息。 預設值為1。

'queue' => [
    'consumers_wait_for_messages' => 1
]

下列選項可供使用:

  • 1 — 消費者繼續處理來自訊息佇列的訊息,直到達到env.php檔案中指定的max_messages值為止,然後再關閉TCP連線並終止消費者處理序。 如果佇列在達到max_messages值之前排空,消費者會等待更多訊息到達。

    我們建議大型商戶使用此設定,因為系統預期訊息流程會持續不變,且不希望處理延遲。

  • 0 — 消費者處理佇列中的可用訊息、關閉TCP連線,然後終止。 即使已處理的訊息數小於env.php檔案中指定的max_messages值,消費者也不會等候其他訊息進入佇列。 這有助於防止因訊息佇列處理長時間延遲而導致cron工作發生問題。

    我們建議將此設定用於小型商家,這類商戶不希望持續傳送訊息流,且偏好節省運算資源,以換取在數天內沒有訊息時的輕微處理延遲。

cron

啟用或停用Commerce應用程式的cron工作。 預設會啟用cron工作。 若要停用它們,請新增cron設定到env.php檔案並將值設定為0。

'cron' => [
  'enabled' => 0
]
WARNING
停用cron工作時請小心。 當這些程式碼停用時,Commerce應用程式所需的基本流程將無法執行。

深入瞭解Crons。

加密

Commerce使用加密金鑰來保護密碼和其他敏感資料。 此金鑰會在安裝過程中產生。

'crypt' => [
  'key' => '63d409380ccb1182bfb27c231b732f05'
]

在​ Commerce使用手冊 ​中進一步瞭解加密金鑰。

db

此節點提供所有資料庫組態。

'db' => [
  'table_prefix' => '',
  'connection' => [
    'default' => [
      'host' => 'localhost',
      'dbname' => 'magento_db',
      'username' => 'root',
      'password' => 'admin123',
      'model' => 'mysql4',
      'engine' => 'innodb',
      'initStatements' => 'SET NAMES utf8;',
      'active' => '1'
    ]
  ]
]

default_connection

定義訊息佇列的預設連線。 值可以是db、amqp或自訂佇列系統(如redismq)。 如果您指定db以外的任何值,則必須先安裝並設定訊息佇列軟體。 否則,訊息將無法正確處理。

'queue' => [
    'default_connection' => 'amqp'
]

如果系統env.php檔案中指定了queue/default_connection,則此連線會用於透過系統的所有訊息佇列,除非已在queue_topology.xml、queue_publisher.xml或queue_consumer.xml檔案中定義特定連線。
例如,如果queue/default_connection在env.php中是amqp,但在模組的佇列組態XML檔案中指定了db連線,模組將使用MySQL做為訊息代理人。

目錄

當網頁伺服器設定為從/pub目錄提供Commerce應用程式時,需要設定選擇性目錄對應選項,以提高安全性。

'directories' => [
    'document_root_is_pub' => true
]

downloadable_domain

此節點中可用的可下載網域清單。 您可以使用CLI指令來新增、移除或列出其他網域。

'downloadable_domains' => [
    'local.vanilla.com'
]

深入瞭解可下載的網域。

安裝

Commerce應用程式的安裝日期。

'install' => [
  'date' => 'Tue, 23 Apr 2019 09:31:07 +0000'
]

鎖定

使用lock節點設定鎖定提供者設定。

深入瞭解鎖定提供者組態。

影像模式

可在此節點中設定部署模式。

'MAGE_MODE' => 'developer'

深入瞭解應用程式模式。

佇列

此節點提供訊息佇列設定。

'queue' => [
  'topics' => [
    'customer.created' => [publisher="default-rabitmq"],
    'order.created' => [publisher="default-rabitmq"],
  ]
]

深入瞭解訊息佇列。

resource

資源組態設定可在此節點中使用。

'resource' => [
  'default_setup' => [
    'connection' => 'default'
  ]
]

session

工作階段設定儲存在session節點中。

'session' => [
  'save' => 'files'
],

深入瞭解工作階段。

x-frame-options

x-frame-options標頭可使用此節點進行設定。

'x-frame-options' => 'SAMEORIGIN'

深入瞭解x-frame-options。

系統

使用此節點,Commerce會鎖定env.php檔案中的設定值,然後停用管理員中的欄位。

'system' => [
  'default' => [
    'web' => [
      'secure' => [
          'base_url' => 'https://magento.test/'
      ]
    ]
  ]

深入瞭解env-php-config-set。

將變數新增至檔案設定

您可以使用作業系統(OS)層級的環境變數來設定或覆寫每個組態選項(具有值的變數)。

env.php設定儲存在具有巢狀層級的陣列中。 若要將巢狀陣列路徑轉換成OS環境變數的字串,請將路徑中的每個索引鍵串連為雙底線字元__、大寫及首碼為MAGENTO_DC_。

例如,我們將工作階段儲存處理常式從env.php設定轉換為作業系統環境變數。

'session' => [
  'save' => 'files'
],

與__串連,且大寫金鑰將變成SESSION__SAVE。

接著,我們會使用MAGENTO_DC_加上前置詞,以取得產生的OS環境變數名稱MAGENTO_DC_SESSION__SAVE。

export MAGENTO_DC_SESSION__SAVE=files

另一個範例,讓我們轉換純量env.php組態選項路徑。

'x-frame-options' => 'SAMEORIGIN'
INFO
雖然變數名稱應大寫,但值區分大小寫,並應依檔案紀錄保留。

我們只要將其大寫並加上前置詞MAGENTO_DC_即可接收最終的OS環境變數名稱MAGENTO_DC_X-FRAME-OPTIONS。

export MAGENTO_DC_X-FRAME-OPTIONS=SAMEORIGIN
INFO
請注意,env.php內容優先順序將高於OS環境變數。

使用變數覆寫檔案設定

若要以OS環境變數覆寫現有的env.php設定選項,設定的陣列元素必須經過JSON編碼,並設定為MAGENTO_DC__OVERRIDE OS變數的值。

如果您需要覆寫多個設定選項,請在JSON編碼之前將所有選項組合在單一陣列中。

例如,讓我們覆寫下列env.php設定:

'session' => [
  'save' => 'files'
],
'x-frame-options' => 'SAMEORIGIN'

上述陣列的JSON編碼文字會是
{"session":{"save":"files"},"x-frame-options":"SAMEORIGIN"}。

現在,將它設定為MAGENTO_DC__OVERRIDE作業系統變數的值。

export MAGENTO_DC__OVERRIDE='{"session":{"save":"files"},"x-frame-options":"SAMEORIGIN"}'
INFO
如有必要,請確定JSON編碼陣列已正確加上引號及/或逸出,以防止作業系統損毀編碼字串。
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c