Adobe Commerce supports Apache 2.4.x.
Set AllowEncodedSlashes
in the server config (globally) or in the virtual host configurations to avoid decoding the encoded slashes that may cause issues for URLs. For instance, when retrieving products with a slash in the SKU via the API, you do not want that converted. The sample block is not complete and other directives are required.
<VirtualHost *:443>
# Allow encoded slashes
AllowEncodedSlashes NoDecode
</VirtualHost>
This topic discusses how to enable Apache 2.4 rewrites and specify a setting for the distributed configuration file, .htaccess
.
Adobe Commerce and Magento Open Source use server rewrites and .htaccess
to provide directory-level instructions for Apache. The following instructions are included in all other sections in this topic as well.
Use this section to enable Apache 2.4 rewrites and specify a setting for the distributed configuration file, .htaccess
Adobe Commerce and Magento Open Source use server rewrites and .htaccess
to provide directory-level instructions for Apache.
Failure to enable these settings typically results in no styles displaying on your storefront or Admin.
Enable the Apache rewrite module:
a2enmod rewrite
To enable the application to use the distributed .htaccess
configuration file, see the guidelines in the Apache 2.4 documentation.
In Apache 2.4, the server’s default site configuration file is /etc/apache2/sites-available/000-default.conf
.
For example, you can add the following to the end of 000-default.conf
:
<Directory "/var/www/html">
AllowOverride All
</Directory>
Sometimes, additional parameters might be required. For more information, see the Apache 2.4 documentation.
If you changed Apache settings, restart Apache:
service apache2 restart
<Directory "/var/www/html">
or <Directory "/var/www">
in 000-default.conf
.AllowOverride
in the directive for the directory to which you expect to install the Adobe Commerce or Magento Open Source software. For example, to install in the web server docroot, edit the directive in <Directory /var/www>
.Failure to enable these settings typically results in styles not displaying on the storefront or Admin.
Adobe Commerce and Magento Open Source require the following Apache modules to be installed:
To verify the Apache version that you’re currently running, enter:
apache2 -v
The result displays similar to the following:
Server version: Apache/2.4.04 (Ubuntu)
Server built: Jul 22 2020 14:35:32
The following sections discuss how to install or upgrade Apache:
To install the default version of Apache:
Install Apache
apt-get -y install apache2
Verify the installation.
apache2 -v
The result displays similar to the following:
Server version: Apache/2.4.18 (Ubuntu)
Server built: 2020-04-15T18:00:57
Enable rewrites and .htaccess
.
To upgrade to Apache 2.4:
Add the ppa:ondrej
repository, which has Apache 2.4:
apt-get -y update
apt-add-repository ppa:ondrej/apache2
apt-get -y update
Install Apache 2.4:
apt-get install -y apache2
If the ‘apt-get install’ command fails because of unmet dependencies, consult a resource like https://askubuntu.com/.
Verify the installation.
apache2 -v
Messages similar to the following should display:
Server version: Apache/2.4.10 (Ubuntu)
Server built: Jul 22 2020 22:46:25
Enable rewrites and .htaccess
.
Adobe Commerce and Magento Open Source require Apache use server rewrites. You must also specify the type of directives that can be used in .htaccess
, which the application uses to specify rewrite rules.
Installing and configuring Apache is basically a three-step process: install the software, enable rewrites, and specify .htaccess
directives.
Install Apache 2.4 if you have not already done so.
yum -y install httpd
Verify the installation:
httpd -v
Messages similar to the following display to confirm that the installation was successful:
Server version: Apache/2.4.40 (Unix)
Server built: Oct 16 2020 14:48:21
Continue with the next section.
Even if Apache 2.4 is provided by default with CentOS, see the following section to configure it.
Open /etc/httpd/conf/httpd.conf
file for editing:
vim /etc/httpd/conf/httpd.conf`
Locate the block that starts with:
<Directory "/var/www/html">
Change the value of AllowOverride
to All
.
For example,
<Directory "/var/www/">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
The preceding values for Order
might not work in all cases. For more information, see the Apache documentation (2.4).
Save the file and exit the text editor.
To apply Apache settings, restart Apache.
service apache2 restart
Failure to enable these settings typically results in no styles displaying on your storefront or Admin.
Open /etc/apache2/sites-available/default
file for editing:
vim /etc/apache2/sites-available/default
Locate the block that starts with:
<Directory "/var/www/html">
Change the value of AllowOverride
to All
.
For example:
<Directory "/var/www/html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Save the file and exit the text editor.
Configure Apache to use the mod_rewrite
module:
cd /etc/apache2/mods-enabled
ln -s ../mods-available/rewrite.load
Restart Apache to apply changes:
service apache2 restart
If you encounter 403 Forbidden errors when trying to access the site, you can update your Apache configuration or your virtual host configuration to enable visitors to the site:
To enable website visitors to access your site, use one of the Require directives.
For example:
<Directory "/var/www/">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Require all granted
</Directory>
The preceding values for Order
might not work in all cases. For more information, see the Apache documentation.