Is this outside the scope of multisite?

Events happening in the community are now at Drupal community events on www.drupal.org.
mattmm's picture

I'm looking to configure:

  • 1 Drupal Base core
  • 1 Core of set modules
  • Under the core install many websites that have their own DB and possibly their own modules. I don't need them to share users or content.

My assumption of what the directory tree might look like:

Drupal_Base/
-Sites/

              --all/
                 ---modules/
                            ----views/
                            ----cck/
                  ---themes/

             --abcxyz.com/
                             ---modules/
                             ---themes/

             --xyzabc.com/
                             ---modules/
                             ---themes/

I want to be able to update 1 core of base Drupal and my collection of "core" modules. Is multisite or multiple site the answer to this? Or should I just be looking to symlinks? Still seems a bit confusing reading around.

Comments

This is exactly how

Garrett Albright's picture

This is exactly how multi-site Drupal installations work. You've got the idea.

Just two things to note: Besides their own modules and themes directory (each is optional, actually), each site directory will have its own settings.php file with database settings for that particular site. Also, though you only have to update the files for Drupal or modules in the sites/all/modules directory once, you will still have to hit update.php once for each site in order to update the databases for each site. (So abcxyz.com/update.php, xyzabc.com/update.php, etc). Unfortunately (and surprisingly) there aren't really any good ways around this at this point.

Multisite all the way

btopro's picture

Post above is correct, you will still need to make symbolic links IF you use sites on the same domain name (site1.com/mysite and site1.com/yoursite would both need to point to your drupal directory symbolically in order to work). If you're using different domains then what you've described + the comment above should get you there w/o issue.

The update issue is very annoying, I'm hoping someone takes that into account in the future that you can bulk run update scripts.

"Plaguing the world with Drupal; One Plone, Moodle, Wordpress, Joomla user at a time since 2005." ~ btopro

http://elearning.psu.edu/
http://elearning.psu.edu/projects/
http://elearning.psu.edu/drupalineducation/

Filed an issue?

boris mann's picture

The update issue is very annoying, I'm hoping someone takes that into account in the future that you can bulk run update scripts.

Have you searched and/or filed an issue for this?

I believe you can build a script using drush that does this, but I'm imagining you want a GUI. Which is going to be really hard to do, and is kind of more like what Aegir is trying to do. So, short answer -- this is non trivial.

Have you searched and/or

Garrett Albright's picture

Have you searched and/or filed an issue for this?

Here's one from the 4.6 days. This problem has been around for a while…

The issue has come up before and I know that people smarter than me have tried to solve it. Aside from seriously refactoring what update.php does, there don't seem to be any good solutions.

I'm keeping half an eye on Aegir's progress, but in many ways it seems to actually do too much… maybe just the part that handles multi-site update.php-ing can be refactored into a lighter module?

I created a watir script to

redndahead's picture

I created a watir script to take care of this for me. It logs into the sites then runs update.php and then logs out of the sites. At this time I'm running in interactive mode, which is a little slower, and it updates 66 sites in about 20 minutes. Slowly I'm adding to the class so I can do other features, for example rebuild my themes. It is definitely lacking on the error checking, but I haven't had issues yet. If enough people are interested I'll put in the work to clean it up and attach it here.

Also I'm thinking about

redndahead's picture

Also I'm thinking about demoing this and my automated site creation script during the Education or multisite bof at Drupalcon DC so if someone is interested you can feel free to come find me and ask me any questions.

I'm going to be showing off

btopro's picture

I'm going to be showing off a module in a bit more detail (hopefully I'll have it released before drupalcon) at the BoF that's automated site creation and gives out permissions to create a site. Right now it's called Course Manager but I don't want it to be specific to education (cause it's not) but it's also based on the idea of automation and massive site infrastructures.

Here's a write up on it if your interested, I'd love to work in some kind of bulk update and bulk cron running if possible for people who can't figure out / don't have access to hooking into their crontab.

https://elearning.psu.edu/projects/node/129 -- screencast of the module running inhouse at the moment
https://elearning.psu.edu/projects/node/131 --explanation

Unfortunately I know that this project overlaps with multisite manager (http://drupal.org/project/multisite_manager ) in several ways so maybe I can work with schuyler1d to merge the projects. Mine's more focused on replication of 1 drupal site off of another where-as his is about giving permission to create new drupal sites from scratch (at least last I checked).

"Plaguing the world with Drupal; One Plone, Moodle, Wordpress, Joomla user at a time since 2005." ~ btopro

http://elearning.psu.edu/
http://elearning.psu.edu/projects/
http://elearning.psu.edu/drupalineducation/

hmm, interesting project.

btopro's picture

hmm, interesting project. That seems to be going a step above what I'm looking to integrate but I'll have to check it out. Haven't searched for an issue on it but then again I've always found multisite to be rather open-ended and that core was setup to allow it but that it wasn't a major focus. Guess I'll look through and post one if it doesn't exist.

"Plaguing the world with Drupal; One Plone, Moodle, Wordpress, Joomla user at a time since 2005." ~ btopro

http://elearning.psu.edu/
http://elearning.psu.edu/projects/
http://elearning.psu.edu/drupalineducation/

Have you searched and/or

Garrett Albright's picture

(oops, quoting problem)

RE: Symlink Multisite

bramface's picture

We've been using the symlink method and (as long as you have a script to create the symlinks) finding it very helpful - particularly in updating core! Here is our complex structure below:

             
/home                 
   /clients                // This holds information accessible directly by individual clients
        /site1.com         
           /files      // client's image and data files live here
            /logs      
       /site2.com~        
/usr/local/web/                    //our web partition
    /www  //location of live copy              
       /drupal        
           /5     
               /core  
                   /drupal-5 ~ //this is the default location for each site -a symlink to the updated version
                 /drupal-5.15  //the actual location of current core files
              /contrib       
                   /modules/  
                       /custom
                    /themes/   
                       /custom

           /6         
               /core      
                   /drupal-6.5 core files
                 /drupal-6~ symlink for core
        /domains               
           mysite-com ->../webroot/mysite-com/   -> these are the symlinks that the webserver points to         
           dev-mysite-com -> ../../dev/webroot/mysite-com          
           yoursite-com ->../webroot/yoursite-com/             
           dev-yoursite-com - >../../dev/webroot/yoursite-com              
       /webroots                  
           /site1/            
               //  simlink to current Drupal install path     
               DRUPALVERSION ->../../drupal/5/core/drupal-5/  //or choose specifc version to use           
               //  simlinks to files and directories in DRUPALVERSION     
               robots.txt -> DRUPALVERSION/robots.txt          
               scripts -> DRUPALVERSION/scripts        
               misc -> DRUPALVERSION/misc          
               profiles -> DRUPALVERSION/profiles          
               cron.php -> DRUPALVERSION/cron.php          
               themes-> DRUPALVERSION/themes           
               modules-> DRUPALVERSION/modules         
               misc-> DRUPALVERSION/misc           
               includes -> DRUPALVERSION/includes          
               update.php -> DRUPALVERSION/update.php      
               index.php -> DRUPALVERSION/index.php    
               //  simlink to contributed modules + actual config files and custom themes and modules 
               sites/     
                   all ->../../drupal/5/contrib/   
                   default/  (or cn be site1.com/ if coming from an existing site to preserve path integrity) 
                       files/ -> /home/clients/site1/files/  
                     // image files, etc, are kept in client's home directory
                      modules/
                       themes/
            /site2-com/~           
   /dev   ///mirror image of www                      

--
Bram Moreinis, Principal
Game Face Web Design, LLC
http://www.gamefacewebdesign.com
(w) 845-750-6554

Multisite

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: