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:

    <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:

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

    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 Adobe 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.

Commerce