| AxKit2 documentation | Contained in the AxKit2 distribution. |
AxKit2 - XML Application Server
Just start the server:
$ cp etc/axkit.conf.sample etc/axkit.conf $ ./axkit
To do anything more than run the demo files you'll need to read the documentation and start writing plugins.
AxKit2 is the second generation XML Application Server following in the footsteps of AxKit-1 (ONE). AxKit makes content generation easy by providing powerful tools to push XML through stylesheets. This helps ensure your web applications don't suffer from XSS bugs, and provides standardised templating tools so that your template authors don't need to learn new Perl templating tools.
In doing all this AxKit harnesses the power of XML. Feel the power.
Everything AxKit2 does is controlled by a plugin, and thus a lot of the documentation for things that AxKit2 does is held within the provided plugins.
To get started writing plugins see AxKit2::Docs::WritingPlugins.
The following are the core plugins which ship with AxKit2:
See plugins::cachecache.
See plugins::dir_to_xml.
See plugins::error_xml.
See plugins::fast_mime_map.
See plugins::magic_mime_map.
See plugins::request_log.
See plugins::serve_cgi.
See plugins::serve_file.
See plugins::stats.
See plugins::uri_to_file.
See plugins::logging::warn.
AxKit2 has a console which you can log into to view current and trend activity on your server. To setup the console add the following config:
ConsolePort 18000 Plugin stats
This creates the console on localhost:18000, and loads the stats plugin to
provide trend statistics on your server. To use the console just telnet to
port 18000. There is online help there and it should be obvious what each
function does.
To provide additional stats, modify the stats plugin or write your own. Whatever
get_stats returns will be output in the console when asked for statistics.
TODO - fill in as I write more docs for each module.
In creating AxKit2 the following goals were aimed for:
Many people wanted a straight port to Apache2/mod_perl2, so that they could get their AxKit code migrated off the Apache1.x platform. This would have been one route to go down, a route which we looked at very seriously. However already taking up the mantle of an Apache2 version of AxKit is Tom Schindl's Apache2::TomKit distribution. Please check that out if you absolutely need mod_perl2 integration.
AxKit2 is licensed under the Apache License, Version 2.0.
| AxKit2 documentation | Contained in the AxKit2 distribution. |
# Copyright 2001-2006 The Apache Software Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # package AxKit2; use strict; use warnings; no warnings 'deprecated'; use Danga::Socket; use AxKit2::Client; use AxKit2::Server; use AxKit2::Config; use AxKit2::Console; use AxKit2::Constants qw(LOGINFO); use constant AIO_AVAILABLE => eval { require IO::AIO }; our $VERSION = '1.1'; sub run { my $class = shift; my $configfile = shift; my $config = AxKit2::Config->new($configfile); local $SIG{'PIPE'} = "IGNORE"; # handled manually # config server AxKit2::Console->create(AxKit2::Config->global); # setup server for my $server ($config->servers) { AxKit2::Server->create($server); } if (AIO_AVAILABLE) { AxKit2::Client->log(LOGINFO, "Adding AIO support"); Danga::Socket->AddOtherFds (IO::AIO::poll_fileno() => \&IO::AIO::poll_cb); } # print $_, "\n" for sort keys %INC; Danga::Socket->EventLoop(); } 1;