Inhalt der Anleitung
********************

Aktuelle Hinweise
*****************

Aktuelle Installations- und Konfigurationshinweise gibt es:

  * auf der Lx-Office Homepage unter http://lx-office.org/index.php?id=dokumentation

  * im Lx-Office-Wiki unter Dokumentation (http://wiki.lx-office.org/index.php/Lx-Office_ERP)

  * im Lx-Office-Forum: http://www.lx-office.org/forum/

Benötigte Software und Pakete
*****************************

Zum Betrieb von Lx-Office werden zwingend ein Webserver (meist Apache) und ein Datenbankserver (PostgreSQL) benötigt.

Zusätzlich benötigt Lx-Office die folgenden Perl-Pakete, die nicht Bestandteil einer Standard-Perl-Installation sind:

  * DBI

  * DBD::Pg

  * CGI::Ajax

  * Class::Accessor

  * Archive::Zip

  * Text::Iconv

  * Text::CSV_XS

  * IO::Wrap (aus dem Paket IO::Stringy)

  * YAML

  * Template

Diese Pakete können bei den unterschiedlichen Distributionen anders heißen.

Für Debian oder Ubuntu benötigen Sie diese Pakete:

apache postgresql libdbi-perl libdbd-pg-perl libpgperl libclass-accessor-perl libarchive-zip-perl libtext-iconv-perl libyaml-perl libtext-csv-perl libio-stringy-perl libtemplate-perl

Für Fedora Core benötigen Sie unter anderem diese Pakete:

httpd postgresql-server perl-DBI perl-DBD-Pg

Für OpenSuSE benötigen Sie diese Pakete:

apache2 postgresql-server perl-DBI perl-DBD-Pg perl-Archive-Zip perl-Class-Accessor perl-Text-Iconv perl-Text-CSV_XS perl-IO-stringy perl-Template-Toolkit

Da Perl-CGI-Ajax nicht als Paket für Distributionen bereit steht, muß es mit der CPAN-Shell installiert werden.  Leider gibt es Fälle, in denen das nicht möglich oder praktikabel ist. Lx-Office liefert daher das Paket im CGI-Verzeichnis mit. Das sollte als Fall-Back greifen.

Installation des Programmpaketes
********************************

Die Lx-Office ERP Installationsdatei (lxoffice-erp-2.4.x.tgz) wird im Dokumentenverzeichnis des Webservers (z.B. /var/www/html/, /srv/www/htdocs oder /var/www/) entpackt:

cd /var/www

tar xvzf lxoffice-erp-2.4.x.tgz

Verändern Sie evtl. noch den Namen des Verzeichnisses mit

mv lxoffice-erp/ lx-erp/

Alternativ können Sie auch einen Alias in der Webserverkonfiguration benutzen, um auf das tatsächliche Installationsverzeichnis zu verweisen.

Das Verzeichnis muß für den Benutzer beschreibbar sein, unter dem der Webserver läuft. Dieser ist bei verschiedenen Distributionen unterschiedlich (z.B. bei Debian/Ubuntu www-data, bei Fedora core apache oder bei OpenSuSE wwwrun).

chown -R www-data: lx-office-erp/

Anpassung der PostgreSQL-Konfiguration
**************************************

PostgreSQL muss auf verschiedene Weisen angepasst werden.

Änderungen an Konfigurationsdateien
===================================

In der Datei postgresql.conf, die je nach Distribution in verschiedenen Verzeichnissen liegen kann (z.B. /var/lib/pgsql/data/ oder /etc/postgresql/, muss sichergestellt werden, dass TCP/IP-Verbindungen aktiviert sind. Dieser Parameter lautet

TCPIP_SOCKET = 1

Bei PostgreSQL-Versionen ab v8.0 und neuer muss zusätzlich der folgende Parameter gesetzt werden:

default_with_oids = on

In der Datei pg_hba.conf, die im gleichen Verzeichnis wie die postgresql.conf zu finden sein sollte, müssen die Berichtigungen für den Zugriff geändert werden. Hier gibt es mehrere Möglichkeiten. Eine besteht darin, lokale Verbindungen immer zuzulassen

local all all trust

host all all 127.0.0.1 255.0.0.0 trust

Besser ist es, für eine bestimmte Datenbank Zugriff nur per Passwort zuzulassen. Beispielsweise:

local   all         lxoffice                                           password

host    all         lxoffice      127.0.0.1         255.255.255.255    password

Erweiterung für servergespeicherte Prozeduren
=============================================

In der Datenbank template1 muss die Unterstützung für servergespeicherte Prozeduren eingerichet werden. Melden Sie sich dafür als Benutzer ``postgres'' an der Datenbank an, und führen Sie die folgenden Kommandos aus:

create function plpgsql_call_handler () returns opaque as '/usr/lib/pgsql/plpgsql.so' language 'c';

create language 'plpgsql' handler plpgsql_call_handler
lancompiler 'pl/pgsql';

Bitte beachten Sie, dass der Pfad zur Datei plpgsql.so von Distribution zu Distribution verschiedlich sein kann. Bei Debian/Ubuntu befindet sie sich unter /usr/lib/postgresql/lib/plpgsql.so.

Datenbankbenutzer anlegen
=========================

Wenn Sie nicht den Datenbanksuperuser ``postgres'' zum Zugriff benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen können:

su - postgres

createuser -d -P lxoffice

Wenn Sie später einen Datenbankzugriff konfigurieren, verändern Sie den evtl. voreingestellten Benutzer ``postgres'' auf ``lxoffice'' bzw. den hier gewählten Benutzernamen.

Apache-Konfiguration
********************

Der Zugriff auf das Programmverzeichnis muss in der Apache Webserverkonfigurationsdatei httpd.conf eingestellt werden. Fügen Sie den folgenden Abschnitt dieser Datei oder einer anderen Datei hinzu, die beim Starten des Webservers eingelesen wird:

AddHandler cgi-script .pl

Alias /lx-erp/ /var/www/lx-erp/

<Directory /var/www/lx-erp>

Options ExecCGI Includes FollowSymlinks

</Directory>

<Directory /var/www/lx-erp/users>

Order Deny,Allow

Deny from All

</Directory>

Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher das Lx-Office-Archiv entpacket haben.

Achtung: Vor den einzelnen Optionen muss bei einigen Distributionen ein Plus + gesetzt werden.

Auf einigen Webservern werden manchmal die Grafiken und Style-Sheets nicht ausgeliefert. In solchen Fällen hat es oft geholfen, die folgende Option in die Konfiguration aufzunehmen:

EnableSendfile Off

Benutzer und Datenbanken anlegen
********************************

Nach der Installation müssen Benutzer und Datenbanken angelegt werden. Dieses geschieht im Administrationsmenü, dass Sie unter folgender URL finden:

http://localhost/lx-erp/admin.pl

Zuerst muss eine Datenbank angelegt werden, anschließend ein Benutzer. Verwenden Sie für den Datenbankzugriff den eben angelegten Benutzer ``lxoffice''.

Wenn Sie für die Lx-Office-Installation nicht den europäischen Schriftsatz ISO-8859-15 sondern UTF-8 (Unicode) benutzen wollen, so müssen Sie vor dem Anlegen der Datenbank in der Datei ``lx-erp.conf'' die Variable $dbcharset auf den Wert ``UTF-8'' setzen. Zusätzlich muss beim Anlegen der Datenbank ``UTF-8 Unicode'' als Schriftsatz ausgewählt werden.

OpenDocument-Vorlagen
*********************

Lx-Office unterstützt die Verwendung von Vorlagen im OpenDocument-Format, wie es OpenOffice.org ab Version 2 erzeugt. Lx-Office kann dabei sowohl neue OpenDocument-Dokumente als auch aus diesen direkt PDF-Dateien erzeugen.  Um die Unterstützung von OpenDocument-Vorlagen zu aktivieren muss in der Datei ``lx-erp.conf'' die Variable $opendocument_templates auf ``1'' stehen.  Dieses ist die Standardeinstellung.

Weiterhin muss in der Datei ``lx-erp.conf'' die Variable $dbcharset auf die Zeichenkodierung gesetzt werden, die auch bei der Speicherung der Daten in der Datenbank verwendet wird. Diese ist in den meisten Fällen "ISO-8859-15".

Während die Erzeugung von reinen OpenDocument-Dateien keinerlei weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF OpenOffice.org benötigt. Soll dieses Feature genutzt werden, so muss neben OpenOffice.org ab Version 2 auch der ``X virtual frame buffer'' (xvfb) installiert werden.  Bei Debian ist er im Paket ``xvfb'' enthalten. Andere Distributionen enthalten ihn in anderen Paketen.

Nach der Installation müssen in der Datei ``lx-erp.conf'' zwei weitere Variablen angepasst werden: $openofficeorg_writer_bin muss den vollständigen Pfad zur OpenOffice.org Writer-Anwendung enthalten. $xvfb_bin muss den Pfad zum ``X virtual frame buffer'' enthalten.

Zusätzlich gibt es zwei verschiedene Arten, wie Lx-Office mit OpenOffice kommuniziert. Die erste Variante, die benutzt wird, wenn die Variable $openofficeorg_daemon gesetzt ist, startet ein OpenOffice, das auch nach der Umwandlung des Dokumentes gestartet bleibt. Bei weiteren Umwandlungen wird dann diese laufende Instanz benutzt. Der Vorteil ist, dass die Zeit zur Umwandlung deutlich reduziert wird, weil nicht für jedes Dokument ein OpenOffice gestartet werden muss. Der Nachteil ist, dass diese Methode Python und die Python-UNO-Bindings benötigt, die Bestandteil von OpenOffice 2 sind.

Ist $openofficeorg_daemon nicht gesetzt, so wird für jedes Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe eines Makros durchgeführt. Dieses Makro muss in der Dokumentenvorlage enthalten sein und ``Standard.Conversion.ConvertSelfToPDF()'' heißen. Die Beispielvorlage templates/German-invoice.odt enthält ein solches Makro, das in jeder anderen Dokumentenvorlage ebenfalls enthalten sein muss.

Als letztes muss herausgefunden werden, welchen Namen OpenOffice.org Writer dem Verzeichnis mit den Benutzereinstellungen gibt. Unter Debian ist dies momentan ~/.openoffice.org2. Sollte der Name bei Ihrer OpenOffice.org-Installation anders sein, so muss das Verzeichnis users/.openoffice.org2 entsprechend umbenannt werden. Ist der Name z.B. einfach nur .openoffice, so wäre folgender Befehl auszuführen:

mv users/.openoffice.org2 users/.openoffice

Dieses Verzeichnis, wie auch das komplette users-Verzeichnis, muss vom Webserver beschreibbar sein. Dieses wurde in Schritt Installation des Programmpakets oben bereits erledigt, kann aber erneut überprüft werden, wenn die Konvertierung nach PDF fehlschlägt.

Lx-Office ERP verwenden
***********************

Nach erfolgreicher Installation ist der Loginbildschirm unter folgender URL erreichbar:

http://localhost/lx-office-erp/login.pl

Die Administrationsseite erreichen Sie unter:

http://localhost/lx-office-erp/admin.pl