使用共享配置的示例
此示例说明如何在开发系统中更改以下设置,在生成系统中更新共享配置文件config.php
,以及在生产系统中实施相同的设置:
- 时区
- 重量单位
这些设置可在 商店 >设置> 配置 >常规> 常规 中的管理员中使用。
您可以使用相同的过程来配置以下引用中的任何非敏感、非系统特定的设置:
开始之前
在开始之前,请按照开发、生成和生产系统的先决条件中所述设置文件系统权限和所有权。
假设
本主题提供了修改生产系统配置的示例。 您可以根据需要选择不同的配置选项。
在本例中,我们假定:
- 您使用Git源代码控制
- 开发系统在名为
mconfig
的Git远程存储库中可用 - 您的Git工作分支名为
m2.2_deploy
步骤1:在开发系统中设置配置
要在开发系统中设置时区和重量单位,请执行以下操作:
-
登录到管理员。
-
单击“存储”>“设置”>“配置”>“常规”>“常规”。
-
在右窗格中,展开 区域设置选项。
下图显示了一个示例。
-
从 时区 列表中,单击 GMT+00:00 (UTC)。
-
清除 重量单位 字段旁边的 使用系统值 复选框。
-
从 重量单位 列表中,单击 公斤。
-
单击 保存配置。
-
如果出现提示,请刷新缓存。
第2步:更新共享配置
在开发系统中生成共享配置文件app/etc/config.php
,并使用源代码管理将其传输到生成系统,如本节所述。
要更新配置:
-
以文件系统所有者的身份登录开发系统,或切换到文件系统所有者。
-
更改为应用程序根并运行dump命令。
code language-bash cd <Magento root dir> php bin/magento app:config:dump
例如,如果
/var/www/html/magento2
中安装了Commerce,请输入: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-none 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
步骤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:更新生产系统
该流程的最后一步是从源代码管理更新您的生产系统。 这会拉取您在开发和构建系统时所做的所有更改,这意味着您的生产系统处于完全最新状态。
要更新生产系统:
-
以文件系统所有者的身份登录到生产系统。
-
更改为应用程序根并启用维护模式。
code language-bash cd <Magento root dir>
code language-bash bin/magento maintenance:enable
有关其他选项,例如设置IP地址白名单的功能,请参阅
magento maintenance:enable
。 -
通过将
app/etc/env.php
中的cron_run
设置为false
停止任何正在运行的队列工作程序,如下所示: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 中不可编辑:
-
登录到管理员。
-
单击“存储”>“设置”>“配置”>“常规”>“常规”。
-
在右窗格中,展开 区域设置选项。
您刚刚设置的选项显示如下:
magento config:set --lock
命令。