diff options
Diffstat (limited to 'debian/README.multiple-instances')
-rw-r--r-- | debian/README.multiple-instances | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/debian/README.multiple-instances b/debian/README.multiple-instances new file mode 100644 index 0000000..42c3baf --- /dev/null +++ b/debian/README.multiple-instances @@ -0,0 +1,108 @@ +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/examples/setup-instance. Use with: + + sh /usr/share/doc/apache2/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, apache2ctl-xxx, ... as usual, and they +will affect the new instance of apache2. + +If you use systemd, the service name of your new instance is +"apache2@xxx.service". Otherwise the script installed an init script +named /etc/init.d/apache2-xxx. + +To start the new apache2 instance on boot, use +- if you use systemd, run: + systemctl enable apache2@xxx +- if you use sysv-init with 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. + + +htcacheclean service +==================== + +The apache-htcacheclean service can be handled in the same way as the +main apache2 script. You can create an +'apache-htcacheclean@instance.service' service under systemd or you can +copy /etc/init.d/apache-htcacheclean as +/etc/init.d/apache-htcacheclean-xxx under SystemV. + +The parameters of the service can be customized with +/etc/default/apache-htcacheclean-xxx (that is created by the +setup-instance helper script). + + +Environment variables +===================== + +The following environment variables can be used to influence many 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/apache2.pid or /var/run/apache2-xxx/apache2.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 |