使用共享配置的示例

此示例说明如何在开发系统中更改以下设置,在生成系统中更新共享配置文件config.php,以及在生产系统中实施相同的设置:

  • 时区
  • 重量单位

这些设置可在​ 商店 >设置> 配置 >常规> 常规 ​中的管理员中使用。

您可以使用相同的过程来配置以下引用中的任何非敏感、非系统特定的设置:

开始之前

在开始之前,请按照开发、生成和生产系统的先决条件中所述设置文件系统权限和所有权。

假设

本主题提供了修改生产系统配置的示例。 您可以根据需要选择不同的配置选项。

在本例中,我们假定:

  • 您使用Git源代码控制
  • 开发系统在名为mconfig的Git远程存储库中可用
  • 您的Git工作分支名为m2.2_deploy

步骤1:在开发系统中设置配置

要在开发系统中设置时区和重量单位,请执行以下操作:

  1. 登录到管理员。

  2. 单击“存储”>“设置”>“配置”>“常规”>“常规”

  3. 在右窗格中,展开​ 区域设置选项

    下图显示了一个示例。

    在开发系统中设置区域设置选项

  4. 从​ 时区 ​列表中,单击​ GMT+00:00 (UTC)

  5. 清除​ 重量单位 ​字段旁边的​ 使用系统值 ​复选框。

  6. 从​ 重量单位 ​列表中,单击​ 公斤

  7. 单击​ 保存配置

  8. 如果出现提示,请刷新缓存。

第2步:更新共享配置

在开发系统中生成共享配置文件app/etc/config.php,并使用源代码管理将其传输到生成系统,如本节所述。

要更新配置

  1. 以文件系统所有者的身份登录开发系统,或切换到文件系统所有者。

  2. 更改为应用程序根并运行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
    
  3. 确认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
    请​_不_​将对generatedpub/mediapub/static目录的更改提交到源代码管理。 您可以在生成系统上生成这些文件。 开发系统可能具有代码、主题等,尚未准备好用于生产系统。
  4. 仅将您对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:更新构建系统并生成文件

现在,您已将共享配置的更改提交到源代码管理,您可以在构建系统中提取这些更改,编译代码并生成静态文件。 最后一步是将这些更改拉入您的生产系统。 因此,生产系统的配置将与开发系统匹配。

要更新生成系统

  1. 以文件系统所有者的身份登录到构建系统。

  2. 切换到应用程序根目录。

    code language-bash
    cd <Magento root dir>
    
  3. 将更改从源代码管理拉入app/etc/config.php

    code language-bash
    git pull mconfig m2.2_deploy
    
  4. 编译代码。

    code language-bash
    bin/magento setup:di:compile
    
  5. 编译代码后,生成静态视图文件。

    code language-bash
    bin/magento setup:static-content:deploy -f
    
  6. 检查源代码控制中的更改。

    code language-bash
    git add -A && git commit -m "Updated files on build system" && git push mconfig m2.2_deploy
    

步骤4:更新生产系统

该流程的最后一步是从源代码管理更新您的生产系统。 这会拉取您在开发和构建系统时所做的所有更改,这意味着您的生产系统处于完全最新状态。

要更新生产系统

  1. 以文件系统所有者的身份登录到生产系统。

  2. 更改为应用程序根并启用维护模式。

    code language-bash
    cd <Magento root dir>
    
    code language-bash
    bin/magento maintenance:enable
    

    有关其他选项,例如设置IP地址白名单的功能,请参阅magento maintenance:enable

  3. 通过将app/etc/env.php中的cron_run设置为false停止任何正在运行的队列工作程序,如下所示:

    code language-php?start_inline=1
    'cron_consumers_runner' => [
            'cron_run' => false
        ]
    
  4. 更新配置。

    code language-bash
    bin/magento app:config:import
    
  5. 最后,kill任何活动的使用者进程。

    code language-bash
    kill <PID>
    

    其中PID是要终止的进程ID,例如:

    code language-bash
    kill 1234
    
  6. 从源代码管理中提取代码。

    code language-bash
    git pull mconfig m2.2_deploy
    
  7. 更新配置。

    code language-bash
    bin/magento app:config:import
    
  8. 清理缓存。

    code language-bash
    bin/magento cache:clean
    
  9. 结束维护模式。

    code language-bash
    bin/magento maintenance:disable
    

验证管理员中的更改

验证这些设置在Admin ​中不可编辑:

  1. 登录到管理员。

  2. 单击“存储”>“设置”>“配置”>“常规”>“常规”

  3. 在右窗格中,展开​ 区域设置选项

    您刚刚设置的选项显示如下:

    配置选项在管理员中不可编辑

INFO
要更改管理员中锁定的设置,请使用magento config:set --lock命令
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c