Last updated by sanguis on Tue, 2007-06-05 14:05
My environment:
*LAMP server
*WHM/cPanel
*root access
========
Common multisite requirements (as I understand them):
- multiple sites in separate vhosts, from single code base
- separate databases for each site (I'm not sure exactly on this: maybe each site has it's own database, but there is a shared database for...(as I said, I'm not sure on this one))
- test-site
- add to list
My specific requirements: (hopefully these are common enough that there will sufficient cooperation):
- run many low to medium traffic sites (100s, 1000s - ?: limits?: what variables?)
- different profiles (and maybe even sub-profiles): multiple sites with profile1, and multiple sites with profile2, and maybe even multiple sites with profile1.1, etc. - all on the same LAMP server.
- test-sites/development-sites for all profiles, sub-profiles, which I suppose means sub-domains, etc.
- add to list
========
The way things look currently on my server, and the way I'm currently handling directories, databases, documents and settings: (as you can see, it's not very "multisite")
Directories & Databases:
When I create a new account using the WHM interface (AN ASIDE: I'd be very interested in knowing how to do this w/o the WHM GUI), WHM puts the new account in /home, i.e.: /home/account1, /home/account2, etc., where account1, account2 are the specific URLs (my-site.com, different-site.org, etc.).
I use the ssh client PuTTY to upload the drupal install and create database, user, etc.: see my http://drupal.org/node/130116 for specific details. (please feel free to comment as to how this node should be altered for multisite - when we get that far)
I add the following directories per required Drupal install and basic Drupal best practices:
- /home/account1/public_html/files (required)
- /home/account1/public_html/sites/all/modules
- /home/account1/public_html/sites/all/modules/custom
- /home/account1/public_html/sites/all/modules/drupal-contrib
- /home/account1/public_html/sites/all/themes
- /home/account1/public_html/sites/all/themes/custom
- /home/account1/public_html/sites/all/themes/drupal-contrib
Documents & Settings:
Nothing beyond the chmod of settings.php during the standard install
========
Motivation:
Obviously I can't run multiple sites from this directory structure (or can I), and it doesn't even make sense to add the directries "modules" to "all": sites/all/modules/costom, etc., as this is an install for a specific account (not very multisite), and I haven't even got into additional files and settings. As I said, I'm needing help with the directory structure, settings, etc.
Considerations/Issues:
- The placement of core drupal install(s) w/i the server directory structure
- The placement of account specific directories
- Additional directories/files necessary to accomodate multisite configuration, e.g.: sites/all/modules
- Addition of documents into specific directories e.g.: settings.php into specific directories
- Changes to documents, e.g.: changes to setting.php, .htaccess, etc.
- Settings w/i the individual drupal sites
- Database issues
- Profile issues
- http config changes
- php modules
- add to list
I'd be happy to reformat, reword according to conventions, or go ahead and improve on the formatting of this wiki yourself. I'd like to make this into a step-by-step instruction manual for setting up a multisite server. I/we could make modification based on different scenarios, e.g., no shell access, PostgreSQL database, IIS web server, etc, etc.
Maybe a "book" would be a better content type for this, but let's start here; I/we can always copy/paste into pages later.