Apache

Apache versions supported

Magento requires Apache 2.2.x or 2.4.x.

Help if you're just starting out

If you’re new to all this and need some help getting started, we suggest the following:

Important: Apache rewrites and .htaccess

This topic discusses how to enable Apache 2.2 rewrites and specify a setting for the distributed configuration file, .htaccess.

Magento uses server rewrites and .htaccess to provide directory-level instructions for Apache. The following instructions are included in all of the other sections in this topic as well.

Click to show Apache 2.4 instructions

Use this section to enable Apache 2.4 rewrites and specify a setting for the distributed configuration file, .htaccess

Magento uses 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.

  1. To enable the Apache rewrite module, enter the following command:
    a2enmod rewrite
  2. To enable Magento to use the distributed configuration file .htaccesssee the guidelines in the Apache 2.4 documentation.
    Note that 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  <value from Apache site>
    </Directory>
  3. In some cases, additional parameters might be required. For more information, see the Apache 2.4 documentation.

  4. If you changed Apache settings, restart Apache:
    service apache2 restart
  • If you upgraded from an earlier Apache version, first look for <Directory "/var/www/html"> or <Directory "/var/www"> in 000-default.conf.
  • You must change the value of AllowOverride in the directive for the directory to which you expect to install the Magento software. For example, to install in the web server docroot, edit the directive in <Directory /var/www>.
Click to show Apache 2.2 instructions

Use this section to enable Apache 2.2 rewrites and specify a setting for the distributed configuration file, .htaccess

Magento uses 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.

  1. Open the following file for editing.

    • Ubuntu: vim /etc/apache2/sites-available/default
    • CentOS: vim /etc/httpd/conf/httpd.conf
  2. Locate the block that starts with:

    • Ubuntu 12: <Directory /var/www/>
    • Ubuntu 14 or CentOS: <Directory /var/www/html>
  3. Change the value of AllowOverride to <value from Apache site>.

    An example for Ubuntu 12 follows.

    <Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride <value from Apache site>
    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.2, 2.4).

  4. Save the file and exit the text editor.
  5. Ubuntu only. Configure Apache to use the mod_rewrite module.

        cd /etc/apache2/mods-enabled
        ln -s ../mods-available/rewrite.load
    
  6. If you changed Apache settings, restart Apache.

    service apache2 restart
    

Failure to enable these settings typically results in no styles displaying on your storefront or Admin.

Verify the Apache version

To verify the Apache version you’re currently running, enter:

apache2 -v

The result displays similar to the following:

Server version: Apache/2.2.22 (Ubuntu)
Server built:   Jul 22 2014 14:35:32

Installing or upgrading Apache on Ubuntu

The following sections discusses how to install or upgrade Apache:

  • Install Apache
  • Upgrade to Apache 2.4 on Ubuntu 12 to use PHP 5.6 or PHP 7

Installing Apache on Ubuntu 16, 14, or 12

Click to show/hide content

To install the default version of Apache (Ubuntu 14, 16—Apache 2.4, Ubuntu 12—Apache 2.2):

  1. Install Apache

    apt-get -y install apache2
    
  2. Verify the installation.

    apache2 -v
    

    The result displays similar to the following:

    Server version: Apache/2.4.18 (Ubuntu)
    Server built:   2016-04-15T18:00:57
    
  3. Enable rewrites and .htaccess as discussed in the following sections.

Enable rewrites and .htaccess for Apache 2.4

Use this section to enable Apache 2.4 rewrites and specify a setting for the distributed configuration file, .htaccess

Magento uses 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.

  1. To enable the Apache rewrite module, enter the following command:
    a2enmod rewrite
  2. To enable Magento to use the distributed configuration file .htaccesssee the guidelines in the Apache 2.4 documentation.
    Note that 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  <value from Apache site>
    </Directory>
  3. In some cases, additional parameters might be required. For more information, see the Apache 2.4 documentation.

  4. If you changed Apache settings, restart Apache:
    service apache2 restart
  • If you upgraded from an earlier Apache version, first look for <Directory "/var/www/html"> or <Directory "/var/www"> in 000-default.conf.
  • You must change the value of AllowOverride in the directive for the directory to which you expect to install the Magento software. For example, to install in the web server docroot, edit the directive in <Directory /var/www>.

Enable rewrites and .htaccess for Apache 2.2

Use this section to enable Apache 2.2 rewrites and specify a setting for the distributed configuration file, .htaccess

Magento uses 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.

  1. Open the following file for editing.

    • Ubuntu: vim /etc/apache2/sites-available/default
    • CentOS: vim /etc/httpd/conf/httpd.conf
  2. Locate the block that starts with:

    • Ubuntu 12: <Directory /var/www/>
    • Ubuntu 14 or CentOS: <Directory /var/www/html>
  3. Change the value of AllowOverride to <value from Apache site>.

    An example for Ubuntu 12 follows.

    <Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride <value from Apache site>
    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.2, 2.4).

  4. Save the file and exit the text editor.
  5. Ubuntu only. Configure Apache to use the mod_rewrite module.

        cd /etc/apache2/mods-enabled
        ln -s ../mods-available/rewrite.load
    
  6. If you changed Apache settings, restart Apache.

    service apache2 restart
    

Next steps

Upgrading Apache on Ubuntu 12

Click to show/hide content

To use PHP 5.6 on Ubuntu 12, you must upgrade Apache to version 2.4. (By default, Ubuntu 12 comes with Apache 2.2.)

To upgrade to Apache 2.4:

  1. Add the ppa:ondrej repository, which has Apache 2.4:

    apt-get -y update
    apt-add-repository ppa:ondrej/apache2
    apt-get -y update
    
  2. Install Apache 2.4:

    apt-get install -y apache2
    

    If the apt-get install command fails because of unmet dependencies, consult a resource like http://askubuntu.com.

  3. Verify the installation.

    apache2 -v
    

    Messages similar to the following should display:

    Server version: Apache/2.4.10 (Ubuntu)
    Server built:   Jul 22 2014 22:46:25
    
  4. Continue with the next section.

Enable rewrites and .htaccess for Apache 2.4

Use this section to enable Apache 2.4 rewrites and specify a setting for the distributed configuration file, .htaccess

Magento uses 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.

  1. To enable the Apache rewrite module, enter the following command:
    a2enmod rewrite
  2. To enable Magento to use the distributed configuration file .htaccesssee the guidelines in the Apache 2.4 documentation.
    Note that 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  <value from Apache site>
    </Directory>
  3. In some cases, additional parameters might be required. For more information, see the Apache 2.4 documentation.

  4. If you changed Apache settings, restart Apache:
    service apache2 restart
  • If you upgraded from an earlier Apache version, first look for <Directory "/var/www/html"> or <Directory "/var/www"> in 000-default.conf.
  • You must change the value of AllowOverride in the directive for the directory to which you expect to install the Magento software. For example, to install in the web server docroot, edit the directive in <Directory /var/www>.

Next steps

Installing Apache on CentOS 6 or 7

Click to install Apache on CentOS 6 or 7

Magento requires Apache use server rewrites. You must also specify the type of directives that can be used in .htaccess, which Magento uses to specify rewrite rules.

Installing and configuring Apache is basically a three-step process: install the software, enable rewrites, and specify .htaccess directives.

Installing Apache

  1. Install Apache 2 if you haven’t already done so.

    yum -y install httpd
    
  2. Verify the installation:

    httpd -v
    

    Messages similar to the following display to confirm the installation was successful:

    Server version: Apache/2.2.15 (Unix)
    Server built:   Oct 16 2014 14:48:21
    
  3. Continue with the next section.

Even though Apache 2.4 is provided by default with CentOS 7, you configure it like Apache 2.2. See the following section.

Enable rewrites and .htaccess for Apache 2.2 (including CentOS 7)

Use this section to enable Apache 2.2 rewrites and specify a setting for the distributed configuration file, .htaccess

Magento uses 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.

  1. Open the following file for editing.

    • Ubuntu: vim /etc/apache2/sites-available/default
    • CentOS: vim /etc/httpd/conf/httpd.conf
  2. Locate the block that starts with:

    • Ubuntu 12: <Directory /var/www/>
    • Ubuntu 14 or CentOS: <Directory /var/www/html>
  3. Change the value of AllowOverride to <value from Apache site>.

    An example for Ubuntu 12 follows.

    <Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride <value from Apache site>
    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.2, 2.4).

  4. Save the file and exit the text editor.
  5. Ubuntu only. Configure Apache to use the mod_rewrite module.

        cd /etc/apache2/mods-enabled
        ln -s ../mods-available/rewrite.load
    
  6. If you changed Apache settings, restart Apache.

    service apache2 restart
    

Next steps

Solving 403 (Forbidden) errors

Click to install solve 403 errors

If you encounter 403 Forbidden errors when trying to access the Magento site, you can update your Apache configuration or your virtual host configuration to enable visitors to the site as discussed in one of the following sections:

Solving 403 Forbidden errors for Apache 2.4

To enable web site visitors to access your site, use one of the Require directives.

For example:

<Directory /var/www/>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride <value from Apache site>
	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.

Solving 403 Forbidden errors for Apache 2.2

To enable web site visitors to access your site, use the Allow directive.

For example:

<Directory /var/www/>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride <value from Apache site>
	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.