使用CLI命令的示例

此示例说明如何在开发系统中设置共享的、特定于系统的敏感值,然后将这些值部署到生产系统。
这是通过使用共享配置、config.php文件和Commerce CLI命令的组合来完成的。

此示例使用以下配置设置:

  • 共享配置设置的​ 增值税号 ​和​ 存储名称

    可在​ 商店 >设置> 配置 >常规> 常规 ​下找到这些项目。

  • ​发送敏感配置值的电子邮件。

    可在​ 商店 >设置> 配置 >常规> 联系人 ​下找到此项。

  • 系统特定配置值的​ 默认电子邮件域

    此项目位于​ 商店 >设置> 配置 >客户> 客户配置 > 新建帐户选项 ​下。

您可以使用本示例中显示的相同过程来配置以下引用中的任何设置:

开始之前

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

假设

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

在本例中,我们假定:

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

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

要在开发系统中设置默认区域设置和权重单位,请执行以下操作:

  1. 登录到管理员。

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

  3. 如果您有多个可用网站,请使用左上角的​ 商店视图 ​列表切换到其他网站,如下图所示。

    切换网站

  4. 在右窗格中,展开​ 存储信息

  5. 如有必要,请清除​ VAT编号 ​和​ 商店名称 ​字段旁边的​ 使用默认值 ​复选框。

  6. 在字段中输入数字(例如,12345)。

  7. 在​ 存储名称 ​字段中,输入一个值(如My Store)。

  8. 单击​ 保存配置

  9. 在左侧导航栏的“常规”下,单击​ 联系人

  10. 在右窗格中,展开​ 电子邮件选项

  11. 如有必要,请清除​ 将电子邮件发送到 ​字段旁边的​ 使用默认值 ​复选框。

  12. 在字段中输入电子邮件地址。

  13. 单击​ 保存配置

  14. 使用​ 存储视图 ​列表选择​ 默认配置,如下图所示。

    切换到默认配置

  15. 在左窗格中,单击“客户”>“客户配置”

  16. 在右窗格中,展开​ 新建帐户选项

  17. 如有必要,请清除​ 默认电子邮件域 ​字段旁边的​ 使用系统值 ​复选框。

  18. 在字段中输入域名。

  19. 单击​ 保存配置

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

步骤2:更新配置

现在,您已在Admin中更改配置,请使用以下步骤将共享配置写入文件:

要更新配置

  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-terminal
    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
    

即使app/etc/env.php (系统特定的配置)已更新,也不要将其签入到源代码管理。
稍后将在此过程中在生产系统上创建相同的配置设置。

步骤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中的说明进行操作,将电子邮件发送到 ​的范围为网站,默认电子邮件域 ​的范围为全局(即默认配置范围)。

    您需要网站代码以设置​ 将电子邮件发送到 ​配置值。

    有关查找此值的详细信息,请参阅: 使用环境变量覆盖配置设置

  • 此示例中使用的设置的配置路径:

    table 0-row-2 1-row-2 2-row-2
    设置名称 配置路径
    发送电子邮件至 contact/email/recipient_email
    默认电子邮件域 customer/create_account/email_domain

    有关所有敏感和系统特定的配置路径,请参阅: 敏感和系统特定的配置路径引用

使用CLI命令设置变量

使用以下CLI命令设置特定于系统的敏感配置设置:

  • magento config:set用于系统特定的设置
  • magento config:sensitive:set敏感设置

要设置系统特定的设置​ 默认电子邮件域(位于默认作用域中),请使用以下命令:

bin/magento config:set customer/create_account/email_domain <email domain>

您不需要在命令中使用范围,因为它是默认范围。

但是,要设置​ 将电子邮件发送到 ​的值,您必须知道作用域类型(website)和作用域代码,这些可能在每个网站上都不相同。

示例:

bin/magento config:sensitive:set contact/email/recipient_email --scope=website --scope-code=<website code> <email address>

更新共享设置

本节将讨论如何在开发及构建系统时执行所有更改,以及如何将更改提取到生产环境中,这会更新共享配置设置(商店名称和VAT编号)。

要更新生产系统

  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
    

在“管理员”中验证配置设置

要验证配置设置:

  1. 登录到生产系统的管理员。

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

  3. 使用左上角的​ 商店视图 ​列表切换到其他网站。

    在开发系统中设置的共享配置选项显示如下。

    检查生产系统中的设置

    note info
    INFO
    存储名称 ​字段在网站范围中可编辑,但如果您切换到默认配置范围,则无法编辑该字段。 这是您在开发系统中设置选项的结果。 增值税号 ​的值在网站范围中不可编辑。
  4. 如果您尚未这样做,请切换到默认配置范围。

  5. 在左侧导航栏的“常规”下,单击​ 联系人

    将电子邮件发送到 ​字段不可编辑,如下图所示。 这是一个敏感设置。

    检查生产系统中的设置

  6. 在左窗格中,单击“客户”>“客户配置”

  7. 在右窗格中,展开​ 新建帐户选项

    默认电子邮件域 ​字段的值显示如下。 这是系统特定的设置。

    检查生产系统中的设置

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c