• Home
    • Cool Knowledge base
    • Light Knowledge base
    • Help Desk
    • OnePage Documentation
  • Services
    • Main Services
    • PPC Services
    • SEO Services
    • SMM Services
  • Docs
  • Blog
    • Affiliate
    • Ecommerce
    • Frontend
    • linux
      • nginx
    • PHP
      • Magento
      • wordpress
    • Python
    • SEO
    • Web
  • Forum
    • Forums
    • Forum Topics
    • Topic Details
    • Ask Question
  • Pages
  • Contact

Subscribe to Updates

Get the latest creative news from FooBar about art, design and business.

What's Hot

VideoJS – multiple source demo

2022-03-08

Add custom field to Woocommerce tab

2022-03-07

Surror Product Tabs for WooCommerce

2022-03-07
Facebook Twitter Instagram
  • 中文
  • English
Facebook Twitter Instagram Pinterest VKontakte
SEO & Website build tips SEO & Website build tips
  • Home
    • Cool Knowledge base
    • Light Knowledge base
    • Help Desk
    • OnePage Documentation
  • Services
    • Main Services
    • PPC Services
    • SEO Services
    • SMM Services
  • Docs
  • Blog
    • Affiliate
    • Ecommerce
    • Frontend
    • linux
      • nginx
    • PHP
      • Magento
      • wordpress
    • Python
    • SEO
    • Web
  • Forum
    • Forums
    • Forum Topics
    • Topic Details
    • Ask Question
  • Pages
  • Contact
SEO & Website build tips SEO & Website build tips
Home»PHP»how to Set up a multisite via Drupal8?
PHP

how to Set up a multisite via Drupal8?

OxfordBy Oxford2021-06-25No Comments4 Mins Read
Facebook Twitter Pinterest LinkedIn Tumblr Email
Share
Facebook Twitter LinkedIn Pinterest Email

The following guide will highlight the manual steps required to set up a Drupal multisite. This guide is a work in progress with only some example configurations presented. Other options are available, such as HTTPS, other Web servers and databases, and more refined virtual host configurations, etc.

Alternatively use the Aegir hosting system. It does most of the heavy lifting and uses secure best practices, including automatically configuring virtual hosts for both Apache and Nginx, adding HTTPS support, running Composer commands, etc. See the documentation for setting up a “platform”, Aegir-speak for a multisite codebase.

Overview of the process

  1. Install a Drupal instance that will act as the root site for our multisite instance. In our example, the root site will be called d8multisite, will be reachable at d8multisite.com, and will be installed at /var/www/d8multisite
  2. Set up a site within the multisite called site1 which is reachable at site1.d8multisite.com
  3. Configure site1 to have its own modules outside of the root site.

Step 1: Instantiate the master site

To begin the process, install a copy of Drupal 8 on your server. Read the docs on installing Drupal if you are not familiar.

In this example, we install Drupal with the following steps:

1.1: Create a database for the multisite root site, ex: d8multisite.

1.2: Download and extract a copy of Drupal into your web directory.

1.3: Create a virtual host definition for the root site. Read about virtual host configurations. An example of an Apache virtual host configuration is as follows. For Nginx, see the official recipe.

<VirtualHost *:80>

  # virtual host configuration for Drupal 8 multisite root site

  ServerAdmin me@domain.com
  DocumentRoot /var/www/d8multisite
  ServerName d8multisite.com
  ServerAlias www.d8multisite.com
  
  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>
  
  <Directory /var/www/d8multisite>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/d8multisite_error.log
  LogLevel warn
  CustomLog ${APACHE_LOG_DIR}/d8multisite_access.log combined

</VirtualHost>

1.4: Install Drupal by visiting d8multisite.com and follow the install UI.

Step 2: Configure the first site for the multisite

Now that we have the root site set up, we can begin configuring our first site called site1. Here are the steps in this process:

2.1: Create a folder for site1 in your multisite: /d8multisite/sites/site1.d8multisite.com

2.2: Create a database for site1, ex: d8multisite_site1

2.3: Make a copy of /d8multisite/sites/example.sites.php called /d8multisite/sites/sites.php

2.4: Edit sites.php so the end of the file looks like this:

# make the root drupal site aware of site1:
$sites['site1.d8multisite.com'] = 'site1.d8multisite.com';

2.5: Create a virtual host for site1. Note that this virtual host should point to the root site, not the site’s subdirectory. Note that you can also forego creating a new virtual host configuration for this site and just the new site as a ServerAlias to the root site. In this Apache example, we will, however, create a separate virtual host for site1:

<VirtualHost *:80>
  ServerAdmin me@domain.com
  DocumentRoot /var/www/d8multisite
  ServerName site1.d8multisite.com
  
  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>
  
  <Directory /var/www/d8multisite>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/site1-d8multisite_error.log
  LogLevel warn
  CustomLog ${APACHE_LOG_DIR}/site1-d8multisite_error.log combined

</VirtualHost>

2.6: Copy /d8multisite/sites/default/default.settings.php to the new site’s directory as settings.php:

#from the drupal root folder
cp sites/default/default.settings.php sites/site1.d8multisite.com/settings.php

2.7: Finish the Drupal installation process for site1 by visiting the site’s domain. If this shows up the first site you’re not expecting, visit specifically ‘/core/install.php’.

You can repeat these steps each time you want to build a site in your multisite. You can also use domains like example.com and site1.anotherdomain.com. More details on domains, URLs, and sites subdirectory names.

Step 3: Enable per-site modules

In some cases, you may want one of your sites within your multisite to have its own modules. To enable this, you simply need to create the appropriate folders within the target site’s folder. See Multisite folder structure in Drupal 8.

In this example, we will enable site1 to have its own modules:

  1. Create a ‘modules’ folder in site1’s subdirectory: /d8multisite/sites/site1.d8multisite.com/modules
  2. Give apache write access to this folder with chown www-data /d8multisite/sites/site1.d8multisite.com/modules
  3. Test it out:
    1. Move out of site1’s subdirectory (i.e. into the root site) and install the Pathauto module with drush drush dl pathauto
    2. Move into site1’s subdirectory and install the ds module with drush drush dl ds
    3. Visit both sites and confirm:
      1. Pathauto is available in both sites
      2. Display Suite is only available in site1

Note: The assumption here is that you can do this with themes, libraries, and files. More testing and documentation is needed here.

Using drush in a multisite

You can use the -l option:

drush -l example.com command

or the site alias:

drush @alias command

To check what aliases are used, execute:

drush site:alias

An example of its output could be:

‘@sub1.dev’:
root: /var/www/mydomain.com/web
uri: ‘https://sub1.mydomain.com‘
‘@default.dev’:
root: /var/www/mydomain.com/web
uri: ‘https://sub2.mydomain.com‘
‘@third.dev’:
root: /var/www/mydomain.com/web
uri: ‘https://thirddomain.com‘

And the right drush command could be:

drush @sub1 updb
Note: we are not using the “.dev” in the alias

Related Content

Multisite folder structure in Drupal

Explains the folder/directory structure for setting up multisite Drupal
Source:
https://www.drupal.org/docs/multisite-drupal/set-up-a-multisite
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Avatar photo
Oxford

Related Posts

Drupal theme development

2021-06-17

Using WP Super Cache with IIS 7

2021-05-01

Use the Windows Cache Extension for PHP

2021-05-01

php7.3 pregmatch problem

2021-04-26
Recent Posts
  • VideoJS – multiple source demo
  • Add custom field to Woocommerce tab
  • Surror Product Tabs for WooCommerce
  • How To Scrape Amazon at Scale With Python Scrapy, And Never Get Banned
  • Compile a Jekyll project without installing Jekyll or Ruby by using Docker
June 2021
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
282930  
« May   Jul »
Tags
app branding culture design digital Docly docs etc faq fashion featured fitness fix github Helpdesk Image issue leisure lifestyle magento Manual marketing memecached Photography picks planing seo sequrity tips Travel trending ui/ux web WordPress 爬虫
Editors Picks

Fujifilm’s 102-Megapixel Camera is the Size of a Typical DSLR

2021-01-05
Top Reviews
8.9

Which LED Lights for Nail Salon Safe? Comparison of Major Brands

By Oxford
8.9

Review: Xiaomi’s New Loudspeakers for Hi-fi and Home Cinema Systems

By Oxford
70

CES 2021 Highlights: 79 Top Photos, Products, and Much More

By Oxford
Advertisement
Demo
  • Facebook
  • Twitter
  • Instagram
  • Pinterest
About Us
About Us

Your source for the lifestyle news. This demo is crafted specifically to exhibit the use of the theme as a lifestyle site. Visit our main page for more demos.

We're accepting new partnerships right now.

Email Us: [email protected]
Contact: +1-320-0123-451

Facebook Twitter Instagram Pinterest YouTube LinkedIn
Recent Posts
  • VideoJS – multiple source demo
  • Add custom field to Woocommerce tab
  • Surror Product Tabs for WooCommerce
  • How To Scrape Amazon at Scale With Python Scrapy, And Never Get Banned
  • Compile a Jekyll project without installing Jekyll or Ruby by using Docker
From Flickr
Ascend
terns
casual
riders on the storm
chairman
mood
monument
liquid cancer
blue
basement
ditch
stars
© 2025 Designed by 九号资源网.

Type above and press Enter to search. Press Esc to cancel.