import sql-ledger 2.4.4
[freeside.git] / sql-ledger / doc / faq.html
index 0f6f237..5a26f64 100644 (file)
 <ul>
-<p><li><h4>Sub-menus and Apache 2.0</h4>
-Some versions of Apache 2.0 (2.0.44+) don't expand sub-menus and generate
-a 500 error at various points. This stems from workaround developed for
-earlier versions of Apache 2.0. It looks like this workaround must now be
-disabled. If you get an error or the sub-menus don't expand edit
-SL/Form.pm and comment lines 80-82.
-<pre>
-  # for Apache 2 we escape strings twice
-#  if (($ENV{SERVER_SOFTWARE} =~ /Apache\/2/) && !$beenthere) {
-#    $str = $self->escape($str, 1);
-#  }
-</pre>
+<p><li><h4>lineitems not printing</h4>
+Templates designed on a *NIX platform don't work on a DOS platform.
+To make them work load the template either with the builtin template editor
+or a text editor and save. Templates designed on a Windows platform have the
+same problem and won't work on a *NIX platform. Once you strip the ^M's
+the'll work just fine.
+
+<p>Everybody now, "Who do we thank for this schlamassl".
 
+<p><li><h4>UTF-8 character encoding</h4>
+Most of the translations are in ISO format. To convert the translations
+change directory to locale/cc and convert the files with iconv to UTF-8.
+You should also convert the COAs too and make sure you select UTF-8
+encoding when you setup a new dataset.
+
+
+<p><li><h4>characterset problems</h4>
+If you have problems displaying the correct characterset try adding
+<pre>
+  AddDefaultCharset On</pre>
+in your httpd.conf file.
 
 <p><li><h4>About installation</h4>
 The easiest is to use the setup.pl script as root.
 You don't need to know very much about your system, just login as root,
 run 'perl setup.pl' and follow the prompts.
 <p>setup.pl does not check for missing software packages and it is your
-responsibility to make sure you have the required pieces
+responsibilite to make sure you have the required software
 installed either from source or from a package supplied with your distro.
 
 <p>Requirements are clearly indicated in the README file and on the
 download page.
 
 
-<p><li><h4>IDENT Authentication failed for user "postgres"</h4>
+<p><li><h4>cannot create function</h4>
+<ol>
+<li>either run createlang and install the plpgsql language handler or
+install yourself. For more information how to do that, visit
+<a href=http://www.postgresql.org/docs/>PostgreSQL</a> and
+read the interactive documentation for procedural languages.
+
+<li>load admin.pl
+<li>unlock the system
+<li>login
+</ol>
 
-This error has everything to do with the way the distros set up
-access rights for postgres. They are way too restrictive and leave you
-wondering what to do next.
 
-<p>Do yourself a favour and change authentication in pg_hba.conf to
+<p><li><h4>The requested URL /sql-ledger/admin.pl was not found</h4>
+Your webserver doesn't know where to find the script. Most commonly this
+is from distributions hiding webserver configuration files in different
+locations or files and setup.pl wasn't able to configure the location for
+you. Find out which file (httpd.conf, httpdcommon.conf, ...)
+controls your webserver configuration and add
+<pre>
+  # SQL-Ledger
+  Include /etc/httpd/sql-ledger-httpd.conf</pre>
+
+Create a file 'sql-ledger-httpd.conf' in /etc/httpd and copy the next part
+into the file.
 
 <pre>
-local           all              trust</pre>
+  AddHandler cgi-script .pl
+  Alias /sql-ledger/ /var/www/sql-ledger/
+  &lt;Directory /var/www/sql-ledger&gt;
+    Options ExecCGI Includes FollowSymlinks
+  &lt;/Directory&gt;
+
+  &lt;Directory /var/www/sql-ledger/users&gt;
+    Order Deny,Allow
+    Deny from All
+  &lt;/Directory&gt;</pre>
+replace '/etc/httpd' and '/var/www' with the appropriate directories.
+
+
+<p><li><h4>users/members : Permission denied</h4>
+Your webserver must have write access to the users directory.
+If your server runs as user/group 'apache:apache' then set the
+users directory to owner/group apache:apache.
+<pre>
+  # chown -R apache:apache users</pre>
+
+
+<p><li><h4>Dataset newer than version</h4>
+You are trying to use an older version with a dataset which was
+created with a newer version.
 
-<p>until you have figured what all this stuff in pg_hba.conf does.
 
-<p><b>NOBODY</b>, I repeat, <b>NOBODY</b>, from the Internet will be able to
-connect to postgres. You can't even connect from the inside LAN, the only
-one who is allowed to connect are clients originating from localhost.
+<p><li><h4>PDF option not working</h4>
+Check if you have latex and pdflatex installed.
 
-<p>Read a bit about the different authentication settings and change
-them as you see fit.
-It is all described in detail in pg_hba.conf
 
-<p>If you can't find the file, there is a wonderful utility called find.
-Use it.
+<p><li><h4>Apache 2.0 "error 500"</h4>
+Some of the early versions of Apache 2.0 (< patchlevel 44) had a rewrite engine
+which decoded escaped strings. This created a lot of problems and I worked
+around it by escaping strings twice.
+If you get a server 500 error 'filename too long' or if collapsed menus
+don't expand you may have to adjusted the following code in
+SL/Form.pm and change the number (44) on line 84.
 <pre>
-# find /usr/local -type f -name 'pg_hba.conf'
-</pre>
+  # for Apache 2 we escape strings twice
+  if (($ENV{SERVER_SIGNATURE} =~ /Apache\/2\.(\d+)\.(\d+)/) && !$beenthere) {
+    $str = $self->escape($str, 1) if $2 < 44;
+  }</pre>
+
+
+<p><li><h4>IDENT Authentication failed for user "sql-ledger"</h4>
+Edit pg_hba.conf and change authentication to
+
+<pre>
+  local           all              trust</pre>
+
+The file is in the 'data' directory of your postgresql installation.
+This is different with every distribution so look for it.
+<pre>
+  # find / -name 'pg_hba.conf'</pre>
 
 
 <p><li><h4>DBD-Pg for Mandrake 9.0</h4>
@@ -59,6 +122,7 @@ from the source package.
 Install perl-DBD-Pg-1.01-4mdk.i586.rpm from the 'contrib' area.
 (Mandrake / 9.0 / contrib / RPMS)
 
+
 <p><li><h4>LaTeX error</h4>
 If for some reason LaTeX produces an error message check for strange
 characters in your account description and parts description
@@ -69,35 +133,37 @@ and use \usepackage[latin1]{inputenc} in the preamble.
 If you don't want to edit tex code by hand,
 you could use Lyx, Abiword, or any WYSIWYG editor capable of exporting
 latex code.
-To do that you must change the tokens for parameters <% and %> to something
+To do that you must change the tokens for the variables <% and %> to something
 like << and >>. % is the comment character in tex. There is also a
 pagebreak block which must be commented out.
 When you are done with the changes
 replace << and >> with <% and %> and uncomment the pagebreak block.
 
-<p>LaTeX is difficult but it also offers a much superior interface to produce
-professionally looking forms in postscript and PDF format.
-Unfortunately with power comes some pain too.
+<p>LaTeX is difficult but it also offers a much superior environment
+to produce professionally looking forms in postscript and PDF format.
+Unfortunately with all that power there is also a steep learning curve.
 
 
 <p><li><h4>W3M</h4>
 pass terminal=mozilla when you start w3m
-<pre>$ w3m -F http://localhost/sql-ledger/login.pl?terminal=mozilla</pre>
+<pre>
+  $ w3m -F http://localhost/sql-ledger/login.pl?terminal=mozilla</pre>
 
 To use without frames
-<pre>$ w3m http://localhost/sql-ledger/login.pl?terminal=lynx</pre>
+<pre>
+  $ w3m http://localhost/sql-ledger/login.pl?terminal=lynx</pre>
 
 <p><li><h4>PDF option disappeared</h4>
 Edit sql-ledger.conf and set $latex = 1;
-<br>sql-ledger.conf is perl code, check if it compiles, if it does not
-the internal defaults are used which set $latex to 0, hence no PDF option.
+<br>sql-ledger.conf is perl code, check if it compiles, if it does not,
+the internal defaults are used which turn off $latex, hence no PDF option.
 
-<p><li><h4>SQL-Ledger on Mac Os X 10.1.5</h4>
-Jaume Teixi put together
-<a href=http://www.rocacorbit.com/techdocs/sql_ledger_os_x.html>
+<p><li><h4>SQL-Ledger installation Mac Os X 10.3 (Panther)</h4>
+Paul J. Teeter put together
+<a href="http://paulteeter.net/writing/technical/howto-sql-ledger-osx.htm">
 installation instructions</a> to run SL on a Mac.
-<br>The instructions are for 1.8.5 however they still apply to any of the
-newer versions.
+<br>The instructions are for SL 2.2 but the will work for any of the later
+releases too.
 
 <p><li><h4>Installation on Windows (WIN32)</h4>
 <ul>
@@ -109,15 +175,12 @@ module
 <a href=http://www.edmund-mergl.de/export/>DBD-Pg module</a>
 <li>download the latest version of <a href=/cgi-bin/nav.pl?page=source/index.html&title=Download>SQL-Ledger</a>
 <li>extract the files to c:\apache\sql-ledger
-<li>download
-<a href=../source/sql-ledger-windows.tar.gz>sql-ledger-windows.tar.gz</a>
-and extract the files to c:\apache\sql-ledger
-    <br>the shebang line is changed to c:\perl\bin\perl and the symlinks
-    are regular files
-<br>answer with 'Yes' to overwrite existing files.
+<li>run 'perl shebang' to change the first line of the scripts. If perl
+is not in c:\perl\bin' change '#!c:\\perl\\bin\\perl' to the location where
+your perl binary is.
 <li>edit c:\apache\conf\httpd.conf and add
 <pre>
-Alias /sql-ledger/ "C:/apache/sql-ledger/"
+Alias /sql-ledger/ "c:/apache/sql-ledger/"
 &lt;Directory "c:/apache/sql-ledger"&gt;
   AllowOverride All
   AddHandler cgi-script .pl
@@ -133,7 +196,7 @@ Alias /sql-ledger/ "C:/apache/sql-ledger/"
 </pre>
 
 <li>start Apache
-<li>start Postgres|Oracle
+<li>start Postgres|Oracle|DB2
 <li>connect to http://localhost/sql-ledger/admin.pl and setup users
 and datasets
 <li>connect to http://localhost/sql-ledger/login.pl and login
@@ -180,82 +243,111 @@ in /var/www/sql-ledger
 
 <p><li><h4>What do I enter for the language</h4>
 If you use English, nothing, if you want to use a foreign language for
-the login screen and admin stuff enter the language code. All the
-language specific files are in the locale directory. The long form for
-the language is in the LANGUAGE file.
+the login screen and admin stuff enter the language code, this is the
+directory in the locale directory.
+
+
+<p><li><h4>printing to a printer</h4>
+Printers are defined in sql-ledger.conf
 
-<p><li><h4>Mandrake 9.0 permission denied error</h4>
-Mandrake says to add this to your commonhttpd.conf
 <pre>
-&lt;Directory /usr/local/sql-ledger&gt;
-   AllowOverride All
-   Options -MultiViews -Indexes -FollowSymLinks
-   Order allow,deny
-   Allow from all
-&lt;/Directory&gt;
+%printers = ( 'Default' => 'lpr', 'Color' => 'lpr -PEpson' );</pre>
 
-The way apache starts is it:
-Blocks all access to the physical file system /
-Opens access to the physical file system /var/www/html
-Opens access to the physical file system /var/www/perl
-Opens access to the physical file system /var/www/cgi-bin
-Opens access to the physical file system /var/www/protected-cgi-bin 
-Opens access to the physical file system /home/*/public_html
-Opens access to the physical file system /home/*/public_html/cgi-bin
-Opens access to the physical file system /var/www/icons
-Opens access to the physical file system /usr/share/doc
-
-Since you're trying to access files outside of those allowed paths, you
-have to specifically allow it.  It's done this way because of some past
-exploits with the pathnames.  Rather than trust that there will never be
-another bug within apache that will let you get somewhere you don't
-want, you set it up securely out of the box so that apache won't let
-itself go somewhere that you don't want it to.
-</pre>
+Check in your /etc/printcap file for the names of available printers.
 
+<p>If you have LaTeX installed set
+<pre>
+  $latex = 1</pre> in sql-ledger.conf
 
-<p><li><h4>Incorrect Dataset version</h4>
-The dataset you are trying to use is not compatible with the version.
-When you upgrade datasets use the same database user in the "User"
-field as the one listed in the Database section for the user.
+<p>To send the document to the printer check the "Postscript" or "PDF" format,
+enter the number of copies and click on the "Print" button.
 
+<p>The printer you enter in your preferences is the default printer.
+You can choose any other available printer. This makes it possible
+to print from anywhere on the network to any printer.
 
-<p><li><h4>Mandrake 8.2</h4>
-Mandrake did not include the package "perl-DBD-Pg-1.01-1mdk.i586.rpm"
-You can install the package from Mandrake 8.1
+<p>Note: html format is for screen preview. Use the "Print" option from your
+browser to print to a printer.
 
 
-<p><li><h4>printing to a printer</h4>
-Setup a printer in the "Printer" field in the users preferences.
-i.e lpr -Plaser
-and set $latex = 1 in sql-ledger.conf
-LaTeX must be installed for this to work.
+<p><li><h4>Using samba to send printjobs to a printer attached to a Windows XP workstation</h4>
+The next part applies to roll your own printfilters only. If you use CUPS or
+LPRng your milage may vary but you can still use this as a guide how it works.
+I use the printer 'Epson' as an example which is
+attached to a XP workstation called Raven, no password to log on.
 
-<p>To send the document to the printer check the "Postscript" or "PDF" format,
-enter the number of copies and click on the "Print" button.
+<pre>
+/etc/printcap entry on the server which runs lpd
+epson:Epson\
+  :sh:\
+  :lp=/dev/null:\
+  :sd=/var/spool/output/epson:\
+  :if=/usr/libexec/lpr/epson/prnfilter:\
 
-<p>The printer field is available only when you edit the user's
-preferences with admin.pl.
+# end of entry in /etc/printcap
 
-<p>Note: html format is for screen preview. Use your browser's
-print function.
 
+# pnrfilter shell script
+#!/bin/sh
+# Filter for Epson Stylus
 
-<p><li><h4>beginning balances</h4>
-Add a GL Journal entry and enter the beginning balance for your accounts.
-Use your balance sheet. If you also want to add open invoices, add the invoices
-and make the appropriate adjustments. Your balance sheet includes these
-amounts!
+PATH="$PATH:/usr/local/bin"
+
+#read first_line
+read tmp
+first_line=`echo $tmp | cut -b1-2 | sed -n '1p'`
+
+first_chr=`expr "$first_line" : '\(.\)'`
+first_two=`expr "$first_line" : '\(..\)'`
+rewindstdin
+
+if [ "$first_two" = "%!" ]; then # Postscript file
+  gs @st640p.upp -dSAFER -dNOPAUSE -q -sOutputFile=/tmp/$$ -
+else
+  # text file
+  cat &gt; /tmp/$$
+  echo -n "^L" &gt;&gt; /tmp/$$
+  smbclient '\\Raven\Epson' "" -c 'printmode text'
+fi
 
+smbclient '\\Raven\Epson' "" -P -c "print /tmp/$$"
+rm /tmp/$$
 
-<p><li><h4>cost for parts and service</h4>
-the cost will be updated when you purchase goods and services. You can
-enter the cost manually. This is so you can have a cost on file without
-making a purchase.
+# EOF
+
+
+rewindstdin is a small program to rewind the filehandle for STDIN
+save the next part up to EOF to a file rewindstdin.c and compile
+
+#include &lt;sys/types.h&gt;
+#include &lt;unistd.h&gt;
+extern int errno;
+main()
+{
+  if( lseek(0,0,0) == 0 ){
+    errno = 0;
+  }
+  return( errno );
+}
+
+# EOF
+
+compile to an executable
+
+gcc -o /usr/local/bin/rewindstdin rewindstdin.c
+</pre>
+
+
+<p><li><h4>beginning balances</h4>
+Add a GL Journal entry and enter the beginning balance for your accounts.
+Beginning balances are the balances from your last balance sheet. If you also
+add open invoices to account for COGS for inventory, add the invoices
+and make the appropriate adjustments.
 
 
 <p><li><h4>establish a beginning inventory</h4>
-add the parts with a purchase invoice. Use the <b>real cost</b> for the items
+add the parts with a vendor invoice. Use the <b>real cost</b> for the items,
 not zero. If you use zero cost then the cost of goods will be zero when you
 sell the item.
 
@@ -296,323 +388,26 @@ not packaged follow this recipe to get it working.
 </ul>
 
 
-<p><li><h4>SuSE 8.1 installation</h4>
-<ol>
-<li>Install the following using YaST2:
-
-<p>- perl-DBD-Pg
-<br>- postgresql
-<br>- postgresql-contrib
-<br>- postgresql-devl
-<br>- postgresql-docs
-<br>- postgresql-libs
-<br>- postgresql-perl
-<br>- postgresql-server
-<br>- postgresql-test
-
-<p><li>Setup directories and paths for PostgreSQL:
-
-<p>> sux -     (change to root)
-
-<p>- If not done by the installation, setup disk directory for your db:
-<br># mkdir /var/lib/pgsql/data
-<br># chown postgres /var/lib/pgsql/data
-
-<p><li>Initialize the database, and start it, as below:
-<p>Note that there are man pages for initdb and pg_ctl.
-          
-<p># touch /var/log/pgsql
-<br># chown postgres:postgres /var/log/pgsql
-<br># sux postgres
-  
-<p>- Initialize postgres:
-<br>> /usr/bin/initdb -D /var/lib/pgsql/data
-<br>(creating ... Success...)
-
-<p>- Start the postgres daemon:
-<br>> /usr/bin/pg_ctl -D /var/lib/pgsql/data -l /var/log/pgsql start (start db)
-<br>(postmaster successfully started)
-
-<p><li>Quick-test the server (still as user postgres):
-
-<p>- > psql -d template1
-<br>(Welcome ... \q to exit psql)
-<br>\q
-
-<p>- Try setting up another db user:
-   
-<p>> createuser &lt;db-user&gt; (&lt;db-user&gt; should match an existing Linux user)
-<br>Shall the new user be allowed to create databases? (y/n) y
-<br>Shall the new user be allowed to create more new users? (y/n) n
-
-<p>Unless a problem with DBD::Pg (perl interface), postgres is ready to go.
-
-<p><li>If a previous sql-ledger database needs to be installed,
-<br>do the following as postgres user.  Steps for dumping the old db,
-   and building the new follow:
-
-<p>> sux postgres
-<br>> psql template1
-<br>=# CREATE DATABASE my_database;  (create your database)
-<br>=# \q
-<br>> cd /var/lib/pgsql/backups        (assuming your backups are here)
-<br>The next command should have been performed earlier from the
-  previous installed version of postgres and your database:
-<br>> pg_dump -d my_database.sql.bak   (from previous ver postgres)
-<br>> cp my_database.sql.bak my_database.sql
-<br>- Use vi to change all occurrances of 'current_date' to current_date
-    in file my_database.sql .
-<br>The vi command for this is :g/'current_date'/s//current_date/g
-<br>> psql my_database < my_database.sql > my_database.log
-<br>- Check my_database.log for errors.
-
-<p><li>Download setup.pl and run it as root while on line to the internet:
-
-<p># mkdir /usr/local/sql-ledger
-<br># cd /usr/local/sql-ledger
-<br># ./setup.pl
-<br>- Enter i
-<br>- Enter httpd owner and group if different than displayed default.
-<br>(Download occurs and status is displayed...)
-
-<p><li>Setup the new sql-ledger with database.
-
-<p>- Surf to http://my_computer/sql-ledger/admin.pl
-<br>- Click enter (no password needed).
-<br>->Database Administration
-<br>- Leave fields Host and Port enpty for local installations.
-<br>          - Enter your database name in the "Connect to" field.
-<br>     - Enter the database user you setup (postgres, sql-ledger, etc.)
-<br>     - Enter a password, only if a password is assigned to the database.
-<br>     - To update an existing sql-ledger database: ->Update Database
-<br>        Should see: The following Datasets need to be updated.
-<br>        ->Continue
-<br>        Do more admin.  You will need to setup at least one login.
-<br>        To exit: ->Database Admin
-
-<p><li>See if it works:
-
-<p>   - Surf to http://my_computer/sql-ledger/login.pl
-<br>   - Enter the login name you just created.  Main menu screen should appear.
-</ol>
-                                   
-
-
-<p><li><h4>Redhat Installation</h4>
-
-<ul>
-<li>Install apache1.3.12-25.i386.rpm
-<li>Install perl5.6.0-9.i386.rpm
-<li>Install postgresql-7.0.2-17.i386.rpm
-<li>Install postgresql-server-7.0.2-17.i386.rpm
-<li>Install postgresql-devel-7.0.2-17.i386.rpm (POSTGRES_INCLUDE)
-<li>tar xvzf DBI-1.14.tar.gz
-<li>cd DBI-1.14
-<li>perl Makefile.PL
-<li>make
-<li>make install
-<li>cd ..
-<li>tar xvzf DBD-Pg-0.95
-<li>cd DBD-Pg-0.95
-<li>export POSTGRES_LIB=/usr/lib/pgsql
-<li>export POSTGRES_INCLUDE=/usr/include/pgsql
-<li>perl Makefile.PL
-<li>make
-<li>make install
-<li>install SQL-Ledger
-</ul>
-
-<p>Some of the applications have newer versions however the installation
-instructions remain the same. Just substitute the old version with a newer
-version.
-
-
-<p><li><h4>Debian Installation</h4>
-
-<ul>
-<li>unpack into /usr/local/www/sql-ledger
-<li>install postgresql (Dselect)
-<li>install apache (Dselect)
-<li>install libdbi-perl (Dselect)
-<li>install libdbd-pg-perl (Dselect)
-<li>install libpgperl (Dselect)
-<li>modify /etc/postgresql/postgresql.conf
-    <br>TCPIP_SOCKET = 1
-<li>create a user for managing SQL-Ledger databases
-<br>from root
-<br>su postgres
-<br>$ createuser -d sql-ledger
-<br>if you use passwords to access postgres set the user up with a password
-<br>$ createuser -d -P sql-ledger
-<li>change /etc/apache/httpd.conf and add
-<pre>
-AddHandler cgi-script .pl
-Alias /sql-ledger/ /usr/local/www/sql-ledger/
-&lt;Directory /usr/local/www/sql-ledger&gt;
-  Options +ExecCGI
-&lt;/Directory&gt;
-
-&lt;Directory /usr/local/www/sql-ledger/users&gt;
-  Order Deny,Allow
-  Deny from All
-&lt;/Directory&gt;
-</pre>
-<li>restart apache
-<li>change fileownership of users and templates to www-data
-    <br>chown www-data: users templates
-<li>From browser enter http://localhost/sql-ledger/admin.pl
-<li>Login as the postgres user (account manager) you have created (above)
-<br>Create a DB
-<br>Create users
-
-<li>then enter http://localhost/sql-ledger/login.pl
-<br>Login as one of the users you have just created
-
-</ul>
-
-<p>
-The long version was provided by Gordon Haverland.
-<p>
-<ul>
-<li>You need to unpack the SQL-Ledger package (compressed tar archive)
-    someplace. Unpacking it in<pre>
-      /usr/local/www/sql-ledger.</pre>
-    Remember where you have unpacked it.
-<li>SQL-Ledger requires that the PostgreSQL database be installed.
-This is a very full-featured database, and has many associated
-packages.  SQL-Ledger requires version 7.0 or better.  The name
-of the basic package on Debian is postgresql.  To find if you
-already have postgresql installed, and if so what version, the
-following command should work:<pre>
-      dpkg -l | grep -i 'ii  postgresql '</pre>
-    A typical response would be:<pre>
-      ii  postgresql     7.1.3-5        Object....[stuff deleted]</pre>
-    Indicating, that version 7.1.3 is installed (the -5 is a
-    Debian patch level).  You can use dselect or apt-get to install
-    postgresql if you need to.  You can visit the Debian maintainer's
-    page for much more information on related packages at<pre>
-      http://people.debian.org/~elphick/postgresql/</pre>
-    Older versions of Debian's PostgreSQL installation use a file
-    called postmaster.init, while newer versions use a file called
-    postmaster.conf, either residing in /etc/postgresql.
-<li>SQL-Ledger requires a HTTP server (or daemon) which is capable of
-    handling CGI scripts.  Apache is the one which is recommended,
-    version 1.3 or better.  Debian calls the base package apache.
-    Debian has two alternative versions of Apache, one with mod-perl
-    (apache-perl) support compiled in, and the other with SSL 
-    (secure sockets layer - apache-ssl) support.  SQL-Ledger doesn't
-    require mod-perl or SSL support, but works with either if
-    you need it installed for other functions you have.  Older versions
-    of Debian Apache installations, spread the configuration of the
-    server across 3 files (srm.conf, access.conf and httpd.conf).
-    Newer versions have consolidated all of this to httpd.conf.
-<li>SQL-Ledger uses the Data Base Interface perl module for communication
-    with PostgreSQL.  The CPAN (Comprehensive Perl Archive Network)
-    name for this module is DBI.  Debian calls this module
-    libdbi-perl.  You should probably deselect (or apt-get) the
-    Debian version of this module to minimize upgrading headaches in
-    the future.
-<li>DBI requires the use of an implementation specific Data Base
-    Driver.  In our case, we need the PostgreSQL specific one.
-    CPAN calls this module DBD::PG, Debian calls it libdbd-pg-perl.
-    You should use dselect (or apt-get) to install it.
-<li>One more layer of Perl - PostgreSQL support is needed.  Debian
-    calls this last package libpgperl.  Use dselect or apt-get to
-    install it.  (You should be able to install all 5 packages at
-    one time.)
-<li>We need to allow your PostgreSQL database to accept queries
-    in a network manner.  To do this, we need to change the value
-    of the TCPIP_SOCKET to 1.  In newer
-    PostgreSQL installs, this variable will be someplace in 
-    /etc/postgresql/postgreslq.conf (older installs will be
-    postmaster.init, same directory.  Note: you shouldn't have
-    both files there.)  Start up your favorite text editor, find
-    the line with that variable on it, change the "no" to a "yes",
-    and make sure the line isn't commented out (a "#" in front
-    of it on the same line).
-<li>PostgreSQL has a set of users and passwords independent of
-    normal user logins.  We need to set up a PostgreSQL user
-    to "own" the SQL-Ledger data (choose a name that makes sense
-    to you, it shouldn't be "root" or "postgres").  The (PostgreSQL)
-    program for doing this is called "createuser".  To make this
-    SQL-Ledger owner user, we first need to "become" the PostgreSQL
-    superuser (on Debian, this is "postgres"), and then we will
-    run the createuser program.  So, once we are logged in as root:
-<pre>
-      # su postgres
-      $ createuser -d sql-ledger
-    ...
-      $ exit
-      # 
-</pre>
-    As shown above, we then typed "exit" after createuser was done,
-    to stop being the "postgres" user.  The "-d" switch (you called
-    also use "--createdb") specifies that this user can create
-    databases.
-<li>We need to adjust the configuration of the HTTP server Apache
-    next.  Older Apache installations (srm.conf, access.conf and
-    httpd.conf) need changes in srm.conf and httpd.conf.  Newer
-    installations just need to edit /etc/apache/httpd.conf.  First,
-    we need to instruct the server that files that end in ".pl"
-    are to be treated as "cgi-script"s (srm.conf if separate).<pre>
-      AddHandler cgi-script .pl</pre>
-    Second, we need to map our SQL-Ledger installation to be easy
-    for users to find it (in srm.conf if separate).<pre>
-      Alias /sql-ledger/ /usr/local/www/sql-ledger/</pre>
-    The "/" at the end of sql-ledger in both strings is important!
-    Next, we need to allow the server to execute files from those
-    directories, include things and follow links.  This information
-    is in httpd.conf (old or new installations).<pre>
-      &lt;Directory /usr/local/www/sql-ledger&gt;
-        Options ExecCGI Includes FollowSymLinks
-      &lt;/Directory&gt;</pre>
-    If we decided to put SQL-Ledger somewhere other than
-    /usr/local/www/sql-ledger, we would use different paths above.
-<li>All the files in the "users" and "templates" subdirectories
-    of /usr/local/www/sql-ledger need to be owned by "www-data".<pre>
-      # cd /usr/local/www/sql-ledger
-      # chown www-data:www-data users templates users/members</pre>
-    You may get an "error" about users/members not existing.  It
-    is safe to ignore this error.
-<li>Restart the apache server.<pre>
-      /etc/init.d/apache restart</pre>
-<li>From a browser, visit the URL<pre>
-      http://localhost/sql-ledger/admin.pl</pre>
-<li>Login as the PostgreSQL user responsible for the SQL-Ledger
-    database you set up.  Create a database and create
-    at least one user.  (It's not a good idea to access your
-    SQL-Ledger data as the "owner" of the data on a regular basis.)
-<li>Visit<pre>
-      http://localhost/sql-ledger/login.pl</pre>
-    and login as the user you created</pre>
-
-</ul>
-
-
 <p><li><h4>login.pl has compilation error</h4>
 
 This could be because of a missing configuration file in the users directory
 
 <p>check the permission for the users directory. The directory must be
-set writeable for the webserver. If your webserver runs under nobody.nogroup
-set it to
+set writeable for the webserver. If your webserver runs ias user/group
+nobody.nogroup set the directory to
 <pre>
-drwxrwx--x   2 johndoe  nogroup    1024 May 26 16:49 users
+drwx--x--x   2 nobody   nogroup    1024 May 26 16:49 users
 
 or
 
-drwx--x--x   2 nobody   nogroup    1024 May 26 16:49 users
-</pre>
+drwxrwx--x   2 johndoe  nogroup    1024 May 26 16:49 users</pre>
 
 
 <p><li><h4>script not executing, shows in browser instead</h4>
 
 Add
-
 <pre>
-  AddHandler cgi-script .pl
-</pre>
-
+  AddHandler cgi-script .pl</pre>
 in your httpd.conf file.
 
 
@@ -621,10 +416,10 @@ the frontend script couldn't figure out which browser you are using
 <p>include the terminal variable on the URL
 <pre>
   http://localhost/sql-ledger/login.pl?terminal=lynx</pre>
-<p>Valid terminal variables are lynx and mozilla
+Valid terminal variables are lynx and mozilla
 
 
-<p><li><h4>permission denied at filesystem level</h4>
+<p><li><h4>permission denied</h4>
 
 Check if your web server has write permission to write to the following
 files and directories:
@@ -639,17 +434,18 @@ files and directories:
 
 <p><li><h4>permission denied to access tables</h4>
 The user you entered in the "Database section" must be a valid
-database user who has the rights to access the tables.
+database user who has rights to access the tables.
 
-<p>If the tables are owned by 'john' and you enter 'mary' as the dba
+<p>If the tables are owned by 'joe' and you enter 'mary' as the dba
 you might run into this problem if mary doesn't have the rights to
-access tables owned by john.
+access tables owned by joe.
 
 
 <p><li><h4>html and graphics files don't show up on screen</h4>
 
 Enable Includes and FollowSymlinks Options in your httpd.conf file
-<pre>  &lt;Directory /usr/local/sql-ledger&gt;
+<pre>
+  &lt;Directory /usr/local/sql-ledger&gt;
     Options ExecCGI Includes FollowSymlinks
   &lt;/Directory&gt;
 </pre>
@@ -657,7 +453,7 @@ Enable Includes and FollowSymlinks Options in your httpd.conf file
 
 <p><li><h4>Can I use mySQL</h4>
 
-No. mySQL lacks certain features required by SQL-Ledger.
+mySQL lacks certain features required by SQL-Ledger.
 
 
 <p><li><h4>switch display to a foreign language</h4>
@@ -672,15 +468,20 @@ ISO 3166-1</a> standards.
 
 This is because the corresponding hash entry is missing.
 Add the missing text in the locale/cc/all or locale/cc/missing
-file and run 'perl locales.pl' to rebuild the individual files.
+file and run 'perl locales.pl' from the command line to rebuild
+the individual files.
 
 <br>cc refers to the country code.
 
 
 <p><li><h4>switch to a foreign language for the login and admin screen</h4>
 
-Edit sql-ledger.conf and enter the code for the variable
-$language. If your language specific files are in 'locales/cc', enter 'cc'
+Edit sql-ledger.conf and enter the code for the $language variable
+<pre>
+  $language = "de";</pre>
+
+<p>This is a global change and applies to all logins, individual settings
+may be changed by setting the language in your Preferences.
 
 
 </ul>
@@ -696,7 +497,8 @@ $language. If your language specific files are in 'locales/cc', enter 'cc'
 and access control which makes it fairly safe out of the box to run even in
 front of a firewall.
 Some precautions which are out of our control must be taken though.
-It matters where you install SL and how you configure your web and SQL server.
+It matters where you install SL and how you configure your web server and
+SQL server.
 
 <pre>
   Typical setups:
@@ -720,13 +522,19 @@ It matters where you install SL and how you configure your web and SQL server.
 The location for the users directory can be specified in sql-ledger.conf
 
 <p><li>Set permission for the users and templates directory to 711
-(most restrictive)
 
 <p><li>If you do not want anyone to change the templates with the built-in
 editor set the files in templates/directory/ to read only or disable
 the menu item to edit the templates.
 
-<p><li>For PostgreSQL you can set who has access to the server in the file
+<p><li>You may setup a read-only environment if you disable the menu items
+to add data. i.e 'Add Transaction' if unchecked you will not be able to add
+a transaction or repost a transaction. You may look at it but nothing else.
+
+<p><li>There are various settings for audit control and you may disable
+reposting entirely or up to a certain date.
+
+<p><li>For PostgreSQL you may also set who has access to the server in the file
 pg_hba.conf
 <br>Authentication crypt does not work because not all SQL servers
 accept encrypted passwords.
@@ -734,8 +542,9 @@ accept encrypted passwords.
 <p><li>in addition you can secure the tables from unauthorized access by
 setting up a different database user and GRANT rights. For instance,
 users without DELETE rights will still be able to use the program, change
-customers or vendors but will not be able to delete transactions.
-To lock all the tables GRANT SELECT rights only.
+customers and vendors, add transactions but will not be able to delete or
+repost transactions.
+<br>To lock all the tables to create a RO system GRANT SELECT rights only.
 
 <p><li>Other security options include a secure shell, your webserver's
 authentication system, SSL, encrypted tunnels, ...