env.php參考
- 主題:
- 設定
建立對象:
- 經驗豐富
- 管理員
- 開發人員
env.php
檔案包含下列區段:
名稱 | 說明 |
---|---|
backend | 管理區域的設定 |
cache | 設定Redis頁面和預設快取 |
cache_types | 快取儲存設定 |
consumers_wait_for_messages | 設定使用者處理訊息佇列訊息的方式 |
cron | 啟用或停用cron工作 |
crypt | 密碼編譯功能的加密金鑰 |
db | 資料庫連線設定 |
default_connection | 訊息佇列預設連線 |
directories | Commerce目錄對應設定 |
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'
]
]
]
]
'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
]
'crypt' => [
'key' => '63d409380ccb1182bfb27c231b732f05'
]
'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'
]
'install' => [
'date' => 'Tue, 23 Apr 2019 09:31:07 +0000'
]
'MAGE_MODE' => 'developer'
'queue' => [
'topics' => [
'customer.created' => [publisher="default-rabitmq"],
'order.created' => [publisher="default-rabitmq"],
]
]
'resource' => [
'default_setup' => [
'connection' => 'default'
]
]
session
工作階段設定儲存在session
節點中。
'session' => [
'save' => 'files'
],
'x-frame-options' => 'SAMEORIGIN'
'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'
我們只要將其大寫並加上前置詞MAGENTO_DC_
即可接收最終的OS環境變數名稱MAGENTO_DC_X-FRAME-OPTIONS
。
export MAGENTO_DC_X-FRAME-OPTIONS=SAMEORIGIN
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"}'