Skip Navigation


If you have an account on this web site you may login.

If you have an account on this site but have forgotten your user name and / or your password then you can request an account reminder email.

HowTo Compile Apache 1.3 for MKDoc

Following are instructions for installing apache and mod_perl by compiling them from source for a back-end MKDoc server and using Apache 2.x as a front facing proxy.

Compiling Apache 1.3.x from source is generally needed for MKDoc (Apache 2.x which comes with many GNU/Linux distros is not suitable), see the mod_perl site for more details.

See the mod_gzip instructions for running Apache 1.3.x without a Apache 2.x proxy.

Apache, mod_perl

Download the source code

The latest apache 1.3.x can be downloaded from here:

The latest mod_perl from here:


Check the sigs

gpg --recv-key 08C975E5
gpg --verify apache_1.3.33.tar.gz.asc
gpg --recv-key 88C3A5A5
gpg --verify mod_perl-1.29.tar.gz.asc

Uncompress and extract

tar -zxvf apache_1.3.33.tar.gz
tar -zxvf mod_perl-1.29.tar.gz

Make and install

Make and install mod_perl with mod_gzip and apache:

cd mod_perl-1.29
perl Makefile.PL APACHE_SRC=../apache_1.3.33/src \
make test
make install
cd ../apache_1.3.33
make install

Start Apache

Apache can now be started:

/usr/local/apache/bin/apachectl start

And if you want it to start after a reboot you can add this to /etc/rc.local (sourcing the script is essential for MKDoc to work properly and you chould change the path to whereever you have MKDoc installed):

source /var/mkdoc/
/usr/local/apache/bin/apachectl start

Using mod_rewrite and Apache 2

If you want the Apache 2.x that comes with your distro to remain installed then one way to do this is to run the MKDoc Apache on a high port such as 8080 and use mod_rewrite to send requests on port 80 there.

Note that is has advantages: the ‘front-end’ apache-2.x deals with slow-clients and can perform content compression and encryption, this leaves the ‘backend’ apache-1.3 as a dedicated mod_perl server. This backend doesn't need to be compiled with mod_ssl or mod_gzip.

This is an example conf file that could be dropped into /etc/httpd/conf.d/ on a Fedora / RedHat distro:

# Editor: vim:syn=apache
# the mkdoc apache is in /usr/local/apache
# and the site is in /var/mkdoc/sites/
<VirtualHost *:80>
 ServerAdmin           [email protected]
 RewriteEngine On
 RewriteCond %{HTTP_HOST} ^users\.
 RewriteRule /?(.*)$1 [P,L]
 RewriteCond %{HTTP_HOST} ^www\.
 RewriteRule /?(.*)$1 [P,L]
 RewriteRule /?(.*)$1 [R=permanent,L]
 ErrorLog logs/example-error_log
 CustomLog logs/example-access_log combined

If you drop this file into the /etc/httpd/conf.d/ directory as deflate.conf then the front end Apache 2.x will do compression:

# Editor: vim:syn=apache
# mod deflate
<Location />
 # More info:
 # Insert filter
 SetOutputFilter DEFLATE
 # Netscape 4.x has some problems...
 BrowserMatch ^Mozilla/4 gzip-only-text/html
 # Netscape 4.06-4.08 have some more problems
 BrowserMatch ^Mozilla/4\.0[678] no-gzip
 # MSIE masquerades as Netscape, but it is fine
 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
 # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
 # the above regex won't work. You can use the following
 # workaround to get the desired effect:
 # BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
 # Don't compress images or PDFs
 SetEnvIfNoCase Request_URI \
   \.(?:gif|jpe?g|png|pdf)$ no-gzip dont-vary
 # Don't compress compressed data
 SetEnvIfNoCase Request_URI \
   \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
 # Don't compress compressed music,  mp3's and ogg
 SetEnvIfNoCase Request_URI \
   \.(?:mp3|ogg)$ no-gzip dont-vary
 # Make sure proxies don't deliver the wrong content
 Header append Vary User-Agent env=!dont-vary


This document was last modified by Chris Croome on 2005-09-08 08:40:57
MKDoc Ltd., 31 Psalter Lane, Sheffield, S11 8YL, UK.
Copyright © 2001-2005 MKDoc Ltd.