Upload
ipsitamishra
View
5.730
Download
0
Tags:
Embed Size (px)
Citation preview
Multisite & Single Sign Onby
Ipsita Mishra
Ipsita Mishrahttp://drupal.org/user/172344
IRC Nick: ipsita
Currently working for Melity Inc in association with PCI Hyderabad
Who am I?
We will walk through
What is Multisite?
How to setup Multisite
Sharing information between Multisite
W W W
What is multisite ? Using a single drupal installation(code base) for creating
multiple site.
Why go for it?
What is assumed?
W W W
What is multisite ? Using a single drupal installation(code base) for creating
multiple site.
Why go for it? Shared codebase means all sites are using the same
version(latest version, probably). Better server(site) management, less complex version control system, less management for Security Issues.
What is assumed?
W W W
What is multisite ? Using a single drupal installation(code base) for creating
multiple site.
Why go for it? Shared codebase means all sites are using the same
version(latest version, probably). Better site management, less complex version control system, less management for Security Issues.
What is assumed? You have basis knowledge of Apache server configurations &
default drupal folder structure.
Mutlisite vs. Multiple sites
www.example.com
www.example.com/site1
site2.example.com
Drupal Code
Still we can keep uniqueness of each
site
www.example.com
www.example.com/site1
www.example.com/site1
Drupal Code
Drupal Code
Drupal Code
Mutlisite vs. Multiple sites
Credit : This is a snapshot from the Video on Multisite by Matt Petrowsky
Multisite Structure
Multisite Structure
What is Virtual host?
The term Virtual Host refers to the practice of maintaining more than one server on one machine, as differentiated by their apparent hostname. - apache.org
Virtual hosting is a method for hosting multiple domain names on a computer using a single IP address. This allows one machine to share its resources, such as memory and processor cycles, to use its resources more efficiently. - Wikipedia
localhost
/etc/apache2/sites-available/default
The `default` file is read when we type http://localhost in our browser
vhost (an example file)/etc/apache2/sites-available/news.example.com
A Sample Virtualhost Configuration
Drupal lookup for settings.php
Our website: friends.example.com
Drupal will search for configuration files in the followingorder, using the first configuration it finds:
sites/friends.example.comsites/example.comsites/default
Drupal lookup for settings.php
Lets take a complex example : www.sub.example.com/site3
Drupal will not read configuration from
sites/subsites/site3
Drupal lookup for settings.php
When searching for a site configuration (for examplewww.sub.example.com/site3), Drupal will search for
configuration files in the following order, using thefirst configuration it finds:
sites/www.sub.example.com.site3/settings.php
Drupal lookup for settings.php
When searching for a site configuration (for example www.sub.example.com/site3), Drupal will search for
configuration files in the following order, using thefirst configuration it finds:
sites/www.sub.example.com.site3/settings.php sites/sub.example.com.site3/settings.php
Drupal lookup for settings.php
When searching for a site configuration (for example www.sub.example.com/site3), Drupal will search for
configuration files in the following order, using thefirst configuration it finds:
sites/www.sub.example.com.site3/settings.php sites/sub.example.com.site3/settings.php sites/example.com.site3/settings.php
Drupal lookup for settings.php
When searching for a site configuration (for example www.sub.example.com/site3), Drupal will search for
configuration files in the following order, using thefirst configuration it finds:
sites/www.sub.example.com.site3/settings.php sites/sub.example.com.site3/settings.php sites/example.com.site3/settings.php sites/www.sub.example.com/settings.php
Drupal lookup for settings.php
When searching for a site configuration (for example www.sub.example.com/site3), Drupal will search for
configuration files in the following order, using thefirst configuration it finds:
sites/www.sub.example.com.site3/settings.php sites/sub.example.com.site3/settings.php sites/example.com.site3/settings.php sites/www.sub.example.com/settings.php sites/sub.example.com/settings.php
Drupal lookup for settings.php
When searching for a site configuration (for example www.sub.example.com/site3), Drupal will search for
configuration files in the following order, using thefirst configuration it finds:
sites/www.sub.example.com.site3/settings.php sites/sub.example.com.site3/settings.php sites/example.com.site3/settings.php sites/www.sub.example.com/settings.php sites/sub.example.com/settings.php sites/example.com/settings.php
Drupal lookup for settings.php
When searching for a site configuration (for example www.sub.example.com/site3), Drupal will search for
configuration files in the following order, using thefirst configuration it finds:
sites/www.sub.example.com.site3/settings.php sites/sub.example.com.site3/settings.php sites/example.com.site3/settings.php sites/www.sub.example.com/settings.php sites/sub.example.com/settings.php sites/example.com/settings.php sites/default/settings.php
Single Sign On(SSO)
SSO means when you created a user/pass on one site, it will work on the other site(s)
Single Sign On(SSO)
SSO means when you created a user/pass on one site, it will work on the other site(s)
These sites will share session and user-related tables so once users login to one of the sites, they will auto login to the other site without logging in exclusively.
Single Sign On(SSO)
SSO means when you created a user/pass on one site, it will work on the other site(s)
These sites will share session and user-related tables so once users login to one of the sites, they will auto login to the other site without logging in exclusively.
In addition to that, we can share User roles and profiles among the two sites.
Prepare database and user(for SSO)
# DB name: drupal_db# DB username: duser
# Password: duserp
Modify settings.php
Open settings.php in the folder
sites/news.example.com/
$db_url = 'mysql://username:password@localhost/databasename';
change it to,
$db_url = 'mysql://duser:duserp@localhost/drupal_db';
Modify settings.php : $db_prefix
We have a variable called “$db_prefix” which will do the magic
Since we want to share a database among two sites but not completely, we decide which tables to share / not to share.
Modify settings.php : $db_prefix
$db_prefix = array('default' => 'news_','users' => 'shared_','sessions' => 'shared_','role' => 'shared_','authmap' => 'shared_','users_roles' => 'shared_',);
Now edit the settings.php file for sites/sn.example.com Use the same database connection information.
$db_url = 'mysql://duser:duserp@localhost/drupal_db';Then, you add an array of prefixes, which will look like:$db_prefix = array('default' => 'sn_','users' => 'shared_','sessions' => 'shared_','role' => 'shared_','authmap' => 'shared_','users_roles' => 'shared_',);
Install drupal
http://news.example.com/install.php
http://sn.example.com/install.php
An option : Multisite Login Module
# Using a multisite installation.# Using a separate database for each site (no table prefixing, though the code could be modified to allow for this).# Share the users table across all sites (If this is not you, what are you hoping that this module will do for you?)# You need to install the Multisite Api module.
SSO for two websites with 2 database
Resources
http://drupal.org/getting-started/6/install/multi-sitehttp://gotdrupal.com/videos/multisites-vs-multiple-siteshttp://groups.drupal.org/multisite
Thank you