Skip Navigation

HowTo Compile Apache 1.3 for MKDoc

Alternative Apache HowTo


Apache 2.2 mod_cache

Server Tuning

Petal i18n and I18NFool

HowTo Compile Apache 1.3 for MKDoc

Integrate Soupermail

Creating new document components

Translate MKDoc Templates

Checkout MKDoc via anon CVS

Configuring MKDoc::Apache_Cache

MySQL commands to make a user account an editor account

Using news headlines

Customisation with CSS

Hiding documents and creating private areas

Upgrade from 1.4 to 1.6

Discussion Board Moderation

Text Component Formatting

Site Administration

Email newsletters

Edit Templates in a Subversion Repository

Update the Metadata for all Documents

Import MS Word files into MKDoc



Sign up

If you sign up for an account on this web site you can customise elements of this site and subscribe to an email newsletter.

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 alternative 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 10FDE075
gpg --verify apache_1.3.37.tar.gz.asc
gpg --recv-key 88C3A5A5
gpg --verify mod_perl-1.30.tar.gz.asc

Uncompress and extract

tar -zxvf apache_1.3.37.tar.gz
tar -zxvf mod_perl-1.30.tar.gz

Make and install

Make and install mod_perl with mod_gzip and apache:

cd mod_perl-1.30
perl Makefile.PL APACHE_SRC=../apache_1.3.37/src \
make test
sudo make install
cd ../apache_1.3.37
sudo make install

Configure Apache

This should simply be a matter of adding this line to the end of the /usr/local/apache/conf/httpd.conf file:

NameVirtualHost *

And then after this the MKDoc include line, see the MKDoc INSTALL document for this.

Start Apache

Apache can now be started, it will run on port 8080 by default if you complied it as a user other than root (this is fine if you are using Apache 2.x as a front facing proxy):

sudo /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 where ever you have MKDoc installed):

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

Or you could use the following script that has been tested on Fedora Core 5 (it assumes Apache is installed in /usr/local/apache and that MKDoc is in /usr/local/mkdoc-1-6 — edit it to suit):

cd /usr/local/apache/bin
sudo ln -s httpd apache
cd /etc/init.d/
sudo wget
sudo mv apache.txt /etc/init.d/apache
sudo chmod 755 /etc/init.d/apache
sudo /sbin/chkconfig --add apache
sudo /etc/init.d/apache start
sudo /sbin/chkconfig apache on

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.x 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 / Red Hat distro:

# Editor: vim:syn=apache
# the mkdoc apache is in /usr/local/apache
# and the site is in /var/mkdoc/sites/
<VirtualHost *:80>
 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/
 CustomLog logs/ combined

You will also need to make MKDoc rempove the port numbers from links in pages, you do this by editing this in the httpd-env.conf file for each site:

# Uncomment if you want the following port numbers (comma separated) to be stripped from URLs.

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

<< | Up | >>

This document was last modified by Chris Croome on 2007-08-29 05:33:03
MKDoc Ltd., 31 Psalter Lane, Sheffield, S11 8YL, UK.
Copyright © 2001-2005 MKDoc Ltd.