From 43a5111230ad393ae8b565a9c04f9db32d8fa919 Mon Sep 17 00:00:00 2001 From: Chris Travers Date: Thu, 6 Dec 2012 13:37:48 +0000 Subject: [PATCH] Adding Plack documentation git-svn-id: svn://svn.code.sf.net/p/ledger-smb/code/branches/1.3@5307 4979c152-3d1c-0410-bac9-87ea11338e46 --- README.plack | 56 +++++++++++++++++++++++++++++++++++++++++++++++ doc/release_notes | 2 +- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 README.plack diff --git a/README.plack b/README.plack new file mode 100644 index 0000000000..7077089a44 --- /dev/null +++ b/README.plack @@ -0,0 +1,56 @@ +README for Plack FCGI interface for LedgerSMB +Chris Travers +2012-11-13 +---------------- + +WARNING: Plack support for LedgerSMB is still designated as "expermental" which +means that it may have bugs not found in the core distribution. Serious bugs in +this area were fixed as recently as 1.3.25. Use at your own risk. In addition, +persistant code environments are more sensitive generally than the CGI +environments and when the script dies one does not always get a helpful error. +In particular, blank, white screens are typical of the software exiting before +the standard output is returned to the web server. There have been cases (which +have been corrected) which caused these kinds of errors under plack only. + +---------------- + +This addon provides an app.psgi for LedgerSMB which allows you to properly run +servelets as fcgi scripts instead of as CGI scripts. This makes LedgerSMB +significantly more responsive but performance is more difficult to manage under +load. + +The current module preloads a fair number of modules and then runs a +fork/wait/execute loop where the less safe code is run. This performs well on +platforms which provide copy on write functionality, but may not perform as well +on Windows. The startup overhead for the dependencies is thus limited in this +case to a one-time load on starting the servelet. Tests suggest that this +eliminates 2/3 or more of the startup overhead. + +This module has been tested on fcgi backends but has not been tested on other +backends. I know of no reason it shouldn't work on starlet and other backends, +so if it works for you, please let us know. + +The preloads are all set in the app.psgi. You can adjust them there. Note that +preloaded modules are not reloaded when altered so you will have to restart the +fcgi daemon if you change the preloads. One solution is that for a performance +cost you can comment out a preload, and restart the daemon when working on a +preloaded module. + +Currently this will preload configuration settings so changes to the +ledgersmb.conf will require a restart. + +By default this currently starts up to 10 processes. This number can be +tweaked. + +To run the servelet, you will need to run the following from a startup script +somewhere: + +plackup -s FCGI -D --listen /var/run/httpd/fastcgi/lsmb.sock + +We have also packaged a few utilities here that are helpful, and these are +included in the tools/system directory. These include lsmbstart and lsmbstop, +both bash scripts designed to start and stop the fcgi processes. We also +include ledgersmb.service which is a systemd config file for systemd systems +(including Fedora) to use in starting/stopping the service. A Sys V init script +is not currently included but that is likely to be in future versions +(contributions welcome). diff --git a/doc/release_notes b/doc/release_notes index ffc2d1f502..eed520ead4 100644 --- a/doc/release_notes +++ b/doc/release_notes @@ -1,7 +1,7 @@ RELEASE NOTES LedgerSMB 1.3 -Latest Revision: 1.3.25, June 17, 2012. +Latest Revision: 1.3.26, June 17, 2012. 1: Welcome to LedgerSMB