DokuWiki Installer

:

This page assists in the first time installation and configuration of Dokuwiki. More info on this installer is available on it's own documentation page.

DokuWiki uses ordinary files for the storage of wiki pages and other information associated with those pages (e.g. images, search indexes, old revisions, etc). In order to operate successfully DokuWiki must have write access to the directories that hold those files. This installer is not capable of setting up directory permissions. That normally needs to be done directly on a command shell or if you are using hosting, through FTP or your hosting control panel (e.g. cPanel).

This installer will setup your DokuWiki configuration for ACL, which in turn allows administrator login and access to DokuWiki's admin menu for installing plugins, managing users, managing access to wiki pages and alteration of configuration settings. It isn't required for DokuWiki to operate, however it will make Dokuwiki easier to administer.

Experienced users or users with special setup requirements should use these links for details concerning installation instructions and configuration settings.

For security reasons this script will only work with a new and unmodified Dokuwiki installation. You should either re-extract the files from the downloaded package or consult the complete Dokuwiki installation instructions

driven by DokuWiki powered by PHP
How to serve multiple mantis installations on the windows platform [Mantis Bug Tracker Wiki]

User Tools

Site Tools


mantisbt:run_multiple_mantis_sites_on_one_installation

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

Examples of Configuration

config_inc.php

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 
 
if (isset($_SERVER['HTTP_HOST'])) {
    $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.

custom_strings_inc.php

There is one other area which needs to be addressed which is the reference within Mantis to custom_strings_inc.php.

In the current setup it is assumed that these would be the same for all instances running of that single install. This clearly is not de facto true. Good news is that it is not a real issue anyway. This can be handled pretty easily, exactly in the same way as for the base config !!

Just move your custom strings into an instance dependent file called custom_strings_mantis1.php and so on. Then your custom_strings_inc.php would look 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 *
// * *
// ******************************************************************************************
if (isset($_SERVER['HTTP_HOST'])) {
    $hostheader = $_SERVER['HTTP_HOST'];
}
$mailscript = $_SERVER['SCRIPT_NAME'];
 
switch ($hostheader) {
   case "mantis1.yourdomainl.com" :
      include('custom_strings_mantis1.php');
   break;
   case "mantis2.yourdomainl.com" :
      include('custom_strings_mantis2.php');
   break;
}
 
switch ($mailscript){
   case "read_mail_mantis1.php" :
      include('custom_strings_mantis1.php');
   break;
   case "read_mail_mantis2.php" :
      include('custom_strings_mantis2.php');
   break;
}

custom_constants_inc.php

The same applies for the custom_constants_inc.php

mantisbt/run_multiple_mantis_sites_on_one_installation.txt · Last modified: 2013/06/21 16:30 by dregad