This file is indexed.

/usr/share/doc/apache2.2-common/README.multiple-instances is in apache2.2-common 2.2.22-13+deb7u6.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
Setup
=====

The scripts apache2ctl, a2enmod, a2ensite, ... and the init script have some
support for handling multiple instances of apache2 running on the same machine.

The basic idea is to copy /etc/apache2 to /etc/apache2-xxx. An example script
that demonstrates what else needs to be done can be found in
/usr/share/doc/apache2.2-common/examples/setup-instance. Use with:

	sh /usr/share/doc/apache2.2-common/examples/setup-instance xxx

Adjust the configuration in /etc/apache2-xxx, especially the listen ports in
ports.conf and in the virtual host directives in
/etc/apache2-xxx/sites-enabled/*.

You can then use a2enmod-xxx, /etc/init.d/apache2-xxx, ... as usual, and they
will affect the new instance of apache2.

To start the new apache2 instance on boot, use
- if you use dependency based boot sequence (the default):
  If you don't have ssl keys with passphrases, you may want to set
  'X-Interactive: false' in /etc/init.d/apache2-xxx to reduce boot time.
  Then execute:
	insserv apache2-xxx
- otherwise:
	ln -s ../init.d/apache2-xxx /etc/rc2.d/S80apache2-xxx

To make 'apache2ctl-xxx status' work, you need to set APACHE_STATUSURL in
/etc/apache2-xxx/envvars.


Upgrades
========

Since only the configuration files in /etc/apache2 are in the package, the
configuration of other instances won't change if the default configuration
changes.  Possibly ways to deal with this are:

- Use symlinks to the files in /etc/apache2 where possible instead of copying
  the files.
- Don't modify /etc/apache2 at all but use it to track the default
  configuration. You can then merge the changes into the /etc/apache2-xxx dirs.
  It may be a good idea to use a version control system for /etc/apache2 to
  keep track of the changes. See the package etckeeper for keeping the whole
  /etc dir under version control.
  An advanced scheme may be for every /etc/apache2* dir to be a separate git
  repository so that you can easily pull/push changes from one dir to another.
 

Package removal
===============

The Apache 2 package will only remove the default configuration files and
directories.


Configuration
=============

The init script will try to read /etc/defaults/apache2-xxx. If that does not
exist, it will use /etc/defaults/apache2 instead.

The following environment variables can be used to influence the scripts.  The
default apache2 configuration will make use of them, too. Most can be set in
/etc/apache2-xxx/envvars. Variables set in /etc/apache2-xxx/envvars must be
exported.

variable		default value
--------		-------------
APACHE_CONFDIR		/etc/apache2         or /etc/apache2-xxx
APACHE_ENVVARS		$APACHE_CONFDIR/envvars
APACHE_HTTPD		/usr/sbin/apache2
APACHE_ARGUMENTS	empty if $APACHE_CONFDIR = /etc/apache2
			"-d $APACHE_CONFDIR" otherwise

APACHE_RUN_USER		www-data
APACHE_RUN_GROUP	www-data

APACHE_PID_FILE         /var/run/apache2.pid or /var/run/apachd2-xxx.pid
APACHE_RUN_DIR		/var/run/apache2     or /var/run/apache2-xxx
APACHE_LOCK_DIR		/var/lock/apache2    or /var/lock/apache2-xxx
APACHE_LOG_DIR		/var/log/apache2     or /var/log/apache2-xxx

APACHE_MODS_AVAILABLE	$APACHE_CONFDIR/mods-available
APACHE_MODS_ENABLED	$APACHE_CONFDIR/mods-enabled
APACHE_SITES_AVAILABLE	$APACHE_CONFDIR/sites-available
APACHE_SITES_ENABLED	$APACHE_CONFDIR/sites-enabled

APACHE_LYNX		www-browser -dump
APACHE_STATUSURL	http://localhost:80/server-status


MPMs
====

You can use different MPMs for different instances by setting APACHE_HTTPD to
one of /usr/lib/apache2/mpm-*/apache2. The MPM binaries are shipped in the
apache2.2-bin package, it is not necessary to have the apache2-mpm-* pacakges
installed for this to work. Those packages only provide the /usr/sbin/apache2
symlink for the default MPM.

Note that some modules like mod_php only work with the non-threaded MPMs
(prefork, itk).