[documentation] [Documentation task] Drupal multi-site setup documentation: request for comments

venkat-rk drupal-docs at drupal.org
Thu Jan 11 07:27:51 UTC 2007


Issue status update for 
http://drupal.org/node/104340
Post a follow up: 
http://drupal.org/project/comments/add/104340

 Project:      Documentation
 Version:      <none>
 Component:    Admin Guide
 Category:     tasks
 Priority:     normal
 Assigned to:  venkat-rk
 Reported by:  venkat-rk
 Updated by:   venkat-rk
 Status:       active

@Zach, thanks for your insights. It looks like I did the right thing by
putting this issue up for comments since the resulting work is far more
likely to be useful than me writing some stuff without inputs.




venkat-rk



Previous comments:
------------------------------------------------------------------------

Wed, 20 Dec 2006 01:45:05 +0000 : venkat-rk

I thought I woud take a stab at trying to write to a multi-site set up
guide with inputs from the community. I may only be able to do this in
little bits, though.


After reading some forum posts and the sections in Robert Douglass'
book, I have the following broad structure in mind. Feel free to suggest
additions or changes for a better structure. Once we agree upon the
structure, I will add book pages and post them for review. 


*I. Introduction*



* What is multi-site
* Benefits of multi-site

*II. Options for Multi-site*



* Multi-site using one code base and different databases for different
domains/sub-domains
* Multi-site using one code base and one database with prefixed tables
for different domains/sub-domains

*III. Ways to configure Multi-site in Drupal*



* Using Apache Vhosts (editing httpd.conf)
* Using symlinks

*IV. Setting up Multi-site step by step*



* Create a database on the specific domain/sub-domain or run prefix.sh
and create a prefixed database
* For each site, create a subdirectory under ..sites/
* Put settings.php under that subdirectory and configure the db
parameters
* Create a files directory under the subdirectory
* Update the file system path at ../admin/settings

*V. Setting up site specific modules and themes*



* Put under a separate 'modules' and 'themes' directory within the
subdirectory

What else? What about sharing tables between sites and across
databases? What about setting up multi-site using Cpanel or Plesk? Any
best practices?


Please chip in with comments, suggestions and links to make this a
useful guide. After a few significant comments/posts, I will post an
updated structure on this thread.


Thanks in advance,
Venkat.




------------------------------------------------------------------------

Wed, 20 Dec 2006 19:50:13 +0000 : Gary Feldman

"Using Apache Vhosts (editing httpd.conf)

"
Keep in mind that many users won't have access to httpd.conf, but may
have access to tools such as CPanel.  People who are maintaining their
own httpd.conf files probably don't need as much help as those who
don't.




------------------------------------------------------------------------

Thu, 21 Dec 2006 02:26:08 +0000 : venkat-rk

You are right about httpd.conf, but I ran into an interesting situation
with a shared hosting provider who gives access to it. I think it is
ixwebhosting.com


Also the idea is to capture all important stuff in the handbook. There
may be situations when even relative non-geeks get a VPS and try to do
this (I know I am one!), so this section would help them.




------------------------------------------------------------------------

Fri, 22 Dec 2006 16:09:24 +0000 : karldied

Gary wrote: People who are maintaining their own httpd.conf files
probably don't need as much help as those who don't.


venkat-rk wrote: There may be situations when even relative non-geeks
get a VPS and try to do this (I know I am one!), so this section would
help them.


I'm another of those relative non-geeks who have access to httpd.conf,
but need help. Thanks!




------------------------------------------------------------------------

Fri, 22 Dec 2006 16:41:48 +0000 : CogRusty

About httpd.conf, don't forget the people who download and install an
AMP package with whatever default settings and want to give Drupal a
try. Judging by the support questions, they seem to be many and
inexperienced. Both Windows users who just want it to work and Linux
folks fiddling randomly.




------------------------------------------------------------------------

Sat, 23 Dec 2006 11:48:52 +0000 : venkat-rk

@CogRusty: Good point. Will keep it in mind.




------------------------------------------------------------------------

Thu, 04 Jan 2007 09:39:52 +0000 : pcwick

I think this looks like a great start to a much needed doc.  In answer
to your questions, I think I would structure thus:


II. Options for Multi-site


    * Multi-site using one code base and different databases for
different domains/sub-domains
    * Multi-site using one code base and one database with prefixed
tables for different domains/sub-domains
    * Sharing tables between sites and across databases


III. Ways to configure Multi-site in Drupal
    * Using Apache Vhosts (editing httpd.conf)
    * Using symlinks
    * Using Cpanel or a similar web panel


- I think it probably best to refer users to the documentation for
their respective panel.  Dreamhost, for example, uses a proprietary web
panel.  


You'll definitely want to reference "Use the /sites directory to keep
Drupal tidy" under best practices: http://drupal.org/node/53705


I'm wondering if the installer complicates the multi-site setup
procedure for newer users.  Perhaps you'll want to indicate that you are
describing a fully manual install, or maybe explain how to build a
multi-site setup when the user has already created a single-site setup
with the installer.  Seems some sort of clarification along these lines
will be useful to those who have never manually installed Drupal.


You might want to mention that themes and modules placed in the new
"sites/ALL" directory will be common to all sites. 
http://drupal.org/node/22283


You probably know, but some of your work is already done in INSTALL.txt




------------------------------------------------------------------------

Thu, 04 Jan 2007 11:57:16 +0000 : venkat-rk

Thanks for all the inputs, encouragement and links:-)




------------------------------------------------------------------------

Thu, 04 Jan 2007 13:38:37 +0000 : CogRusty

I rephrased and moved a few item and some of the emphasis according to
what I think users often fail to do, I added a few notes, and this is
what I suggest. (Still needs work)


I. Multi-site: Introduction
-- Multi-site: One Drupal installation for many sites
-- Multi-site: Benefits and disadvantages
-- Multi-site: What you need to do
[Site access and database(s), mention of the next sections]


II. Multi-site: Ways to configure access to your sites
-- Multi-site: Setting up Drupal for different sub-directories,
sub-domains, domains
---- Multi-site: The settings.php file, the /sites directory and its
subdirectories
-- Multi-site: Setting up the server for a Drupal multi-site
[The need for directing the requests to Drupal's directory without
altering the request URL]
---- Multi-site: Using Apache Vhosts (editing httpd.conf)
---- Multi-site: Using symlinks
---- Multi-site: Using Cpanel or a similar web panel
[Note: For simplicity, assume non-shared database tables in any
examples if needed]


III. Multi-site: Ways to configure your database(s)
-- Multi-site: Using different databases for different sites
-- Multi-site: Using one database with prefixed tables for different
sites
-- Multi-site: Sharing tables between sites and across databases
---- Some common table-sharing cases
---- Some rules for shared tables (let's call them "advanced"...)
[ e.g. - If you share even one leaf entity with numeric IDs, you must
also share the 'sequences' table.
- If you un-share a leaf entity you must also un-share all its
dependent tables containing its ID (for example if you un-share users
you must also un-share nodes)
- If you share a dependent table containing another table's IDs you
must also share that other table (for example if you share nodes you
must also share users)]




------------------------------------------------------------------------

Thu, 04 Jan 2007 15:01:28 +0000 : venkat-rk

Thanks! I will post an updated structure in a day or two.




------------------------------------------------------------------------

Mon, 08 Jan 2007 01:28:17 +0000 : pcwick

Here is a tutorial called "Drupal Multisite for Dummies" that may be a
good reference, or even a good start...
http://drupal.org/node/107347




------------------------------------------------------------------------

Mon, 08 Jan 2007 18:28:06 +0000 : Gary Feldman

I stand corrected on the need for httpd.conf advice.


Now I worry about people adding virtual hosts, but not getting the
permissions right, but that can turn into a black hole.




------------------------------------------------------------------------

Thu, 11 Jan 2007 03:06:26 +0000 : Zach Harkey

"
---- Multi-site: Using Apache Vhosts (editing httpd.conf)
---- Multi-site: Using symlinks
---- Multi-site: Using Cpanel or a similar web panel


"
This is kind of confusing since, they are technically all using Apache
VirtualHosts, and this implies a complete separation of methods. Perhaps
a better breakdown would be:


-- Multi-site: Server-side methods for hosting multiple domains from
the same document root
---- Multi-site: Reconfigure VirtualHost blocks (requires shell access
to httpd.conf)
------ Change DocumentRoot for child domain
------ Add ServerAlias for parent domain
---- Multi-site: Replace Document root with a symlink (requires shell
access)
---- Multi-site: Control Panel specific examples (Cpanel, Plesk, Ensim,
etc.)




------------------------------------------------------------------------

Thu, 11 Jan 2007 03:16:36 +0000 : Zach Harkey

Also, one of the biggest stumbling blocks with multi-site setups comes
when people don't lower the TTL on their DNS records before they start
testing multi-site configurations.






More information about the documentation mailing list