Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
LedgerSMB git svn mirror
JavaScript CSS Perl TeX Other PHP Other
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
LedgerSMB
UI
bin
contrib/replication
css
dists
doc
images
locale
sql
t
templates
tools
utils
.gitignore
BUGS
Build.PL
COMPATIBILITY
CONTRIBUTORS
COPYRIGHT
Changelog
INSTALL
LICENSE
LedgerSMB.pm
Makefile.PL
README.Starlet
README.plack
README.sql-ledger
README.tests
README.translations
Reconciliation.pl
UPGRADE
account.pl
admin.pl
am.pl
ap.pl
ar.pl
asset.pl
bp.pl
budget_reports.pl
budgets.pl
business_unit.pl
common.pl
configuration.pl
configure_apache.sh
contact.pl
contact_reports.pl
custom.pl
customer.pl
document_series.pl
drafts.pl
employee.pl
favicon.ico
file.pl
gl.pl
goods.pl
ic.pl
import_csv.pl
index.html
install.sh
install_interactive.pl
installer.pl
inv_reports.pl
inventory.pl
invoice.pl
ir.pl
is.pl
job.pl
journal.pl
ledgersmb-httpd-2.0-2.2.conf.template
ledgersmb-httpd-2.4.conf.template
ledgersmb.conf.default
location.pl
login.pl
lreports_co.pl
lsmb-request.pl
lsmb.pl
menu.pl
oe.pl
old-handler.pl
order.pl
payment.pl
pe.pl
pnl.pl
pos.conf.pl.template
recon.pl
report_aging.pl
reports.pl
rest-handler.pl
rest.pl
setup.pl
taxform.pl
template.pl
timecard.pl
transtemplate.pl
trial_balance.pl
upgrade.pl
user.pl
vendor.pl
vouchers.pl
winprint.bat

README.plack

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).
Something went wrong with that request. Please try again.