高级内部部署安装

TIP
丢失? 需要帮忙吗? 尝试我们的快速入门安装参与者安装指南。
NOTE
如果您选择启用SELinux,请参阅SELinux和iptables

命令行界面(CLI)

Adobe Commerce具有用于安装和配置任务的单个命令行界面: <magento_root>/bin/magento。 该界面可执行多种任务,包括:

  • 安装(以及创建或更新数据库架构、创建部署配置等相关任务)。
  • 正在清除缓存。
  • 管理索引,包括重新编制索引。
  • 创建翻译词典和翻译包。
  • 为插件生成不存在的类(如工厂和侦听器),并为对象管理器生成依赖关系注入配置。
  • 正在部署静态视图文件。
  • 从更少内容创建CSS。

其他好处:

  • 单个命令(<magento_root>/bin/magento list)列出了所有可用的安装和配置命令。
  • 基于Symfony的一致用户界面。
  • CLI是可扩展的,因此第三方开发人员可以“插入”到其中。 这还有消除用户学习曲线的额外好处。
  • 禁用模块的命令不显示。

本主题讨论如何使用CLI安装Adobe Commerce软件。 有关配置的信息,请参阅配置指南

如果需要,安装程序可以多次运行,这样您可以:

  • 提供不同的值

    例如,在为Web服务器配置安全套接字层(SSL)后,可以运行安装程序来设置SSL选项。

  • 更正以前安装中的错误

  • 在其他数据库实例中安装Adobe Commerce

开始安装之前

在开始之前,请完成以下步骤:

NOTE
必须从bin子目录安装Adobe Commerce。

您可以使用不同的选项多次运行安装程序以完成如下安装任务:

  • 分阶段安装 — 例如,在为Web服务器配置安全套接字层(SSL)后,可以再次运行安装程序以设置SSL选项。

  • 更正以前安装中的错误。

  • 在其他数据库实例中安装Adobe Commerce。

NOTE
默认情况下,如果在同一数据库实例中安装软件,则安装程序不会覆盖数据库。 您可以使用可选的cleanup-database参数来更改此行为。

另请参阅更新、重新安装、卸载

安全安装

若要对管理员和店面都使用安全套接字层(SSL)(也称为HTTPS),您必须设置以下所有参数:

  • --use-secure:设置为1
  • --base-url-secure:设置为安全URL(即,从https://开始)
  • --use-secure-admin设置为1

有关这些参数的更多详细信息,请参阅本主题后面的部分。

安装程序帮助命令

可以运行以下命令来查找某些所需参数的值:

安装程序参数
命令
语言
bin/magento info:language:list
货币
bin/magento info:currency:list
时区
bin/magento info:timezone:list
NOTE
如果在运行这些命令时显示错误,请验证是否已按照更新安装依赖项中所述更新了安装依赖项。

从命令行安装

install命令使用以下格式:

bin/magento setup:install --<option>=<value> ... --<option>=<value>

下表描述了安装选项名称和值。 有关安装命令的示例,请参阅示例localhost安装

NOTE
任何包含空格或特殊字符的选项都必须用单引号或双引号括起来。

管理员凭据:

以下选项指定管理员用户的用户信息和凭据。

您可以在安装期间或安装后创建管理员用户。 如果在安装期间创建用户,则需要所有管理员凭据变量。 请参阅本地主机安装示例

下表提供了许多而非所有可用的安装参数。 有关完整列表,请参阅命令行工具引用

名称
必需?
--admin-firstname
管理员用户的名字。
--admin-lastname
管理员用户的姓氏。
--admin-email
管理员用户的电子邮件地址。
--admin-user
管理员用户名。
--admin-password
管理员用户密码。 密码长度必须至少为7个字符,并且必须至少包含一个字母字符和一个数字字符。 我们建议使用更长、更复杂的密码。 用单引号将整个密码字符串括起来。 例如,--admin-password='A0b9%t3g'

站点和数据库配置选项:

名称
必需?
--base-url
用于以下列任何格式访问管理员和店面的基本URL:

http[s]://<host or ip>/<your install dir>/

注意: ​方案(http://或https://)和尾随斜杠都是必需的。

<your install dir>是安装Adobe Commerce软件的docroot相对路径。 根据您设置Web服务器和虚拟主机的方式,路径可能是magento2或为空。

访问Adobe Commerce或MagenAdobe Commerceuse http://127.0.0.1/<your install dir>/http://127.0.0.1/<your install dir>/

- {{base_url}},表示由虚拟主机设置或Docker等虚拟化环境定义的基本URL。 例如,如果您设置了主机名为magento.example.com的虚拟主机,则可以使用--base-url={{base_url}}安装软件,并使用类似http://magento.example.com/admin的URL访问管理员。
--backend-frontname
用于访问管理员的统一资源标识符(URI)。 您可以忽略此参数,以便应用程序使用以下模式为您生成随机URI admin_jkhgdfq.

出于安全考虑,我们建议使用随机URI。 黑客或恶意软件更难利用随机URI。

URI显示在安装结束时。 您可以稍后随时使用bin/magento info:adminuri命令显示它。

如果您选择输入值,我们建议您不要使用诸如admin、backend之类的常用词。 管理员URI只能包含字母数字值和下划线字符(_)。
--db-host
使用以下任一项:

— 数据库服务器的完全限定主机名或IP地址。

- localhost(默认)或127.0.0.1(如果数据库服务器与Web服务器位于同一主机上)。localhost表示MySQL客户端库使用UNIX套接字连接到数据库。 127.0.0.1导致客户端库使用TCP协议。 有关套接字的详细信息,请参阅PHP PDO_MYSQL文档

注意: ​您可以选择在其主机名中指定数据库服务器端口,如www.example.com:9000
--db-name
要在其中安装数据库表的数据库实例的名称。

默认值为magento2
--db-user
数据库实例所有者的用户名。

默认值为root
--db-password
数据库实例所有者的密码。
--db-prefix
仅当在已有Adobe Commerce表的数据库实例中安装数据库表时才使用。

在这种情况下,请使用前缀来标识此安装的表。 某些客户有多个Adobe Commerce或MagenAdobe Commerceserver,在同一数据库中包含所有表。

前缀长度最多可为5个字符。 它必须以字母开头,并且只能包含字母、数字和下划线字符。

此选项使这些客户能够与多个Adobe Commerce安装共享数据库服务器
--db-ssl-key
客户端密钥的路径。
--db-ssl-cert
客户端证书的路径。
--db-ssl-ca
服务器证书的路径。
--language
在管理员和店面中使用的语言代码。 (如果尚未这样做,则可以通过输入bin目录中的bin/magento info:language:list来查看语言代码列表。)
--currency
店面中使用的默认货币。 (如果尚未这样做,则可以通过输入bin目录中的bin/magento info:currency:list来查看货币列表。)
--timezone
在管理员和店面中使用的默认时区。 (如果您尚未这样做,则可以通过输入bin/目录中的bin/magento info:timezone:list来查看时区列表。)
--use-rewrites
1表示您对店面和管理中生成的链接使用Web服务器重写。

0禁用使用Web服务器重写。 这是默认设置。
--use-secure
1允许在店面URL中使用安全套接字层(SSL)。 在选择此选项之前,请确保您的Web服务器支持SSL。

0禁用使用SSL。 在这种情况下,所有其他安全URL选项也假定为0。 这是默认设置。
--base-url-secure
用于访问管理员和店面的安全基础URL,格式如下: http[s]://<host or ip>/<your install dir>/
--use-secure-admin
1表示您使用SSL访问管理员。 在选择此选项之前,请确保您的Web服务器支持SSL。

0表示您未将SSL与管理员一起使用。 这是默认设置。
--admin-use-security-key
1导致应用程序使用随机生成的键值来访问Admin和表单中的页面。 这些键值有助于防止跨站点脚本伪造攻击。 这是默认设置。

0禁用密钥。
--session-save
使用以下任意选项:

- db在数据库中存储会话数据。 如果您有群集数据库,请选择数据库存储;否则,与基于文件的存储相比可能没有太大好处。

- files在文件系统中存储会话数据。 基于文件的会话存储是合适的,除非文件系统访问速度较慢,您有群集数据库,或者您想在Redis中存储会话数据。

- redis在Redis中存储会话数据。 如果将Redis用于默认缓存或页面缓存,则必须已安装Redis。 有关配置对Redis的支持的其他信息,请参阅将Redis用于会话存储。
--key
如果您有密钥,请指定密钥以加密数据库中的敏感数据。 如果您没有,应用程序将为您生成一个。
--cleanup-database
要在安装Adobe Commerce之前删除数据库表,请指定此参数,而不使用值。 否则,数据库将保持不变。
--db-init-statements
高级MySQL配置参数。 在连接到MySQL数据库时使用数据库初始化语句运行。 在设置任何值之前,请先查阅类似此参考资料。

默认值为SET NAMES utf8;
--sales-order-increment-prefix
指定字符串值以用作销售订单的前缀。 通常,这用于确保付款处理商的唯一订单号。

搜索引擎配置选项:

名称
必需?
--search-engine
用作搜索引擎的Elasticsearch或OpenSearch的版本。 默认值为elasticsearch7。 Elasticsearch5已被弃用,不建议使用。
--elasticsearch-host
运行Elasticsearch的主机名或IP地址。 默认值为localhost
--elasticsearch-port
传入HTTPElasticsearch的请求端口。 默认值为9200
--elasticsearch-index-prefix
标识Elasticsearch搜索索引的前缀。 默认值为magento2
--elasticsearch-timeout
系统超时前的秒数。 默认值为15
--elasticsearch-enable-auth
在Elasticsearch服务器上启用身份验证。 默认值为false
--elasticsearch-username
用于向Elasticsearch服务器进行身份验证的用户ID。
否,除非启用身份验证
--elasticsearch-password
用于向Elasticsearchserver进行验证的密码。
否,除非启用身份验证
--opensearch-host
运行OpenSearch的主机名或IP地址。 默认值为localhost
--opensearch-port
用于传入HTTP请求的OpenSearch端口。 默认值为9200
--opensearch-index-prefix
标识OpenSearch搜索索引的前缀。 默认值为magento2
--opensearch-timeout
系统超时前的秒数。 默认值为15
--opensearch-enable-auth
在OpenSearch服务器上启用身份验证。 默认值为false
--opensearch-username
用于向OpenSearch服务器进行身份验证的用户ID。
否,除非启用身份验证
--opensearch-password
用于向OpenSearch服务器进行身份验证的密码。
否,除非启用身份验证

RabbitMQ配置选项:

名称
必需?
--amqp-host
请勿使用--amqp选项,除非您已设置RabbitMQ的安装。 有关安装和配置RabbitMQ的详细信息,请参阅RabbitMQ安装。

安装RabbitMQ的主机名。
--amqp-port
用于连接到RabbitMQ的端口。 默认值为5672。
--amqp-user
用于连接到RabbitMQ的用户名。 不要使用默认用户guest
--amqp-password
用于连接到RabbitMQ的密码。 不要使用默认密码guest
--amqp-virtualhost
用于连接到RabbitMQ的虚拟主机。 默认值为/
--amqp-ssl
指示是否连接到RabbitMQ。 默认值为false。 有关为RabbitMQ设置SSL的信息,请参阅RabbitMQ。
--consumers-wait-for-messages
用户是否应该等待来自队列的消息? 1 — 是,0 — 否

锁定配置选项:

名称
必需?
--lock-provider
锁定提供程序名称。

可用的锁定提供程序: dbzookeeperfile

默认锁定提供程序: db
--lock-db-prefix
使用db锁定提供程序时为避免锁定冲突而使用的特定数据库前缀。

默认值: NULL
--lock-zookeeper-host
使用zookeeper锁定提供程序时用于连接到Zookeeper群集的主机和端口。

例如: 127.0.0.1:2181
是,如果您设置--lock-provider=zookeeper
--lock-zookeeper-path
Zookeeper保存锁的路径。

默认路径为: /magento/locks
--lock-file-path
保存文件锁定的路径。
是,如果您设置--lock-provider=file

使用者配置选项:

名称
描述
必填
--consumers-wait-for-messages
确定使用者是否将等待来自队列的消息。
1 — 是,0 — 否
  • 0:使用者处理队列中的可用消息,关闭TCP连接并终止。 即使已处理的消息数小于在启动使用者期间指定的--max_messages值,使用者也不会等待其他消息进入队列。

  • 1:使用者继续处理来自讯息伫列的讯息,直到达到讯息数目上限(在queue:consumers:start命令上为--max_messages指定的值)为止,然后关闭TCP连线并终止使用者处理序。 如果队列在到达--max_messages之前排空,则使用者将等待更多消息到达。 如果使用工作程序运行使用者而不是使用cron作业,则将此变量设置为1

WARNING
--consumers-wait-for-messages选项是全局选项,不能为每个使用者单独配置。
NOTE
要在安装Adobe Commerce后启用或禁用模块,请参阅启用和禁用模块

敏感数据:

Adobe Commerce使用您的加密密钥加密以下内容:

  • 信用卡信息
  • 在管理员配置中指定的用户名和密码(例如,登录到付款网关)
  • 通过网络发送的验证码值

Adobe Commerce ​加密:

  • 管理用户名和客户用户名和密码(这些密码经过哈希处理)
  • 地址
  • 电话号码
  • 除信用卡号之外的其他类型的个人身份信息

localhost安装示例

以下示例显示了使用各种选项在本地安装Adobe Commerce的命令。

示例1 — 使用管理员用户帐户进行基本安装

以下示例使用下列选项安装Adobe Commerce:

  • 该应用程序安装在localhost上相对于Web服务器docroot的magento2目录中,并且管理员的路径为admin;因此:

    您的店面URL是http://127.0.0.1

  • 数据库服务器与Web服务器位于同一主机上。

    数据库名称为magento,用户名和密码均为magento

  • 使用服务器重写

  • 管理员具有以下属性:

    • 名字和姓氏是Magento User
    • 用户名是admin,密码是admin123
    • 电子邮件地址为user@example.com
  • 默认语言为en_US (美国英语)

  • 默认货币为美元

  • 默认时区为美国中部(美洲/芝加哥)

  • OpenSearch 1.2安装在os-host.example.com上并连接到端口9200

magento setup:install --base-url=http://127.0.0.1/magento2/ \
--db-host=localhost --db-name=magento --db-user=magento --db-password=magento \
--admin-firstname=Magento --admin-lastname=User --admin-email=user@example.com \
--admin-user=admin --admin-password=admin123 --language=en_US \
--currency=USD --timezone=America/Chicago --use-rewrites=1 \
--search-engine=opensearch --opensearch-host=os-host.example.com \
--opensearch-port=9200

类似于以下内容的消息显示指示安装成功:

Post installation file permissions check...
For security, remove write permissions from these directories: '/var/www/html/magento2/app/etc'
[Progress: 274 / 274]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Admin Panel URI: /admin_puu71q

示例2 — 无管理员用户帐户的基本安装

您可以安装Adobe Commerce而不创建管理员用户,如以下示例所示。

magento setup:install --base-url=http://127.0.0.1/magento2/ \
--db-host=localhost --db-name=magento --db-user=magento --db-password=magento \
--language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1 \
--search-engine=opensearch --opensearch-host=os-host.example.com \
--opensearch-port=9200

如果安装成功,将显示如下消息:

Post installation file permissions check...
For security, remove write permissions from these directories: '/var/www/html/magento2/app/etc'
[Progress: 274 / 274]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Admin Panel URI: /admin_puu71q

安装后,您可以使用admin:user:create命令创建管理员用户:
创建或编辑管理员

示例3 — 使用其他选项进行安装

以下示例使用下列选项安装Adobe Commerce:

  • 应用程序安装在localhost上相对于Web服务器Docroot的magento2目录中,并且管理员的路径为admin;因此:

    您的店面URL为http://127.0.0.1

  • 数据库服务器与Web服务器位于同一主机上。

    数据库名称为magento,用户名和密码均为magento

  • 管理员具有以下属性:

    • 名字和姓氏是Magento User
    • 用户名是admin,密码是admin123
    • 电子邮件地址为user@example.com
  • 默认语言为en_US(美国英语)

  • 本币为美元

  • 默认时区为美国中部(美洲/芝加哥)

  • 安装程序首先清理数据库,然后再安装表和架构

  • 您可以使用销售订单增量前缀ORD$(因为它包含特殊字符[$],所以该值必须用双引号括起来)

  • 会话数据保存在数据库中

  • 使用服务器重写

  • OpenSearch安装在os-host.example.com上并连接到端口9200

magento setup:install --base-url=http://127.0.0.1/magento2/ \
--db-host=localhost --db-name=magento --db-user=magento --db-password=magento \
--admin-firstname=Magento --admin-lastname=User --admin-email=user@example.com \
--admin-user=admin --admin-password=admin123 --language=en_US \
--currency=USD --timezone=America/Chicago --cleanup-database \
--sales-order-increment-prefix="ORD$" --session-save=db --use-rewrites=1 \
--search-engine=opensearch --opensearch-host=os-host.example.com \
--opensearch-port=9200
NOTE
必须在单行上输入该命令,或者如上例所示,在每行末输入\字符。

如果安装成功,将显示如下消息:

Post installation file permissions check...
For security, remove write permissions from these directories: '/var/www/html/magento2/app/etc'
[Progress: 274 / 274]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Admin Panel URI: /admin_puu71q
recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995