User Tools

  • Logged in as: anonymous (anonymous)
  • Log Out

Site Tools


mantisbt:run_multiple_mantis_sites_on_one_installation

This is an old revision of the document!


How to serve multiple mantis installations on the windows platform

with

  1. just one mantis installation
  2. one or more databases

There are 6 areas to take into account:

  1. Sources
  2. Database
  3. Configuration
  4. Attachments
  5. Scheduled tasks
  6. Updating mantis

Sources

For all installations, sources go in one(1) place.

Database

This is a no-brainer, do what ever you like, combine the DB or use seperate ones, just have it reflected in the correct config file.

Configuration

The various Mantis installations should all point to the same directory, each having their own hostheaders. Based upon the hostheaders the correct config file can be selected within the normal config_inc.php (see sample below). Configuration of each installation, remains the same. All is handled in a dedicated config file.

Attachments

Clearly per installation a seperate file location should be defined in case these are stored using DISK of FTP. Handled in the specific config and within the project definition within each installation.

Scheduled tasks

For each task a unique script need to be created per installation. Suppose you have a script reading the email called read_email.php and you have mantis1 and mantis2 installed, you need to copy the default script to read_email_mantis1.php and read_email_mantis2.php. So for each installation you now can run the script in isolation and still have the option to select the correct config.

Updating mantis

  • As always , prepare a backup.
  • Next step is follow the default update instructions.
  • copy all new sources etcetera
  • Final step is within each installation to run the update script

That is all

So how would your config_inc.php look:

<?php
// * HTTP_HOST is used to determine the config file needed for webservices                  *
// * SCRIPT_NAME is used to determine the config file needed for commandline services       *
if (isset($_SERVER['HTTP_HOST'])) {
   if ($_SERVER['HTTP_HOST'] == "mantis1.yourdomain.com") {
      include('config_mantis1.php');
   }
   if ($_SERVER['HTTP_HOST'] == "mantis2.yourdomain.com") {
      include('config_mantis2.php');
   }
} else {
   if (isset($_SERVER['SCRIPT_NAME'])) {
      if ($_SERVER['SCRIPT_NAME']=="read_mail_mantis1.php") {
         include('config_mantis1.php');
      }
      if ($_SERVER['SCRIPT_NAME']=="read_mail_mantis2.php") {
         include('config_mantis2.php');
      }
   }
}

Clearly the above script can be optimised using php - switch like :

<?php
// * HTTP_HOST is used to determine the config file needed for webservices                  *
// * SCRIPT_NAME is used to determine the config file needed for commandline services       *
$hostheader = $_SERVER['HTTP_HOST'];
$mailscript = $_SERVER['SCRIPT_NAME'];
 
switch ($hostheader) {
  case "mantis1.yourdomainl.com" :
     include('config_mantis1.php');
     break;
  case "mantis2.yourdomainl.com" :
     include('config_mantis2.php');
     break;
}
 
switch ($mailscript){
  case "read_mail_mantis1.php" :
     include('config_mantis1.php');
     break;
  case "read_mail_mantis2.php" :
     include('config_mantis2.php');
     break;
}

The contents of config_mantis1.php and config_mantis2.php is the normal config for each individual installation of mantis.

mantisbt/run_multiple_mantis_sites_on_one_installation.1297416937.txt.gz · Last modified: 2011/02/11 04:37 (external edit)

Driven by DokuWiki