[documentation] [Documentation task] Drupal multi-site setup documentation: request for comments
venkat-rk
drupal-docs at drupal.org
Tue Jan 16 07:56:26 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
@Richard: Thanks! That's a very handy guide for the VPS context. I will
be sure to use it.
@karldied: Thanks. I wonder if you or anyone else could comment on the
following that I found on http://drupal.org/node/49605, one of the pages
you grouped together. The sub-heading is 'Apache configuration':
"When using virtual hosting, do not create a separate virtual domain
for each site -- only for the first site. When using a control panel
such as cPanel or Ensim, create only the first domain.
"
Does this mean that I shouldn't create the additional domains in the
hosting account (whether shared, reseller or VPS)? If yes, how does one
go about providing control panel (cpanel or others) access to the
clients for their domains for managing emails, site stats, dbs or
whatever? A common situation is one where a webmaster does all the work
for the client but may choose to give limited access to the domain's
control panel. This method seems to suggest that a drupal multi-site
setup totally discounts that possibility.
It looks like I am not getting something:(
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.
------------------------------------------------------------------------
Thu, 11 Jan 2007 07:27:49 +0000 : venkat-rk
@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.
------------------------------------------------------------------------
Thu, 11 Jan 2007 21:03:43 +0000 : Richard Eriksson
I just published our documentation for multisite at
http://support.bryght.com/vps/multiple-sites I consider it a work in
progress since this thread has a lot of good ideas for additions and
clarifications. The documentation I wrote is specific to Bryght's VPS
setup, which isn't terribly unusual, but it won't require us to cover
the possible variations that others will have. All that said, I'm
interested in helping out with the Drupal.org handbook where I can. The
writeup is licensed under the same license as Drupal.org, so feel free
to use the bits you want.
------------------------------------------------------------------------
Tue, 16 Jan 2007 05:37:12 +0000 : karldied
Pursuing Incorrect /sites/all documentation [1], I grouped some of the
multi-site doc under Multi-site installation and set-up [2].
File and directory management [3] remains under 'best practices'.
-karldied
[1] http://drupal.org/node/103915
[2] http://drupal.org/node/43816
[3] http://drupal.org/node/22283
More information about the documentation
mailing list