4

I am in the middle of configuring a Drupal 8 installation with multiple domains in a multi-site configuration. One thing that occurred to me, is if one domain/site updates a module, the other site that may use that module won't know of that update.

Should I either : a) move the modules into the sites//site name//modules directory, or b) make another drupal8 instance for each site

Or is there something else that i am missing. Recommendations most helpful.

1
  • In a multisite installation, I recommend keeping a base set of modules that are common to all sites running with that Drupal install. If individual sites wish to modify that, they should only have access to updating their own install. The documentation page here should make it more clear about how you would want to set up any access to any folders within the install. Nov 14, 2016 at 17:54

3 Answers 3

3

You have described the options for multisite pretty well:

  1. Lots of shared code by putting modules in /modules
  2. Lots of copies of module code by moving to /sites/[sitename]/modules but only one copy of core to update.
  3. Use multiple instances instead of multisite (lots of copies of the same code but the ability to update one without risk to others).

Multisite is most useful when there is low variation in the configuration between the sites and therefore you can safely use the same copies of core and the modules on most (if not all) sites. The more variation you have between copies the more likely it makes sense to ditch multisite and move to multiple instances.

While there are some very large instances of multisite in use, there are also people in the community who feel pretty strongly that multisite brings more headaches than it is worth.

0

I have a D7 multi-site setup with over 20 sites on one hosting! Here are some things I would suggest:

Organizing extensions

  • If your sites plan to share many of the modules then it is perfectly fine to have those contrib/custom modules in the global modules directory.
  • Site-specific contrib/custom modules go to the relevant site's directory (example: sites/greenpillp.com/modules).

For Updating core/modules/themes

  • First read the update descriptions thoroughly to see if they would require any changes to your custom code / dependencies (if any).
  • Very important! Back up the database and files to avoid suicidal tendencies if something goes wrong on all sites. lol.
  • For module/theme updates, you can have any one site check for all updates (even for modules which are not enabled) and use the UI to download the updates. I usually add an exit('Site is under maintenance'); in the index.php before I do this - this disables all sites temporarily.
  • As for database updates, you can do them in two ways:
    • Time-consuming way: Run the update.php for each site - one by one.
    • Time-saving way: Use drush to update all sites one by one from command line without having to visit them! May be create and save a script which would help you automate it the next time you do it.

I hope this helps. If I missed something or if there's any easier way to manage this, please leave me a comment so that I can try it out the next time I update my multi-site install of Drupal!

0

If the module is common for all sites them make it global i.e place that module in /modules/custom directory. So it will share the same code on all sites e.g sites/site1.com, sites/site2.com. Now if you do changes in the code of the module you need to cache or re-install the module in all the sites which uses the module via drush to take that changes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.