MultiSite configuration instructions (apache mod jk)

From OpenCms Wiki
Jump to: navigation, search

If you are running OpenCms (6.0 or greater) in Tomcat using an Apache front end (WITH MOD_JK, NOT MOD_PROXY), there are three basic steps to configuring a new site in your implementation:

Contents

Create the containing folder for the site in the OpenCms Explorer

In the OpenCms Explorer view, change to the '/' site, go into the 'sites' folder, and create a new folder. The folder name is case-sensitive, so keep track of exactly what you entered. For the examples that follow, we'll assume the creation of a /sites/MyNewSite folder.

Add site information to OpenCms's configuration

In order to make your new site available within OpenCms, we need to modify the opencms-system.xml configuration file, located in <opencmsroot>/WEB-INF/config/.

Find the section of opencms-system.xml that looks like:

 <sites>
    <workplace-server>http://www.mysite.com:8080</workplace-server>
    <default-uri>/sites/default/</default-uri>
    <site server="www.mysite.com" uri="/sites/default/"/>
 </sites>

and add another site definition as follows:

    <site server="www.mynewsite.com" uri="/sites/MyNewSite/"/>

This tells OpenCms that when it receives a request for www.mynewsite.com, it should serve that request out of the MyNewSite container. I believe you have to restart tomcat or reload opencms for this config file to be reread.

Add site information to Apache's configuration

Finally, we need to add a ServerALias to an existing VirtualHost in Apache (or create a new VirtualHost) to handle requests for your new site. This will be done in httpd.conf (location varies depending on the layout under which you installed Apache -- on my system, it's in /usr/local/etc/apache).

It's not mandatory that you use VirtualHosts, so if you are not using them, you can skip this step.

If you are, your configuration may vary from this, but essentially you need to either create a new VirtualHost mirroring the one you have currently set up, or you can simply add a SiteAlias for your new dns name to the existing one:

Mine would start like this with the www.mynewsite.com added to the second line:

<VirtualHost *:80>

ServerName 10.32.69.20
ServerAlias www.mysite.com www.mynewsite.com 

You must restart Apache for these changes to take affect.

Create Editor Group for Restricted Workplace Access

Earlier we created a new site called “/sites/MyNewSite/”. In order to allow the content editors for MyNewSite only edit their own content and not the content under the default site it is possible to create an editor group for MyNewSite and then allow members of this group only access MyNewSite. The steps required to achieve this are listed below:-

  1. Go to OpenCms account management and create two new groups (e.g. MyNewSiteEditors and MyNewSitePublishers). The editors group must inherit "Users" and publishers group must inherit "None". Leave Group as Role, Project Manager Group and Project Co-Worker unticked for the access group and tick them for the editors group.
  2. Make sure that you have overwritten permissions for "Users" group for /sites/ to allow nothing.
  3. Edit permissions for folder “/sites/MyNewSite/” and allow all actions (including inheritance) for groups MyNewSiteEditors and MyNewSitePublishers.

Now it is possible to create new users for MyNewSite, just by adding the new user to MyNewSiteEditors group (and also to MyNewSitePublishers if they are allowed to publish).

The above access control can be applied also to other resources e.g. image galleries.

Please note that above set up defines separate editor and publisher roles. If you want to have single role for everything, you do not need to create the publishers group and just need to make sure that editors group also has publishing rights ticked.


OpenCms 7

In OpenCms 7 you can assign a site to a user inside the Create/Edit User Dialog of the administration.

Site assignment-user dialog.png

Add New Site to the Search Index

In order to enable search functionality for the new site, the site folder must be added to the search index. This can be achieved as described below:-

1) Go to search management and view index sources.

2) Add /sites/MyNewSite/ folder to the resources at "assign resources".

If you have existing pages under /sites/MyNewSite/ you need to touch the pages and republish in order to include them as part of the search index.

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox