JMS Multi-Sites version 1.2
JMS Multi-Sites version 1.2
- Summary
-
Multisite for joomla!
Install unlimited number of master websites
Jms, Multisite for joomla! extend joomla with multisite functionality. It can be installed on existing website to convert it into a master website where multiple sites will be created. The concept of Jms Multisite for joomla! is to re-use the installed Joomla! php code to create many multiples sub-sites.
JMS is a native joomla 1.5, 1.6, 1.7 and 2.5 component.Create and manage unlimited number of subsites
Jms Multisites for joomla! allows multiple sites to have their own joomla configuration file (db connection) using the same joomla! environment. In other words, JMS shares the same Joomla! files and folders on the disk (PHP code) but use specific DB connection to store the websites's specific contents.
With benefit of Jms Multisite for joomla! you can create unlimited number of websites using the same PHP code. The content of each website is stored by Joomla! into a DB. JMS uses the domain or sub-domain or sub-directory name to retreive the appropriate DB configuration corresponding to each website and therefore keep the content of each website totally independent.
Starting with JMS 1.2.x, it is also possible to create sub-sites that can share some limited number of extensions.
Content Sharing
Jms MultiSites for joomla! can share different things. The sharing consists in creating a kind of links between DB tables with aim to share their content. The sharing functionality is something decided at slave site you creation and that you can not be modified later. The sharing functionality maybe used to share the joomla users or also share the content of some limited number of extensions.
User Sharing and Single Sign-in
The JMS user sharing functionality extends joomla with the sharing of the users information and access control. When sharing is enabled, the users tables are shared between the different websites and allow you to connect on all those websites with the same login and passwords. This also mean that the administration is also grant to all the websites for which the users are shared. The Single Sign-In is limited to website on the same domain and that can have different sub-domains or sub-directories.
Limited number of extension sharing
With multisite "extension sharing" you are using the same DB table sharing applied to a limited number of extensions. This is limited to a number of extensions because a manual review is required for each extension. Only extensions that are that does not really depends or create relationship with joomla kernel are candidate for the sharing. When an extension requires all the joomla tables to work properly, we excluding it.
Here you can find the list of extensions currently defined in JMS. The fact that an extension is not declared in JMS does not mean that it is not compatible with JMS. This just mean that the JMS tools can not be used to install and propagate the installation of the extension to the other slave sites.
To see more on the user sharing and extension sharing, we suggest that you to have a look to the "how to share users" video present in the tutorial.Parse URL
Recognize domain
Like http://domain.comRecognize sub-domain
Like http://sub-domain.domain.comRecognize sub-directories
Like http://domain.com/sub-directory.
For more information on how JMS parse the URL, you can have a look in the concept of JMS video present in the tutorial.Joomla 2.5, 1.7 and 1.6 compatibility
JMS is originally a native joomla 1.5 component that extend joomla with multisite functionaltiy. Now it is also extended to joomla 1.6, 1.7 stable and 2.5 compatibility.
Concerning the sharing of extensions, we have limited them until we have review the third party extension for joomla 1.6, 1.7 and 2.5.Administration
By default, the administration of the slave site is independent for the components, modules and plugins. For the templates and languages, the administration is common to all the websites. However, it is possible to make the joomla templates specific to each slave site and also have specific images and media folders.
Independent website administration
As each website has its own DB or at least a specific table prefix, this mean that content of each website is specific to each website and that the administration is also independent. In other words, you can create specific menu, articles, or whatever content managed by the extensions and that are saved in the DB (ie. forum, contacts, banners, events, ...). Only the share extension may have a common administration from any websites that share them.
Independent administration also means that you can decide of the position of the modules, select the default templates and languages for each slave sites.Specific themes (front-end templates)
By default the themes (templates) available in each slave site is shared with the master websites. This means that the installation of a new themes must be performed on the master website and is automatically available to all the slave sites. Sometimes, it is required that slave site manage the themes (templates) independently and to allow them install their own themes. With JMS, it is also possible to have a specific front-end "templates" directory to allow the slave site install their own themes (templates). This may be interesting when you want to change the layout, CSS, logo, ... for a specific slave site without affecting the other websites.Specific images and media folder
By default the images and media folder are shared with the master website. Sometimes, it may be interesting to have slave site having their own images and media folder.
This functionality that is available when you replicate a website allow to specific a new images and media folder.
To see the concept, we suggest you to have a look in the "how to create a slave site with a specific image and media folder" tutorial video.Maintenance Benefits
With the benefit to have a single joomla installion (php code) but also true for the extensions for which the php code is also installed only once, this mean that you can benefit of this situation when you have to update the extension for bug fixes or other.
Single joomla then apply fixes only once
As you have the Joomla php code installed once when you have to update it for bug fixes or security fixes, you just have to apply these fixes only once. They will be automatically available for all the websites (master and slave sites).This is also true for all extension that just fixes php code and that does not impact the DB layout.
Propagation of extension installation or sharing
With JMS 1.2.x, we also have introduced a new JMS tools functionality that allow install/share/un-install a limited number of extensions.With JMS tools you can also propagate the installation of an extension to a set of "children" website depending on a website that has been used for the replication.
The JMS tools supervises the extensions installed and also their sharing.
The installation can now be performed from the master website and does not require anumore to be logged as administrator into a specific slave site to perform the install/uninstall of the extensions. - Concept
-
JMS 1.2.x also propose a user sharing (single sign-in), share some extensions (like community builder jomsocial, virtuemart, ...), replication of websites into another DB, provide a multisite install/uninstall facilities to make the maintenance easier.
NEW extension in option: " Articles Shariing for Joomla Multi Sites" display articles present in multiiple websites.
Joomla Multi Sites works like a virtual server that analyse the URL of the webpage and associate this URL to a specific joomla configuration.
With Joomla Multi Sites, it is possible to create website from the back-end of even propose the creation of website from the front-end.
With Joomla Multi Sites you can for example associate a domain "http://www.domain1.com" to a specific joomla configuration files. This association is performed using a site idenfitier defined in Joomla Multi Sites.As each web site has its own joomla configuration, you can easily decide to share the same database with different table database prefix (other than "jos_") or use separated databases for the differents websites or a mixt of both.
In JMS 1.0.x, the setup of each configuration site was done using the standard joomla installation mechanism.
In the administration of a 'Slave' site, you can re-install/uninstall extension previously installed on the 'Master' site.
The 'Master' site is the one where you have installed the Joomla MultiSites component and where you manage the 'Slave' sites.
Additional control are performed during the installation/uninstallation of an extension in a 'slave' site.
Before executing the standard joomla installation, it is verified that the extension you request to install has exactly the same name and same version number to avoid inconsistency between all sites.
This additional control is performed to ensure that you will overwrite the current installation with identical files that you originaly installed.
On 'slave' site, the uninstall of an extension consists in a joomla standard cleanup of the database. The files present on disk for this extension are not deleted to avoid disturb the other sites.With JMS 1.1.x, it is now possible to use an existing web site defined in JMS as a template to create new slave sites. For the moment, the replication of a web sites only works within the same database.
This new feature avoid to re-install the extensions into the slave sites as you receive a copy of the existing website that start the new one. JMS also create automatically the Joomla configuration file base on the one of the template website.
The tables replicated are not touched except the one that contain the Joomla global configuration. This means that potential configuration table used by some extensions will not be updated as this is done when using the manual Joomla re-installation.
In addition to the replication of the database, it is possible to customize several parameters such as the image folder, media folder, template (themes) folder.
For Unix platform, JMS also include the possibility to deploy a slave site into an external directory to avoid sharing the master website directory. In this case, symbolic links are used to connect JMS on the master website.
Remark: The Symbolic Links could be disabled by some hosting provider. This will be generally the case of the hosting provider that require to use the Joomla FTP Layer for the installation.The content of the "common" websites contain real files and folders.
With Symbolic Links, you can continue to use the traditional hosting joomla architecture and redirect each slave sites to the common websites.
Templates and Languages are automatically shared between all sites.
Each website can select its own default template and languages.
The re-installation of thoses extension is therefore disabled from the 'Slave' sites.In case of JMS 1.1.x, it is possible to give a specific templates (themes) folder. When this feature is used, this allow the slave site to install its own templates.
On windows platform, the new template folder is a copy of the website that is used during the replication.
On Unix platform, this is a list of symbolic link on the website that is used for the replication. This feature is design for example for the companies that develop templates and want to propose ready to use joomla websites with specific template. They will have to maintain the template only once for all the slaves sites derived form a "template website".JMS 1.1.x also give the possibility to create slave site from the front-end. With this new feature, a register user can create dynamically a website using a template. It is possible to create "free" or "billable" slave sites. Free front-end slave sites mean that you don't want that your final customer pay for the creation of the slave site. If you want to sale this service to your customers, you can use the 'billable website" creation. In this case, you can create a bridge with your eShop component (ie. VirtueMart) to order the creation of the slave sites. JMS 1.1.x contain all the API that allows you create such billable websites. A bridge for VirtueMart is also available in option. "Billable website" functionality require to buy addition website quota. The website quota is purchased from the registered Joomla Multi Site setting menu.
As each slave sites use different table prefix, when the authentication is Joomla, this mean that each sites has its own user login.
To share the user, it is necessary to share the MySQL tables.
MySQL 5.0 or higher has functionalities that allow sharing table.
This is possibility is used in JMS 1.2.x. - Features
-
Feature summary JMS 1.0.x JMS 1.1.x JMS 1.2.x Joomla Multi Sites Works like a virtual server It analyzes the URL and associates the URL with a Joomla configuration file With JMS 1.0.x, it uses the host present in the URL "http://HOST/" and is able to recognize - The Domain (http://www.domain.com)
- The Sub Domain (http://sub_domain.domain.com)
With JMS 1.1.x it analyze the complete URL and can also recognize - the protocol (http, https)
- the Sub-directories (http://www.domain.com/sub_directoriy)
Joomla Multi Sites shares the Joomla Installation This means that all the websites use the same PHP code and therefore share the files and the folders present on the disk. This reduces the maintenance as the files and folders are identical for all the websites.
Template (themes) folder can be customized and become specific for some websites.Possible database configuration Share the same DB In this case the table prefix for each website must be different to guarantee that each website is independent the one of each other. In this case, it is recommended to never use the table prefix jos_ Two DB - One DB for the master website
(jos_ table prefix is allowed) - One DB for the slave sites
(jos_ is not recommended)
As many DB than there are website
(jos_ table prefix is allowed)As each website use its own database or at least different table prefix when it shares the same database then this means that the articles, the news, the forum, the users or whatever is stored in DB is NOT shared. The creation of a website consists in: - Using the standard Joomla Installation procedure
This require that each website re-install the extensions - JMS 1.1.x contain the possibility to replicate the table of an existing website
This avoid to re-install the extensions.
Remark: Some extensions may save their configuration in the database and the data are not modified. The configuration of those extensions should be updated manually. JMS does not contain any mechanism to update the data of the extensions. - Replication of a website into another DB
JMS 1.1.x new features Definition of "template websites" with their replication rules for - Table replications
Possibility to replicate the table of a website with another table prefix into the same database - New Image folder path computation
- New Media folder path computation
- New Template (themes) path computation
- Possibility to select the user that will be used as administrator by the front-end
Possibility to customize the folders - Images This is a copy from the "template website"
- Media This is a copy from the "template website"
- Templates (themes)
On windows, This is a copy from the "template website"
On UNIX, the Symbolic Links are used instead of a copy of the directories to reduce the maintenance
Use a specific directory for - Cache (front-end) only
- Log
- Tmp
Unix only - Possibility to deploy a slave site into an external directory to simplify the configuration of some tools such as Cpanel, Plesk,
- Possibility to have specific folder for some extension (ie. dmdocuments for DOCMain)
Back-end administration Only accept the "Super Administrator" as user to administrate the "back-end" JMS Front-end services Dynamic website creation using template definition rules Languages for the front-end and back-end English French Spanish JMS 1.2.x new features Replication of website into another DB Possibility to share:
- Joomla User;
- VirtueMart users only;
- All VirtueMart;
- All Community Builder;
- All JomSocial
- All SOBI2
- All Hot Property
- All com-Properties
- All Jevents Calendar
- All EventList
- Benefits
Maintenance Advantage
The advantage of Joomla Multi Sites is that joomla upgrade are performed only once.
With Joomla Multi Sites, you don't have to replicate the core Joomla bug fix, security fix or whatever.
As you share the same files and folder on the disk, you just have to upgrade your master website and all the slave websites are automatically updated at the same times.
You gain in time, security, and disk space.Joomla Muti Sites apply patches on existing files present on the disk.
It does not replace the files but modify them directly to benefit of the security fix or update.
Iit is not required to get a new version of JMS to be compatible with a new version joomla.
You can re-apply the Joomla Multi Sites patches on the new joomla files.Robustness
To increase the robustness of this Joomla Multi Sites extension, the number of core file to patch has been reduced as much as possible.Only 5 core joomla files require to be patched.
In each file, the patches consists in modifying 2 lines and adding 1 line.
The patches are not deployed at the installion of the component.
To avoid loosing any files, a backup is performed during the installation of the component. This allow restoring files if you decide to uninstall the component.
When you decide to install the patches, the sub-menu "check patches" give you a supervision of the files that need to be patched in aim to let slave sites wroking properly.The Joomla Multi Sites is delivered with a copy of the standard Joomla installation directory to ease the deployment of this component.
It is also delivered with a backup of the original joomla files in case where you have deleted the backup realized at the installation of joomla multisites compoent.- Architectures
Single database
Joomla Multi Sites can use a single database for all the websites. In this case, the separation of the data of each websites is guarantee with different database table prefix.
The "jos_" table prefix can not be used in this scenario.
This kind of architecture can be used when you start a fresh installation and when you are limited in the number of database you can create.Two databases (1 master and 1 slave)
When using two databases, the master database can use the "jos_" table prefix.
The second database is used to store the slave sites. The "jos_" table prefix is forbidden in the slave database.
This kind of architecture is adviced when you are limited in the number of database and when you want install Joomla Multi Sites in an existing website (master site).As many databases than there are websites
This architecture is the most flexible architecture and corresponds to the default Joomla Installation procedure.
The "jos_" table prefix is allowed for each website.Summary
The choice of the architecture depends on:
- The maximum number of database that your provider authorise;
- The disk quota (disk space) used by the databases
- the need to use "jos_" as tabel prefix.
The "jos_" table prefix can only be used when there is only a single website stored in the database.
As soon there are multiple websites stored in the same database, the "jos_" table prefix is forbidden.
- Compatibilty
Compatibility
JMS were oriiginally been developed under Joomla 1.5.2 and used intenally.
The first public distribution started with Joomla 1.5.3 and now upgraded with Joomla 1.5.13.
JMS works perfectly with all Joomla 1.5.x due to the limited patches required.Several external components were tested with Joomla Multi Sites.
Following components works perfectly without any patches:
- DOCMAN 1.4.0rc3
- FAQ for Joomla (see www.faq2win.com)
- EventList 1.0 Beta
- Phoca Gallery 2.0.0
- JEvent 1.5.0 rc
- Pages and Items version 1.4.2 or higher.
Compatibility supported by the author of this extension.
Reported as working without patches by our customers:
- Joomla flash uploader
- MorfeoShow
- Joom!Fish 2.0 RC1
- SOBI2
- Frontpage Slideshow v2.0.0
- Simple Image Gallery PRO.
Extensions that require a patch delivered by JMS:
Some extensions may have problems when they contain their own Installation system. This is the case for example of XMAP and Community Builder that have an extension installer or a Plugin Installer.
Sometimes, the extensions save their configuration in a file on disk and not in the DB. In this case, it may be required to have a patch in aim to have configuration files specific to each websites.
We deliver Joomla Multi Sites with patches for:- VirtueMart 1.0.15 & 1.1.x to accept multiple SECUREURL depending on the domain name;
- XMAP 1.1 to accept extension re-installation from a Slave site;
- Community Builder 1.1 Stable, CB 1.2 RC2 and RC3 to accept Plugin re-installation from a Slave site.
- JCE
- SH404SEF 1.0.16
There are some limitation that are described in the Patch Definition version 1.1.9.
See FAQ Patch Definition Change History - Alpha Content 4.0.10
- JEvent 1.4.3 rc2
A special "Check for Updates" menu is available in JMS to upgrade its patches definition when a specific component require a new patch.
Known extension incompatibility or difficult to install with JMS:
- Zoo from YooThemes that can not be re-installed due to specific installation procedure used by this extension.
See forum /forum?func=view&id=545&catid=3 - Content Templater is difficult to install but a work arround exists.
See forum /forum?func=view&id=582&catid=3 - Expose 4 that is partially developed with Flash and for which the procedure described in their manual to have specific configuration does not work.
The Flash contain hardcoded path to the original path and it also use an HTML that can not be specific for each websites.
See forum /forum?func=view&id=36&catid=3
A more complete list can be found in /index.php?option=com_content&view=article&id=135
Don't hesitate to contact us if you have any doubt about a specific component.
- Doc & videos
-
Documentation and Demo
In the users manual, you have a description of each functionalities.
The two major functionalities are:- Check, Install and Uninstall the patches for the core joomla and possible extensions
- Manage the slave website to define the relation between the domain name and a directory where will be stored the specific configuration file.
A document " demo installation" is also available to guide the new users in the different steps of the installation of Joomla Multi Sites. It also highlight some points that must be respected to guarantee that each website is independant.
Visit also our FAQ where we you will find the answer to some frequently asked questions.
If you want to see screenshots, click here
If you like videos, you can visit our tutorial or click on typical video here below:
- Jommla Multi Sites concepts
- Video " How to create a slave site from the back-end"
- Website replication and creation of a website form the fron-end