ÃÛ¶¹ÊÓƵ

Set up multiple websites with Apache

We assume that:

If necessary, copy the existing index.php entry point script for your website or store view and add to it the following:

  • You are working on a development machine (laptop, virtual machine, and so on)

    Additional tasks might be required to deploy multiple websites in a hosted environment; check with your hosting provider for more information.

    Additional tasks are required to set up ÃÛ¶¹ÊÓƵ Commerce on cloud infrastructure. After you complete the tasks discussed in this topic, see Set up multiple websites or stores in the Commerce on Cloud Infrastructure guide.

  • You use one virtual host per website; the virtual host configuration file is /etc/httpd/httpd.conf

    Different versions of Apache on different operating systems set up virtual hosts differently. Consult the or a network administrator if you are not sure how to set up a virtual host.

  • The Commerce software is installed in /var/www/html/magento2

  • You have two websites other than the default:

    • french.mysite.mg with website code french and store view code fr
    • german.mysite.mg with website code german and store view code de

Roadmap for setting up multiple websites with Apache

Setting up multiple stores consists of the following tasks:

  1. Set up websites, stores, and store views in the Admin.
  2. Create one Apache virtual host per Commerce website.

Step 1: Create websites, stores, and store views in the Admin

See Set up multiple websites, stores, and store views in the Admin.

Step 2: Create Apache virtual hosts

This section discusses how to set values for MAGE_RUN_TYPE and MAGE_RUN_CODE using the Apache server variable SetEnvIf in a virtual host.

For more information about SetEnvIf, see:

To create Apache virtual hosts:

  1. As a user with root privileges, open the virtual host configuration file in a text editor.

    For example, open /etc/httpd/conf/httpd.conf

  2. Locate the section starting with <VirtualHost *:80>.

  3. Create the following virtual hosts after any existing virtual hosts:

    code language-conf
    <VirtualHost *:80>
       ServerName          mysite.mg
       DocumentRoot        /var/www/html/magento2/pub/
    </VirtualHost>
    
    <VirtualHost *:80>
       ServerName          french.mysite.mg
       DocumentRoot        /var/www/html/magento2/pub/
       SetEnv MAGE_RUN_CODE "french"
       SetEnv MAGE_RUN_TYPE "website"
    </VirtualHost>
    
    <VirtualHost *:80>
       ServerName          german.mysite.mg
       DocumentRoot        /var/www/html/magento2/pub/
       SetEnv MAGE_RUN_CODE "german"
       SetEnv MAGE_RUN_TYPE "website"
    </VirtualHost>
    
  4. Save your changes to httpd.conf and exit the text editor.

  5. Restart Apache:

    • CentOS: service httpd restart
    • Ubuntu: service apache2 restart

Verify your site

Unless you have DNS set up for your stores’ URLs, you must add a static route to the host in your hosts file:

  1. Locate your operating system hosts file.

  2. Add the static route in the format:

    code language-conf
    <ip-address> french.mysite.mg
    <ip-address> german.mysite.mg
    
  3. Go to one of the following URLs in your browser:

    code language-http
    http://mysite.mg/admin
    http://french.mysite.mg/frenchstoreview
    http://german.mysite.mg/germanstoreview
    
INFO
  • Additional tasks might be required to deploy multiple websites in a hosted environment; check with your hosting provider for more information.
  • Additional tasks are required to set up ÃÛ¶¹ÊÓƵ Commerce on cloud infrastructure; see Set up multiple Cloud websites or stores in the Commerce on Cloud Infrastructure guide.

Troubleshooting

  • If your French and German sites return 404s but your Admin loads, make sure you completed Step 6: Add the store code to the base URL.
  • If all URLs return 404s, make sure you restarted your web server.
  • If the Admin does not function properly, make sure you set up your virtual hosts properly.
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c