Thu Oct 28 23:13:13 2004

AxKit Frequently Asked Questions

I have strange problems -

when I repeatedly load one of my pages, sometimes a bug appears, sometimes it doesn't. Or, my page is somehow remembering values from a previous request.

See DebuggingStrangeProblems

make test fails for t/02language.t

The usual problem here is the use of XML::LibXML 1.53. A backwards incompatible change caused some symbols to not be exported, and so this broke XSP.pm. We recommend downgrading to XML::LibXML 1.52 until 1.54 is considered stable.

Upon startup of Apache I get the error: "Can't locate loadable object for module Apache::Log in @INC"

AxKit uses Apache::Log for its logging in some places. This gives us some extra flexibility. However, it is not built into mod_perl by default - you need to compile it in explicitly. The simplest way to do this is to just compile all the extra bits of mod_perl:

# in the modperl directory
perl Makefile.PL EVERYTHING=1
make
make test install

See also the various INSTALL documents that ship with mod_perl, and also the mod_perl guide->.

If you are using FreeBSD, the easiest way to install AxKit is using the port, which can be found in /usr/port/www/p5-AxKit; this will fetch and install all the required modules first.

AxKit Segfaults

The usual cause is currently a conflict between differing versions of expat that are being loaded at the same time. This shouldn't happen if you install expat as a shared library before you compile expat, as it will detect an installed version during configure.

If you still get problems despite this, you might want to compile apache without expat. This is done with the following configure option:

./configure --disable-rule=EXPAT

Another potential problem is with SSL enabled and PHP compiled in this is due to a conflict between large files support between apache and mod_perl and/or PHP. To fix this recompile both Apache and mod_perl with the same large files flags.

make test fails the xslt-basic tests

This may have something to do with large file support. ie there is a conflict between the perl large file support and the apache/mod_perl. perl -V | grep "uselargefiles=define" means perl has large file support. You have to recompile apache and mod_perl. To get the required flags into apxs use:

#!/bin/bash CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" \ CFLAGS_SHLIB="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" \ EAPI_MM=/usr/local/src/mm-1.3.0 \ ./configure --with-layout=Slackware \ --enable-module=most \ --enable-shared=max \ --enable-shared=ssl \ --disable-rule=EXPAT

The CFLAGS* are the important bits. Then recompile mod_perl with apxs and it should work... :)

make test fails the xslt-basic tests (2)

If the following tests fail...

xslt-basic/02_include.t xslt-basic/03_document_1arg.t xslt-basic/04_document_2args.t

...you very likely have a problem with the AxKit set libxml callbacks. The callback problems occur with specific combinations of XML::LibXML, XML::LibXSLT and the underlying C libraries libxml and libxslt. A list of working combinations can be found at

http://axkit.org/cgi-bin/ezmlm-cgi?5:mss:902:200404:dbffannaclhkbkogofnc->

(Depending on you compiler, building XML::LibXML 1.58 may fail - use 1.58_1 instead!)

Which XSLT Processor?

AxKit ships with support for two XSLT processors: libxslt and Sablotron. Sometimes it's quite hard to decide which one to use. Most people choose libxslt because it's both fast and supports the XSLT 1.0 spec completely. Sablotron is a little slower, but now supports all of XSLT 1.0. Most AxKit developers use libxslt (requires XML::LibXSLT) though.

Bizarre copy of ARRAY in aassign (sic)

This is actually a bug in Perl 5.6.0. See this post to perl5-porters-> for a patch, or use perl 5.6.1 or higher (or 5.00503).

We do not support versions of perl lower than 5.00503.

Can I run AxKit on Windows?

Yes, although it is not considered a primary platform, so you are mostly on your own with this. You can install it via ActiveState's PPM as follows:

ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl-1.25_1.3.17-axkit.ppd

Note that will install mod_perl too. You can install it without mod_perl using the AxKit.ppd package at the same location. If you have further questions ,->.. please contact the AxKit Users mailing list->.

AxKit fails on looking up stylesheets

If you get an error message in your log with "OK" in it, this may be caused by having CGI::Carp, or some other module that installs a $SIG{__DIE__} handler in a broken manner. Make sure you don't have CGI::Carp in your startup.pl or any other place.

Note: This should no longer happen on AxKit 1.6 or higher.

Does AxKit work on Apache 2.0?

No. But this is a current active project that a couple of people are working on. There are two complex parts to this: 1) porting the configuration directives and the way AxKit loads itself, and 2) making filters work with the bucket brigades system. That combined with the fact that mod_perl 2.0 isn't considered stable yet is holding the project back a little bit, but please feel free to ask about it on the mailing lists.

How do I search the mailing list archives?

Try here - http://www.mail-archive.com/axkit-users@axkit.org/->

You can also use google. Hint: put "axkit-users" in your search string.

%ENV isn't populated

When you use AxKit via SetHandler axkit or AddHandler then as an optimisation the %ENV hash is not populated. This is similar to if you set the mod_perl option PerlSetupEnv Off. In order to have %ENV populated again you can revert to using PerlHandler AxKit, however a better solution is to get the things you need from %ENV out of $r instead.


Edit This Page / Show Page History /