Description

VD provides Multi-domain capability for Joomla without changing the Joomla core files or tables. Simply register any number of additional available domains in the components backend and define their properties.

You can run different web sites from a single Joomla installation with specific designs, home page content and navigation.

Current Version:

1.2-McCoy


0.4 Mccoy Features

Features in component


Requirements (1.1-Mccoy)

  1. Joomla 1.6 or higher
  2. Php-version min 5.2.0
  3. 1 or more Server Aliases for your domain
    or
    2 or more virtual hosts, pointing to the same document root

    Notice: Don't try to realize this, by using a rewrite rule in your .htaccess file

Learn more about Server Aliases


Domains Setup

To make VD work, note the following rules for the setup of your additional domains:

  1. Same server:

    Each domain must reside on the same server and must be accessible from the same IP

  2. Same folder:

    The webserver must point each domain to the same folder

  3. No redirection

    To achieve that goal, you must not use a redirection like .htaccess oder by frame.

It's almost impossible to explain the procedure of the setup, because there are a lot of different administration tools for webhosting. Also the terms for the desired feature differs. Frequently the term "addon-domain" is used.

The following graphic illustrates the result to be achieved.

Background: A webserver uses so called virtual host containers. These are simple text files containing the settings of a host/domain. One of the most important settings is the folder of your website. In many cases each domain has it's own folder. For this goal a separate virtual host container will be created. But we have to point the all our domains to same server and same folder. We need a single virtual host container where the additional domains are "Server Aliases"

Installation (1.1 McCoy)

  1. Download Virtualdomains for your Joomla Version
  2. From the Joomla backend select Extensions⇒Install/Uninstall / Extensions⇒Extension Manager, click the upload button, select the package from your download folder and click Upload & Install.
    The package will be installed and the Message "Installing package was successful." will be shown.
  3. Select Extensions⇒Plugin-Manager, filter for System Plugins click on column Ordering, enter number 1 at the row System - Virtualdomains, to load this plugins as first. This is necessery for correct routing.
  4. Click on State to activate the plugin.

You can setup now your domains/subdomains (Components⇒Virtualdomains)


Backend Overview (04-Mccoy)

Joomla Virtualdomains Backend Overview

Joomla Backend Virtualdomains Menu

Virtualdomains Parameters About

Virtualdomains Manager

Manager Description

Register new Domains. Reconfigure and preview registered domains.

Screenshot

Toolbar

Columns

Details Page

Details Description

Configure the properties of a domain/subdomain.

Details Screenshot

Details Fields

Parameter

Note: Some people uses VD as a template switcher. For this purpose there is a parameter "Change only template" on the VD plugin settings. If this parameter has been set to "Yes", only the value for Template will have affect.

Parameters Manager

Parameters Description

Custom Parameters may be used by programmers for domain specific adaptions.
You can define new parameter keys. Once you have stored a parameter, it will be shown on the domain Details Page, where you can define the parameters value for each domain.

Keys and values are added to the variables $_REQUEST or $GLOBALS.

What's all this in aid of?

Parameters Screenshot

Fields

About

About Description

Information on developers and support

Component Configuration

How to Access

Select Components → Virtualdomains from the drop-down menu of the Joomla! Administrator Panel and click on the Confguration/Options Button at the toolbar.

Configuration Description

Configure the global behavor of template style definitions. Set the dimensions of the preview frame.

Configuration Screenshot

Preview Options

Set the dimensions of the preview frame. Customize it with your default/own Monitor settings, if required.

General

Control the global template-style behavior of this domain. The following values can be defined:

Plugin

How to Acess the Plugin

Select Extensions → Plugin Manager from the drop-down menu of the Joomla! Administrator Panel and filter for system plugins. The entry System - Virtualdomains will be shown.

Plugin Description

The VD Plugin rewrites the joomla settings according your definitions, if your site is called under one of the configured domains/subdomains.


Quick'n Dirty Example

Introduction

There are three main properties that VD changes for the additional domains:

  1. The appearance: to the domain is assigned a different template
  2. The Home: Instead of the start menu item configured in Joomla, the domain uses an alternative menu item.
  3. For each domain a special access level will be created, which is the visitor temporary assigned to. So the access to elements can be controled for each domain.

This makes possible a completely altered navigation structure by doing a few changes.

Example

  1. Domain main.domain.tld starts with the menu item "Home" and the template atomic is assigned. (Say Home is part of the menu "firstmenu").
  2. Domain second.domain.tld starts with the menu item "News" and the template 'Beez' is assigned. (Say "News" menu item is the blog view of the category "News" and part of the menu "secondmenu").
  3. Both domains should show the menu "Company". (Let's say Company contains various links to learn more about our company).

Practice

  1. Add the required menues and menu items.
  2. In the VD Manager create an entry for first.domain.tld and click on the star icon to make it the default domain. first.domain.tld will be shown with the standard joomla template style atomic
  3. Now create second.domain.tld as item, configure the beez template as template style and define the menu item "News" as point of start.
  4. Create a new menu module for second domain and define second.domain.tld as access level. Define first.domain.tld as access level for an other menu module.

Now each site has a different design, and a separate menu with different content but also a common menu with the same content.


Restrictions (04-Mccoy)


Setup a Test Environment

Windows

coming soon

Linux (Debian/Ubuntu)

Description

The following describes how you can get access to your local Joomla installation using adresses like http://vhost1.dev http://vhost2.dev, by adding some extra lines to /etc/hosts and setting up a virtual host on the Apache web server.

Thus, the preconditions are met, to test virtual domains on the local machine.

Preconditions

An installed Apache Web Server.

Enable the Resolving of the Domain Names

  • Edit /etc/hosts
    sudo nano /etc/hosts
  • Below the line "127.0.0.1 localhost.localdomain localhost", add the following and save:
    127.0.0.1    vhost1.dev    www.vhost1.dev
    127.0.0.1    vhost2.dev    www.vhost2.dev
      
  • Check the result:
    ping vhost1.dev
      

    Answer:
    PING vhost1.dev (127.0.0.1) 56(84) bytes of data.
    64 bytes from localhost.localdomain (127.0.0.1): icmp_req=1 ttl=64 time=0.022 ms
    64 bytes from localhost.localdomain (127.0.0.1): icmp_req=2 ttl=64 time=0.021 ms  
      

Control Apache Settings

Make sure the following settings are correct:

  • Open /etc/apache2/apache2.conf and check, if the include statement of the last line is uncommented:
    # Include the virtual host configurations:
    Include /etc/apache2/sites-enabled/
      
  • Open /etc/apache2/ports.conf and check tho following settings:
    NameVirtualHost *:80
    Listen 80
      

Add the virtual host

  • Make a copy of /etc/apache2/sites-available/default:
      sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/vhost.conf
      
  • Customize vhost.conf:
      nano /etc/apache2/sites-available/vhost.conf
      
    • Change the entry for DocumentRoot to your Joomla path, change ServerName and add the ServerAliases:
      ServerName vhost1.dev
      ServerAlias www.vhost1.dev
      ServerAlias vhost2.dev www.vhost2.dev 
      DocumentRoot /var/www/your-joomla
        
  • Create a symlink:
    sudo ln -s /etc/apache2/sites-available/vhost.conf /etc/apache2/sites-enabled/vhost.conf
      
  • Reload Apache:
      sudo /etc/init.d/apache2 reload
      

Now you should be able to access your Joomla typing http://vhost1.dev or http://vhost2.dev in your browsers address bar.