设置配置值

WARNING
所有MagentoCLI命令都必须由文件系统所有者运行。

本主题讨论可用于以下操作的高级配置命令:

  • 从命令行设置任何配置选项
  • (可选)锁定任何配置选项,使其值无法在管理员中更改
  • 更改在Admin中锁定的配置选项

您可以使用这些命令手动或使用脚本设置Commerce配置。 您使用​ 配置路径 ​设置配置选项,该路径是一个以/分隔的字符串,用于唯一标识该配置选项。 您可在以下引用中找到配置路径:

您可以在以下时间设置值:

  • 在安装Commerce之前,您只能为默认范围设置配置值,因为它是唯一的有效范围。

  • 安装Commerce后,您可以为任何网站或商店视图范围设置配置值。

使用以下命令:

  • bin/magento config:set通过其配置路径设置任何非敏感配置值
  • bin/magento config:sensitive:set根据其配置路径设置任何敏感配置值
  • bin/magento config:show显示已保存的配置值;加密设置的值显示为星号

先决条件

要设置配置值,您必须至少知道以下内容之一:

  • 配置路径

  • 要设置特定范围的配置值,必须知道范围代码。

    要设置默认范围的配置值,您无需执行任何操作。

查找配置路径

请参阅以下引用:

查找范围代码

您可以在Commerce数据库或Commerce管理员中找到范围代码。

要在管理员中查找范围代码

  1. 以可以查看网站和商店视图的用户身份登录到管理员。

  2. 单击​ Stores >设置> All Stores

  3. 在右侧窗格中,单击网站或商店视图的名称以查看其代码。

    下图显示了一个示例网站代码。

    从管理员获取网站或商店视图代码

  4. 继续设置设置值

在数据库中查找作用域代码

网站和商店视图的范围代码分别存储在store_websitestore表的Commerce数据库中。

  1. 连接到Commerce数据库。

    code language-bash
    mysql -u <Commerce database username> -p
    
  2. 输入以下命令:

    code language-shell
    use <Commerce database name>;
    
    code language-shell
    SELECT * FROM store;
    
    code language-shell
    SELECT * FROM store_website;
    

    以下是示例结果:

    code language-none
    [mysql]> SELECT * FROM store_website;
    +------------+-------+--------------+------------+------------------+------------+
    | website_id | code  | name         | sort_order | default_group_id | is_default |
    +------------+-------+--------------+------------+------------------+------------+
    |          0 | admin | Admin        |          0 |                0 |          0 |
    |          1 | base  | Main Website |          0 |                1 |          1 |
    |          2 | test1 | Test Website |          0 |                3 |          0 |
    +------------+-------+--------------+------------+------------------+------------+
    

    使用code列中的值。

  3. 继续下一部分。

设置值

要设置系统特定的配置值

bin/magento config:set [--scope="..."] [--scope-code="..."] [-le | --lock-env] [-lc | --lock-config] path value

要设置敏感配置值

bin/magento config:sensitive:set [--scope="..."] [--scope-code="..."] path value

下表描述了set命令参数:

参数
描述
--scope
配置的范围。 可能的值为defaultwebsitestore。 默认值为default
--scope-code
配置的范围代码(网站代码或商店视图代码)
-e or --lock-env
锁定该值以便无法在管理员中对其进行编辑,或者更改已在管理员中锁定的设置。 该命令将该值写入<Commerce base dir>/app/etc/env.php文件。
-c or --lock-config
锁定该值以便无法在管理员中对其进行编辑,或者更改已在管理员中锁定的设置。 该命令将该值写入<Commerce base dir>/app/etc/config.php文件。 如果同时指定两个选项,--lock-config选项将覆盖--lock-env
path
必需。 配置路径
value
必需。 配置的值
INFO
自Commerce 2.2.4起,--lock-env--lock-config选项将替换--lock选项。
如果使用--lock-env--lock-config选项设置或更改值,则必须使用bin/magento app:config:import命令导入设置,然后再访问Admin或Storefront。

如果输入的配置路径不正确,此命令将返回错误

The "wrong/config/path" does not exist

有关更多信息,请参阅以下部分之一:

设置可在管理员中编辑的配置值

使用bin/magento config:set (不带 --lock-env--lock-config)将该值写入数据库。 您通过这种方式设置的值可以在管理员中进行编辑。

下面是设置商店基本URL的一些示例:

为默认范围设置基本URL:

bin/magento config:set web/unsecure/base_url http://example.com/

base网站设置基本URL:

bin/magento config:set --scope=websites --scope-code=base web/unsecure/base_url http://example2.com/

设置test存储视图的基本URL:

bin/magento config:set --scope=stores --scope-code=test web/unsecure/base_url http://example3.com/

设置无法在管理员中编辑的配置值

如果按如下方式使用--lock-env选项,则该命令会将配置值保存在<Commerce base dir>/app/etc/env.php中,并禁用该字段以在管理员中编辑该值。

bin/magento config:set --lock-env --scope=stores --scope-code=default web/unsecure/base_url http://example3.com

如果未安装Commerce,则可以使用--lock-env选项设置配置值。 但是,只能为默认范围设置值。

INFO
env.php文件特定于系统。 您不应将其传输到其他系统。 您可以使用它覆盖数据库中的配置值。 例如,您可以从另一个系统获取数据库转储并覆盖base_url和其他值,这样您就不必修改数据库。

如果按如下方式使用--lock-config选项,则配置值保存在<Commerce base dir>/app/etc/config.php中。 管理员中用于编辑此值的字段已禁用。

bin/magento config:set --lock-config --scope=stores --scope-code=default web/url/use_store 1

如果未安装Commerce,则可以使用--lock-config设置配置值。 但是,只能为默认范围设置值。

INFO
您可以将config.php传输到另一个系统,以便在该处使用相同的配置值。 例如,如果您有一个测试系统,则使用相同的config.php意味着您不必再次设置相同的配置值。

显示配置设置的值

命令选项:

bin/magento config:show [--scope[="..."]] [--scope-code[="..."]] path

位置

  • --scope是配置的范围(默认、网站、商店)。 默认值为default
  • --scope-code是配置的范围代码(网站代码或商店视图代码)
  • path是格式为first_part/second_part/third_part/etc的配置路径(required)
INFO
bin/magento config:show命令将任何加密值的值显示为一系列星号: **​**​**

示例

显示所有保存的配置

bin/magento config:show

结果:

web/unsecure/base_url - http://example.com/
general/region/display_all - 1
general/region/state_required - AT,BR,CA,CH,EE,ES,FI,LT,LV,RO,US
catalog/category/root_id - 2
analytics/subscription/enabled - 1

要显示base网站 ​的所有已保存配置,请执行以下操作:

bin/magento config:show --scope=websites --scope-code=base

结果:

web/unsecure/base_url - http://example-for-website.com/
general/region/state_required - AT,BR,CA

显示默认作用域 ​的基本URL:

bin/magento config:show web/unsecure/base_url

结果:

web/unsecure/base_url - http://example.com/

要显示base网站 ​的基本URL,请执行以下操作:

bin/magento config:show --scope=websites --scope-code=base web/unsecure/base_url

结果:

web/unsecure/base_url - http://example-for-website.com/

要显示default存储 ​的基本URL:

bin/magento config:show --scope=stores --scope-code=default web/unsecure/base_url

结果:

web/unsecure/base_url - http://example-for-store.com/
INFO
范围代码只能包含字母(a-z或A-Z)、数字(0-9)和下划线(_)。 此外,第一个字符必须是字母。 如果在创建网站或商店视图时使用大写或驼峰式大小写,则在内部匹配不区分大小写,以适应通过环境变量覆盖配置设置。 请参阅使用环境变量覆盖配置设置
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c