Apache

Adobe Commerce支持Apache 2.4.x。

Apache必需指令

  1. 在服务器配置(全局)或虚拟主机配置中设置AllowEncodedSlashes,以避免解码可能导致URL问题的编码斜杠。 例如,当通过API在SKU中检索具有斜杠的产品时,不希望进行转换。 示例块不完整,需要其他指令。

    code language-conf
    <VirtualHost *:443>
      # Allow encoded slashes
      AllowEncodedSlashes NoDecode
    </VirtualHost>
    

Apache重写和htaccess

本主题讨论如何启用Apache 2.4重写并为分布式配置文件.htaccess指定设置。

Adobe Commerce使用服务器重写和.htaccess为Apache提供目录级说明。 以下说明也包含在本主题的所有其他部分中。

使用此部分启用Apache 2.4重写并指定分布式配置文件.htaccess的设置

Adobe Commerce使用服务器重写和.htaccess为Apache提供目录级说明。

NOTE
如果未启用这些设置,通常会导致您的店面或管理员上不显示任何样式。
  1. 启用Apache重写模块:

    code language-bash
    a2enmod rewrite
    
  2. 要使应用程序能够使用分布式.htaccess配置文件,请参阅Apache 2.4文档中的准则。

    note tip
    TIP
    在Apache 2.4中,服务器的默认站点配置文件为/etc/apache2/sites-available/000-default.conf

    例如,您可以在000-default.conf的末尾添加以下内容:

    code language-none
    <Directory "/var/www/html">
        AllowOverride All
    </Directory>
    
    note note
    NOTE
    有时,可能需要其他参数。 有关详细信息,请参阅Apache 2.4文档
  3. 如果更改了Apache设置,请重新启动Apache:

    code language-bash
    service apache2 restart
    
    note note
    NOTE
    • 如果您从早期的Apache版本升级,请在000-default.conf中首先查找<Directory "/var/www/html"><Directory "/var/www">
    • 对于要安装Adobe Commerce软件的目录,必须在指令中更改AllowOverride的值。 例如,要在Web服务器docroot中安装,请在<Directory /var/www>中编辑该指令。
NOTE
无法启用这些设置通常会导致样式无法在店面或管理员中显示。

Apache必需模块

Adobe Commerce需要安装以下Apache模块:

验证Apache版本

要验证您当前运行的Apache版本,请输入:

apache2 -v

显示的结果类似于以下内容:

Server version: Apache/2.4.04 (Ubuntu)
Server built: Jul 22 2020 14:35:32

在Ubuntu上安装或升级Apache

以下部分讨论如何安装或升级Apache:

  • 安装Apache
  • 升级到Ubuntu上的Apache 2.4以使用PHP 7.4。

在Ubuntu上安装Apache

要安装默认版本的Apache,请执行以下操作:

  1. 安装Apache

    code language-bash
    apt-get -y install apache2
    
  2. 验证安装。

    code language-bash
    apache2 -v
    

    显示的结果类似于以下内容:

    code language-none
    Server version: Apache/2.4.18 (Ubuntu)
    Server built: 2020-04-15T18:00:57
    
  3. 启用重写和.htaccess

在Ubuntu上升级Apache

要升级到Apache 2.4,请执行以下操作:

  1. 添加具有Apache 2.4的ppa:ondrej存储库:

    code language-bash
    apt-get -y update
    
    code language-bash
    apt-add-repository ppa:ondrej/apache2
    
    code language-bash
    apt-get -y update
    
  2. 安装Apache 2.4:

    code language-bash
    apt-get install -y apache2
    
    note note
    NOTE
    如果“apt-get install”命令因未满足的依赖项而失败,请查阅https://askubuntu.com/之类的资源。
  3. 验证安装。

    code language-bash
    apache2 -v
    

    应显示类似于以下内容的消息:

    code language-none
    Server version: Apache/2.4.10 (Ubuntu)
    Server built: Jul 22 2020 22:46:25
    
  4. 启用重写和.htaccess

在CentOS上安装Apache

Adobe Commerce要求重写Apache Server。 还必须指定可在.htaccess中使用的指令类型,应用程序将使用该指令指定重写规则。

安装和配置Apache基本上是一个三步过程:安装软件、启用重写并指定.htaccess指令。

安装Apache

  1. 安装Apache 2.4(如果尚未安装)。

    code language-bash
    yum -y install httpd
    
  2. 验证安装:

    code language-bash
    httpd -v
    

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

    code language-none
    Server version: Apache/2.4.40 (Unix)
    Server built: Oct 16 2020 14:48:21
    
  3. 继续下一部分。

    note note
    NOTE
    即使Apache 2.4默认随CentOS提供,请参阅以下部分以配置它。

为CentOS启用重写和.htaccess

  1. 打开/etc/httpd/conf/httpd.conf文件进行编辑:

    code language-bash
    vim /etc/httpd/conf/httpd.conf`
    
  2. 找到以下列开头的块:

    code language-conf
    <Directory "/var/www/html">
    
  3. AllowOverride的值更改为All

    例如,

    code language-conf
    <Directory "/var/www/">
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      Allow from all
    </Directory>
    
    note note
    NOTE
    Order的前述值可能并非在所有情况下都有效。 有关详细信息,请参阅Apache文档(2.4)。
  4. 保存文件并退出文本编辑器。

  5. 要应用Apache设置,请重新启动Apache。

    code language-bash
    service apache2 restart
    
NOTE
如果未启用这些设置,通常会导致您的店面或管理员上不显示任何样式。

为Ubuntu启用重写和.htaccess

  1. 打开/etc/apache2/sites-available/default文件进行编辑:

    code language-bash
    vim /etc/apache2/sites-available/default
    
  2. 找到以下列开头的块:

    <Directory "/var/www/html">

  3. AllowOverride的值更改为All

    例如:

    code language-conf
    <Directory "/var/www/html">
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      Allow from all
    </Directory>
    
  4. 保存文件并退出文本编辑器。

  5. 配置Apache以使用mod_rewrite模块:

    code language-bash
    cd /etc/apache2/mods-enabled
    
    code language-bash
    ln -s ../mods-available/rewrite.load
    
  6. 重新启动Apache以应用更改:

    code language-bash
    service apache2 restart
    

解决403(禁止)错误

如果您在尝试访问站点时遇到403禁止错误,则可以更新Apache配置或虚拟主机配置以启用站点的访客:

解决Apache 2.4的403禁止错误

若要使网站访客能够访问您的网站,请使用Require指令之一。

例如:

<Directory "/var/www/">
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  Require all granted
</Directory>
NOTE
Order的前述值可能并非在所有情况下都有效。 有关详细信息,请参阅Apache文档
recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995