To get AxKit up and running, you will need:
The Apache HTTP server (Version 1.3. x )
The mod_perl Apache extension module (Version 1.26 or above)
An XML parser written in Perl or, more commonly, one written in C that offers a Perl interface module
The core AxKit distribution
2.1.1 Installing Apache and mod_perl
If you are running an open source or open source-friendly operating system such as GNU/Linux or one of the BSD variants (including Mac OS X), chances are good that you already have Apache and mod_perl installed. If this is the case, then you probably will not have to install them by hand. Simply make sure that you are running the most recent version of each, and skip directly to the next section. However, in some cases, using precompiled binaries of Apache and mod_perl proved to be problematic for people who want to use AxKit. In most cases, neither the binary in question, nor AxKit, are really broken. The problem lies in the fact that binaries built for public distribution are usually compiled with a set of general build arguments, not always well suited for specialized environments such as AxKit. If you find that all AxKit's dependencies install cleanly, but AxKit's test suite still fails, you may consider removing the binary versions and installing Apache and mod_perl by hand. At the time of this writing, AxKit runs only under Apache versions in the 1.3. x branch. Support for Apache 2. x is currently in development. Given that Apache 2 is quite different from previous versions, both in style and substance, the AxKit development team decided to take things slowly to ensure that AxKit for Apache 2. x offers the best that the new environment has to offer.
To install Apache and mod_perl from the source, you need to download the source distributions for each from http://httpd.apache.org/ and http://perl.apache.org/, respectively. After downloading, unpack both distributions into a temporary directory and cd into the new mod_perl directory. A complete reference for all options available for building the Apache server and mod_perl is far beyond the scope of this book. The following will get you up and running with a useful set of features:
$ perl Makefile.PL \ > EVERYTHING=1 \ > USE_APACI=1 \ > DYNAMIC=1 \ > APACHE_SRC=../apache_1.3.xxx/src \ > DO_HTTPD=1 \ > APACI_ARGS="--enable-module=so --enable-shared=info \ > --enable-shared=proxy --enable-shared=rewrite \ > --enable-shared=log_agent" $ make $ make install
All lines before the make command are build flags that are being passed to perl Makefile.PL . The \ characters are simply part of the shell syntax that allows you to divide the arguments across multiple lines. The > characters represent the shell's output, and you should not include them. Also, be sure to replace the value of the APACHE_SRC option with the actual name of the directory into which you just unpacked the Apache source.
2.1.2 XML Processing Options
As I mentioned in the introduction to this chapter, AxKit is a publishing and application framework. It is not an XML parser or XSLT processor, but it allows you to choose among these lower-level tools while ensuring that they work together in a predictable way. If you do not already have the appropriate XML processing tools installed on your server, AxKit attempts to install the minimum needed to serve transformed XML content. However, more cautious minds may prefer to install the necessary XML parser and any optional XSLT libraries to make sure they work before installing the AxKit core. Deciding which XML parsers or other libraries to install depends on your application's other XML processing needs, but the following dependency list shows which tools AxKit currently supports and which publishing features require which libraries.
- Gnome XML parser ( libxml2 )
Required by AxKit for: eXtensible Server Pages
Available from: http://xmlsoft.org/
- Expat XML parser
Required by AxKit for: XPathScript
Available from: http:// sourceforge .net/projects/expat/
- Gnome XSLT processor ( libxslt )
Requires: libxml2 , XML::LibXSLT
Required by AxKit for: optional XSLT processing
Available from: http://xmlsoft.org/XSLT/
- Sablotron XSLT processor
Requires: Expat, XML::Sablotron
Required by AxKit for: optional XSLT processing
Available from: http://www.gingerall.com/
You do not need to install all these libraries before installing AxKit. For example, if you plan to do XSLT processing, you need to install either libxslt or Sablotron, not both. However, I do strongly recommend installing both supported XML parsers: Gnome Project's libxml2 for its speed and modern features, and Expat for its wide use among many popular Perl XML modules. In any case, remember that you must install the associated Perl interface modules for any of the C libraries mentioned above, or AxKit will have no way to access the functionality that they provide.
Again, some operating system distributions include one or more of the libraries mentioned above as part of their basic packages. Be sure to upgrade these libraries before proceeding with the AxKit installation to ensure that you are building against the most recent stable code.