Giter Site home page Giter Site logo

automultisites's Introduction

Automultisites

This is a collection of helpers for quickly creating new subsites in a local Drupal project. It can often be useful to create a new site using a project's codebase, either to debug or prototype on a fresh install, or to quickly switch between different copies of the database.

The subsites use subfolders, so there is no need for creating new virtual hosts.

A symlink in the Drupal root back to itself allows Drupal to function as if it were in a subfolder, which allows the multisite system to consider it a different site.

Compatibility

  • The Drush command requires Drush ^10.5.
  • This is not entirely compatible with the joachim-n/drupal-core-development-project Composer project template.

Terminology

Each subsite has a site directory, which is its subdirectory in sites/. These have a common prefix, which defaults to local-. The part after the prefix is referred to as the site key, so for example with this directory listing:

  • default
  • local-alpha
  • local-beta

the site keys are 'alpha' and 'beta'.

Installation

Install with Composer: composer require joachim-n/automultisites.

Drush command

To create a new subsite with Drush, do:

$ drush multisite:new SITE-KEY

Manual instructions

Without Drush, do the following:

  1. Copy sites/example.sites.php to sites/sites.php if it does not already exist
  2. In sites.php, add the following code:
$sites = []; // Necessary workaround for Drush.
\Automultisites\Sites::addLocalSites($sites, $app_root);
  1. Create a symlink of the Drupal root back to itself:
$ cd web
$ ln -s . local-alpha
  1. Create a new site folder:
$ cd web/sites
$ mkdir local-alpha
  1. Copy settings.php to it:
$ cp web/sites/default/default.settings.php web/sites/local-alpha/settings.php
  1. In the new settings.php file, add the following code:
Automultisites\Settings::configureSiteSettings(
  $app_root,
  $site_path,
  $databases,
  $settings,
  $config
);
  1. To create a Drush site alias, create a file drush/sites/local.site.yml and add the following to it:
alpha:
  root: /path/to/project/web
  uri: localhost.local-alpha

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.