Apache
Adobe Commerce支持Apache 2.4.x。
Apache必需指令
-
在服务器配置(全局)或虚拟主机配置中设置
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提供目录级说明。
-
启用Apache重写模块:
code language-bash a2enmod rewrite
-
要使应用程序能够使用分布式
.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文档。 -
如果更改了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>
中编辑该指令。
- 如果您从早期的Apache版本升级,请在
Apache必需模块
Adobe Commerce需要安装以下Apache模块:
验证Apache版本
要验证您当前运行的Apache版本,请输入:
apache2 -v
显示的结果类似于以下内容:
Server version: Apache/2.4.04 (Ubuntu)
Server built: Jul 22 2020 14:35:32
-
如果Apache是 未安装,请参阅:
在Ubuntu上安装或升级Apache
以下部分讨论如何安装或升级Apache:
- 安装Apache
- 升级到Ubuntu上的Apache 2.4以使用PHP 7.4。
在Ubuntu上安装Apache
要安装默认版本的Apache,请执行以下操作:
-
安装Apache
code language-bash apt-get -y install apache2
-
验证安装。
code language-bash apache2 -v
显示的结果类似于以下内容:
code language-none Server version: Apache/2.4.18 (Ubuntu) Server built: 2020-04-15T18:00:57
-
启用重写和
.htaccess
。
在Ubuntu上升级Apache
要升级到Apache 2.4,请执行以下操作:
-
添加具有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
-
安装Apache 2.4:
code language-bash apt-get install -y apache2
note note NOTE 如果“apt-get install”命令因未满足的依赖项而失败,请查阅https://askubuntu.com/之类的资源。 -
验证安装。
code language-bash apache2 -v
应显示类似于以下内容的消息:
code language-none Server version: Apache/2.4.10 (Ubuntu) Server built: Jul 22 2020 22:46:25
-
启用重写和
.htaccess
。
在CentOS上安装Apache
Adobe Commerce要求重写Apache Server。 还必须指定可在.htaccess
中使用的指令类型,应用程序将使用该指令指定重写规则。
安装和配置Apache基本上是一个三步过程:安装软件、启用重写并指定.htaccess
指令。
安装Apache
-
安装Apache 2.4(如果尚未安装)。
code language-bash yum -y install httpd
-
验证安装:
code language-bash httpd -v
类似于以下内容的消息显示以确认安装成功:
code language-none Server version: Apache/2.4.40 (Unix) Server built: Oct 16 2020 14:48:21
-
继续下一部分。
note note NOTE 即使Apache 2.4默认随CentOS提供,请参阅以下部分以配置它。
为CentOS启用重写和.htaccess
-
打开
/etc/httpd/conf/httpd.conf
文件进行编辑:code language-bash vim /etc/httpd/conf/httpd.conf`
-
找到以下列开头的块:
code language-conf <Directory "/var/www/html">
-
将
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)。 -
保存文件并退出文本编辑器。
-
要应用Apache设置,请重新启动Apache。
code language-bash service apache2 restart
为Ubuntu启用重写和.htaccess
-
打开
/etc/apache2/sites-available/default
文件进行编辑:code language-bash vim /etc/apache2/sites-available/default
-
找到以下列开头的块:
<Directory "/var/www/html">
-
将
AllowOverride
的值更改为All
。例如:
code language-conf <Directory "/var/www/html"> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory>
-
保存文件并退出文本编辑器。
-
配置Apache以使用
mod_rewrite
模块:code language-bash cd /etc/apache2/mods-enabled
code language-bash ln -s ../mods-available/rewrite.load
-
重新启动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>
Order
的前述值可能并非在所有情况下都有效。 有关详细信息,请参阅Apache文档。