_ _
/_\ _ _ __ _ _ _ | |_ __ _
/ _ \| '_/ _` | ' \| ' \/ _` |
/_/ \_\_| \__,_|_||_|_||_\__,_|
-- By Pepperfish
aranha@pepperfish.net
------[ Contents ]-------------------------------------------------------------
* What is Aranha
* Why use Aranha
* How to configure and build Aranha
* How to configure a webserver with Aranha
* Configuring Apache
* Configuring Zeus
* How to contribute to Aranha
------[ What is Aranha ]-------------------------------------------------------
Aranha is a web-application development platform. Or, in less 'buzzwords'
Aranha is a piece of software written to allow web applications to be written
more cleanly and more easily.
Aranha is a "Local FastCGI Responder" although work is in progress to allow it
to work as a 'FastCGI Authoriser' and as a 'FastCGI Filter'.
There are no plans to add 'Remote FastCGI' support to Aranha since both Apache
and Zeus come with programs to enable local FastCGI apps to be bound to a TCP
port.
The following is a list of the most important features of Aranha:
* Uses the Lua programming language at its core.
* Is written to be quick wherever possible
* Does not use a vast amount of memory (about 3 megabytes on my system)
* Is highly configurable even after being compiled
* Comes with a range of useful addon-libraries such as a binding to the
popular and powerful open-source database layer 'libdbi', a binding to
allow the use of the MD5 digest algorithm and a version of the excellent
luasocket library, allowing TCP and UDP socket access to the Lua layer.
------[ Why use Aranha ]-------------------------------------------------------
Here are a few reasons for using Aranha over the various other options out
there such as PHP, Lua CGIs, ASP, mod_perl or Java Servlets.
* Much quicker than CGI
* Uses Lua rather than ZEND
* Isn't written by morons :-)
* The large number of libraries available for Lua offer vast extension
opportunities where extra functionality is needed.
* The clean interface to the Lua layer (thanks to the Lua team) mean that
writing extensions for Lua is a lot easier than for Perl or PHP
* Aranha is designed to be extended easily and effectively.
------[ How to configure and build Aranha ]------------------------------------
If you are happy to build Aranha with 'everything' then simply ensure you have
all the prerequisites listed below, cd into the top level (where the README
file is) and simply type 'make' (Aranha needs GNU make, so you may need to
type 'gmake' if you are on a BSD based machine).
In order to build a minimal Aranha, you will need:
* A unix-like operating system (E.g. Linux or FreeBSD)
* GNU Make
* The FastCGI devkit (This can be fetched from www.fastcgi.com)
In order to build the extension libraries provided in the tarball you will
also need:
* The libdbi library built and installed on your system. We recommend at
least version 0.6.7. see http://libdbi.sourceforge.net/ for more info.
* The libgb library built and installed on your system. We recommend at
least version 2.0.1 but the later the better.
See http://www.boutell.com/gd/http/ for more information.
If you need to configure anything, the place to start is Makefile.config in
the top level of the Aranha build tree. Each part of that is well
commented. If you need to configure individual extensions, check out the
Makefile.frag files in each extension's directory.
------[ How to configure a webserver with Aranha ]-----------------------------
As I said above, Aranha is a 'Local FastCGI Responder' so if you are using a
webserver other than Apache 1.3.x or Zeus 4.x then please read your webserver
configuration manuals and then attempt to do the equivalent of:
1. Create a directory to store the aranha.conf and aranha.fcgi files
2. Set up a directory mapping to host FastCGI responders
3. Set your webserver to pass .lhtml and .lua files to /mapping/aranha.fcgi
---------------------------------------------------[ Configuring Apache ]------
1. As above
2.a Ensure that mod_fastcgi.o is either compiled into your Apache or is
compiled as a DSO and has the appropriate LoadModule directive in
httpd.conf. Also enable the mod_actions.o module
( A debian package libapache-mod-fastcgi exists. Otherwise, mod_fastcgi
is available from www.fastcgi.com )
2.b Create an entry in the top-level of httpd.conf which says:
Alias /mapping /path/to/dir/containing/aranha.fcgi
Options +ExecCGI
SetHandler fastcgi-script
AddHandler fastcgi-script .fcgi
3. In the relevant server section of your httpd.conf add:
AddType aranha-source .lhtml .lua
Action aranha-source /mapping/aranha.fcgi
-----------------------------------------------------[ Configuring Zeus ]------
1. As above
2. Enable the FastCGI module and add a FastCGI path mapping in the UI
3. In the Handlers UI, map .lhtml to /mapping/aranha.fcgi and do likewise
for .lua files. (At the moment, we recommend that you allow the Zeus
virtual server to detect 404 states)
------[ How to contribute to Aranha ]------------------------------------------
Aranha is stored in a public depot of the little-known Perforce version
control system. Perforce graciously provide a way for Open-Source projects to
use their product at no cost; and for this, the Aranha project is grateful.
Initially if you would like to contribute to Aranha, please send patches
against release versions to the email address listed at the top of this
file. If you want to check out the bleeding edge source code then you will
need a perforce client program and the depot details.
The Perforce depot is on haddock.pepperfish.net:1666
The Public 'read-only' user is called 'anonymous'
Please create a client called anon_ where is likely to be unique
for you. (E.g. the hostname you are checking the code out on if it is a
personal machine).
When you create your client view, you should set the view to be:
//betty/aranha/... //anon_/...
If you just want to check out Aranha.
To report bugs against Aranha go to http://bugs.pepperfish.net/ create
yourself an account on the bugzilla there and then submit a bug against the
Aranha component of the 'Betty' product.
If you need more help on either getting perforce to do what you want, or on
submitting bug reports, please email the address at the top of this file.
------------------------------------------------------------------[ END ]------