

Last edited: $Date: 2001/06/10 18:51:39 $

Basic Installation Instructions
===============================

1. Preparations
---------------
The following libraries are used by modlogan:

Required libs
- 1. libz
- 2. libpcre >= 3.1
- 3. libxml >= 2.3.0

Highly Recommend libs
- 3. libgd >= 1.7.x
- 4. libpng
- 5. libadns 

Optional libs
- 6. dmalloc (optional for debugging purposes only)

Required software
- 1. gmake

NOTE: the configure script will check for all those libraries and will 
notify you if neccasary.

For an easy installation use the packages provided by your distributors:
Suse 6.4: 
- 1. a1/libz.rpm
- 2. d1/pcre.rpm (v3.1)
- 3. d1/gdlib.rpm (v1.7.3 - static only)
- 4. gra1/libpng.rpm

Suse 6.3 
- 1. a1/libz.rpm
- 2. d1/pcre.rpm <propably to old ??>
- 3. d1/gdlib.rpm <propably to old ??>
- 4. gra2/libpng.rpm

Suse 6.2
- 1. a1/libz.rpm
- 2. <not included>
- 3. d1/gdlib.rpm <propably to old ??>
- 4. gra1/libpng.rpm

Debian Woody (please install the corresponding *-dev 
              packages too)
- 1. libs/zlib1g_1.1.3-9.deb
- 2. libs/libpcre3_3.3-2.deb
- 3. libs/libgd1_1.8.3-3.deb
- 4. libs/libpng2_1.0.5-1.deb

Debian Potato (please install the corresponding *-dev 
              packages too)
- 1. libs/zlib1g_1.1.3-5.deb
- 2. libs/libpcre2_2.08-1.deb 
- 3. libs/libgd1g_1.7.3-0.1.deb (shared)
- 4. libs/libpng2_1.0.5-1.deb

Debian Slink
- 1. libs/zlib1g_1.1.3-2.deb
- 2. <only 1.09>
- 3. <only 1.3>
- 4. libs/libpng2_1.0.2b-0.1.deb

Redhat, Mandrake, Caldera
- 1. <don't know yet>
- 2. http://www.terra.nu/contrib/pgrep-3.2-1.i386.rpm
- 3. <don't know yet>
- 4. redhat-6.2/i386/RedHat/RPMS/libpng-devel-1.0.5-3.i386.rpm
     redhat-6.2/i386/RedHat/RPMS/libpng-1.0.5-3.i386.rpm

Solaris 7 - sparc: ftp://nce.sun.ca/pub/freeware/sparc/7/
- 1. zlib-1.1.3-sol7-sparc-local.gz
- 2. <not avaliable>
- 3. <not available>
- 4. libpng-1.0.2-sol7-sparc-local.gz

FreeBSD - ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/
- 1. <already installed>
- 2. devel/pcre-3.1.tgz
- 3. graphics/gd-1.8.3.tgz (shared)
- 4. graphics/png-1.0.8.tgz
(NOTE from <Alexander@Leidinger.net>: 
"pkg_add -r <pkgname>" gets the source from the net and installs the package)

If no packages are available for your platform you have to compile the
libraries by yourself:
- 1. libz (??)
- 2. libpcre from ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
- 3. libgd from http://www.boutell.com/gd/
   (if generated libgd is shared use the patched libgd from
    http://www.kneschke.de/projekte/modlogan/download/)
- 4. libpng (ftp://ftp.libpng.org/pub/png/src/)
- 5. libadns (http://www.chiark.greenend.org.uk/~ian/adns/)
- 6. dmalloc (optional for debugging purposes only)


1.1 dynamic vs. static
----------------------

The 'Mod' in the word ModLogAn stands for 'modular' which means that the
input section, processing section and the output section are seperated 
in modules which can be loaded at runtime. The modules are selected by 
the config-file and are working transparently for the user.

To compile the 'dynamic' version you have pass some special requirements.
EVERY library that is used by modlogan and its plugins has to be available
in a SHARED version (<libname>.so). Most important are libgd and libpcre.
If you install both packages on a Linux system make sure that they are
available in a shared version. Some distribution are only providing static
versions of these libraries. 

If you don't have a shared version of GD (the normal gd-1.7.x
package doesn't produce a shared version) you have to create a
'static' version of modlogan which links one input module, one processing 
module and one output module staticly to the binary or you have to live
without the nice graphics.


1.1.1 creating a 'static' version of modlogan
-------------------------------------------------
By default the CLF input module and the modlogan output module linked
against the binary. They are the one that are currently most often used. If
want to use a different module you have to specify them at build-time
time.

This step is handled by the configure script. Type:

$ ./configure --with-gd=<path to the gd-library> \
  --with-output=<output-module> --with-input=<input-module>
  --with-processor=<processor-module>

Possible values for the output module:
1. webalizer
2. csv (not functional)
3. text (overview only)
4. modlogan (recommend)
5. tkcontrol

Possible values for the input module:
1. clf (for Apache, Netscape, Squid (with "emulate_httpd_log" enabled)... 
   other programs that use the common logfile format)
2. wuftpd (for WuFTPd, ProFTPd)
3. null (for no input file parsing)
4. msiis (for MS IIS 5.0)
5. hicom116 (for Siemens Hicom 116)
6. elmeg (for Elmeg ...)
7. isdnlog (for IsdnLog [logfile version 3.1])
8. squid (native squid logfile format)
9. realserver (for one type of the realserver logfiles)

Possible values for the processor module:
1. web 
2. telecom

Not every combination is usefull nor functional. It depends on what should
be parsed. 

------------+--------------------------+-------------------------
processing  | telecom                  | web
module      |                          |
------------+--------------------------+-------------------------
input       | hicom116, elmeg,         | clf, wuftpd, msiis, null
module      | isdnlog, null            | squid, realserver,
            |                          | shoutcast
------------+--------------------------+-------------------------
output      | tkcontrol                | modlogan, webalizer, 
module      |                          | text, csv
------------+--------------------------+-------------------------

For a description of the different modules read doc/using-plugins.txt.

1.1.2 creating a 'dynamic' version of modlogan
---------------------------------------------
This step is handled by the configure script, too.
Type:

$ ./configure --with-gd=<path to the libgd headers> --enable-plugins

Please not:

The output modules will only be build with graphics support if you have 
shared version of libgd !! 
If you can't get a shared version of libgd create the static version of 
modlogan as described in 1.1.1.

2. compilation
--------------

configure modlogan according to the steps 1.1.1 or 1.1.2 and type the
following:

$ make
$ make install

3. configuration
----------------

- copy ./doc/sample.def.conf (config-file with the default options) to the
  configured SYSDIR (${prefix}/etc/modlogan.def.conf)
  ./doc/sample.conf (the server specific configfile) to 
- take ./doc/sample.conf and modidy it for your needs.
  - set 'default_configfile' in the global-section to the location you
    copied modlogan.def.conf to

- copy ./doc/modlogan.searchengines to the location you specified in the
  configfile.

- execute modlogan:
  $ ... ./modlogan -c <configfilename>

that's it. 

------------------------------------------------------------------------------
If you've found a bug, need a special feature or just want to tell me how
you like this piece of software, send your mail to:

Jan Kneschke <jan@kneschke.de>
------------------------------------------------------------------------------
