_ _ /_\ _ _ __ _ _ _ | |_ __ _ / _ \| '_/ _` | ' \| ' \/ _` | /_/ \_\_| \__,_|_||_|_||_\__,_| -- 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 ]------