Drupal allows separate, independent sites to be served from a single codebase where each site has its own database, configuration, public files folder, and base domain or URL. See Drupal documentation for general documentation on Drupal multisites.
Follow these steps to setup multisite on Docksal:
A default
database is created with every project that uses the default
stack, but each multisite requires its own database.
Therefore, you will need to create the database in the container for each multisite that is not the default site.
fin db create 'anothersite'
Each site has its own directory under docroot/sites
that should contain a settings.php
file where you have the settings
for your live site. You should also have a local.settings.php
file that includes settings for the local copy of your
site. settings.php
should detect and include local.settings.php
.
$databases = [
'default' =>
[
'default' =>
[
'database' => 'anothersite',
'username' => 'user',
'password' => 'user',
'host' => 'db',
'port' => '3306',
'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
'driver' => 'mysql',
'prefix' => '',
],
],
];
Sub-site domains must be defined in the sites.php
file for Drupal to redirect its URLs to it. Add the following line
to your sites.php
file, and replace myproject
with your Docksal project name.
$sites['anothersite.myproject.docksal'] = 'anothersite';
Your site will then be accessible through http://anothersite.myproject.docksal
(substitute your project URL).
You can look at the Drupal 7 advanced boilerplate project to see an example.
This page covers how to use the default domain settings in Docksal. It is possible to use arbitrary custom domains in Docksal. Please refer to the documentation on virtual host proxy for how to use arbitrary domains in Docksal projects.