Inhaltsverzeichnis ****************** Inhalt der Anleitung 1 Aktuelle Hinweise 2 Ben�tigte Software und Pakete 3 Installation des Programmpaketes 4 Anpassung der PostgreSQL-Konfiguration 4.1 �nderungen an Konfigurationsdateien 4.2 Erweiterung f�r servergespeicherte Prozeduren 4.3 Datenbankbenutzer anlegen 5 Apache-Konfiguration 6 Benutzerauthentifizierung und Administratorpasswort 6.1 Grundlagen zur Benutzerauthentifizierung 6.2 Administratorpasswort 6.3 Authentifizierungsdatenbank 6.4 Passwort�berpr�fung 6.5 Name des Session-Cookies 6.6 Anlegen der Authentifizierungsdatenbank 7 Benutzer- und Gruppenverwaltung 7.1 Zusammenh�nge 7.2 Datenbanken anlegen 7.3 Gruppen anlegen 7.4 Benutzer anlegen 7.5 Gruppenmitgliedschaften verwalten 7.6 Migration alter Installationen 8 OpenDocument-Vorlagen 9 Lx-Office ERP verwenden Inhalt der Anleitung ******************** 1 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/' 2 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. 3 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/' 4 Anpassung der PostgreSQL-Konfiguration **************************************** PostgreSQL muss auf verschiedene Weisen angepasst werden. 4.1 �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' 4.2 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'. 4.3 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. 5 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/ Options ExecCGI Includes FollowSymlinks Order Deny,Allow Deny from All ' 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' 6 Benutzerauthentifizierung und Administratorpasswort ***************************************************** Informationen �ber die Einrichtung der Benutzerauthentifizierung, �ber die Verwaltung von Gruppen und weitere Einstellungen 6.1 Grundlagen zur Benutzerauthentifizierung ============================================ Lx-Office verwaltet die Benutzerinformationen in einer Datenbank, die im folgenden "Authentifizierungsdatenbank" genannt wird. F�r jeden Benutzer kann dort eine eigene Datenbank f�r die eigentlichen Finanzdaten hinterlegt sein. Diese beiden Datenbanken k�nnen, m�ssen aber nicht unterschiedlich sein. Im einfachsten Fall gibt es f�r Lx-Office nur eine einzige Datenbank, in der sowohl die Benutzerinformationen als auch die Daten abgelegt werden. Zus�tzlich erm�glicht es Lx-Office, dass die Benutzerpassw�rter entweder gegen die Authentifizierungsdatenbank oder gegen einen LDAP-Server �berpr�ft werden. Welche Art der Passwort�berpr�fung Lx-Office benutzt und wie Lx-Office die Authentifizierungsdatenbank erreichen kann, wird in der Konfigurationsdatei `config/authentication.pl' festgelegt. Diese muss bei der Installation und bei einem Upgrade von einer Version vor v2.6.0 angelegt werden. Eine Beispielkonfigurationsdatei `config/authentication.pl.default' existiert, die als Vorlage benutzt werden kann. 6.2 Administratorpasswort ========================= Das Passwort, das zum Zugriff auf das Aministrationsinterface benutzt wird, wird ebenfalls in dieser Datei gespeichert. Es kann auch nur dort und nicht mehr im Administrationsinterface selber ge�ndert werden. Der Parameter dazu hei�t `$self->{admin_password}'. 6.3 Authentifizierungsdatenbank =============================== Die Verbindung zur Authentifizierungsdatenbank wird mit den Parametern in `$self->{DB_config}' konfiguriert. Hier sind die folgenden Parameter anzugeben: * `host' - Der Rechnername oder die IP-Adresse des Datenbankservers * `port' - Die Portnummer des Datenbankservers, meist 5432 * `db' - Der Name der Authentifizierungsdatenbank * `user' - Der Benutzername, mit dem sich Lx-Office beim Datenbankserver anmeldet (z.B. "postgres") * `password' - Das Passwort f�r den Datenbankbenutzer Die Datenbank muss noch nicht existieren. Lx-Office kann sie automatisch anlegen (mehr dazu siehe unten). 6.4 Passwort�berpr�fung ======================= Lx-Office unterst�tzt Passwort�berpr�fung auf zwei Arten: gegen die Authentifizierungsdatenbank und gegen einen externen LDAP- oder Active-Directory-Server. Welche davon benutzt wird, regelt der Parameter `$self->{module}'. Sollen die Benutzerpassw�rter in der Authentifizierungsdatenbank gespeichert werden, so muss der Parameter `$self->{module}' den Wert `DB' enthalten. In diesem Fall k�nnen sowohl der Administrator als auch die Benutzer selber ihre Psasw�rter in Lx-Office �ndern. Soll hingegen ein externer LDAP- oder Active-Directory-Server benutzt werden, so muss der Parameter `$self->{module}' auf `LDAP' gesetzt werden. In diesem Fall m�ssen zus�tzliche Informationen �ber den LDAP-Server in `$self->{LDAP_config}' angegeben werden: * `host' - Der Rechnername oder die IP-Adresse des LDAP- oder Active-Directory-Servers. Diese Angabe ist zwingend erforderlich. * `port' - Die Portnummer des LDAP-Servers; meist 389. * `tls' - Wenn Verbindungsverschl�sselung gew�nscht ist, so diesen Wert auf `1' setzen, andernfalls auf `0' belassen * `attribute'' - Das LDAP-Attribut, in dem der Benutzername steht, den der Benutzer eingegeben hat. F�r Active-Directory-Server ist dies meist `sAMAccountName', f�r andere LDAP-Server hingegen `uid'. Diese Angabe ist zwingend erforderlich. * `base_dn' - Der Abschnitt des LDAP-Baumes, der durchsucht werden soll. Diese Angabe ist zwingend erforderlich. * `filter' - Ein optionaler LDAP-Filter. Enth�lt dieser Filter das Wort `<%login%>', so wird dieses durch den vom Benutzer eingegebenen Benutzernamen ersetzt. Andernfalls wird der LDAP-Baum nach einem Element durchsucht, bei dem das oben angegebene Attribut mit dem Benutzernamen identisch ist. * `bind_dn' und `bind_password' - Wenn der LDAP-Server eine Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist dies bei Active-Directory-Servern der Fall), so kann diese hier angegeben werden. F�r Active-Directory-Server kann als `bind_dn' entweder eine komplette LDAP-DN wie z.B. `cn=Martin Mustermann,cn=Users,dc=firmendomain' auch nur der volle Name des Benutzers eingegeben werden; in diesem Beispiel also `Martin Mustermann'. 6.5 Name des Session-Cookies ============================ Sollen auf einem Server mehrere Lx-Office-Installationen aufgesetzt werden, so m�ssen die Namen der Session-Cookies f�r alle Installationen unterschiedlich sein. Der Name des Cookies wird mit dem Parameter `$self->{cookie_name}' gesetzt. Diese Angabe ist optional, wenn nur eine Installation auf dem Server existiert. 6.6 Anlegen der Authentifizierungsdatenbank =========================================== Nachdem alle Einstellungen in `config/authentication.pl' vorgenommen wurden, muss Lx-Office die Authentifizierungsdatenbank anlegen. Dieses geschieht automatisch, wenn Sie sich im Administrationsmodul anmelden, das unter der folgenden URL erreichbar sein sollte: `http://localhost/lx-erp/admin.pl' 7 Benutzer- und Gruppenverwaltung ********************************* Nach der Installation m�ssen Benutzer, Gruppen und Datenbanken angelegt werden. Dieses geschieht im Administrationsmen�, dass Sie unter folgender URL finden: `http://localhost/lx-erp/admin.pl' Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei `config/authentication.pl' eingetragen haben. 7.1 Zusammenh�nge ================= Lx-Office verwendet eine Datenbank zum Speichern all seiner Informationen wie Kundendaten, Artikel, Angebote, Rechnungen etc. Um mit Lx-Office arbeiten zu k�nnen, muss eine Person einen Benutzeraccount haben. Jedem Benutzeraccount wiederum wird genau eine Datenbank zugewiesen, mit der dieser Benutzer arbeiten kann. Es ist m�glich und normal, dass mehreren Benutzern die selbe Datenbank zugewiesen wird, sodass sie alle mit den selben Daten arbeiten k�nnen. Die Basisdaten der Benutzer, die in der Administration eingegeben werden k�nnen, werden in einer zweiten Datenbank gespeichert, der bereits erw�hnten Authentifizierungsdatenbank. Diese ist also den Produktivdaten enthaltenden Datenbanken vorgeschaltet. Pro Lx-Office-Installation gibt es nur eine Authentifizierungsdatenbank, aber beliebig viele Datenbanken mit Firmendaten. Lx-Office lann seinen Benutzern Zugriff auf bestimmte Funktionsbereiche erlauben oder verbieten. Wird der Zugriff nicht gestattet, so werden der entsprechenden Men�punkte auch nicht angezeigt. Diese Rechte werden ebenfalls in der Authentifizierungsdatenbank gespeichert. Um Rechte verteilen zu k�nnen, verwendet Lx-Office ein Gruppen-Prinzip. Einer Gruppe kann der Zugriff auf bestimmte Bereiche erlaubt werden. Ein Benutzer wiederum kann Mitglied in einer oder mehrerer Gruppen sein. Der Benutzer hat Zugriff auf alle diejenigen Funktionen, die mindestens einer Gruppe erlaubt sind, in der der Benutzer Mitglied ist. Die allgemeine Reihenfolge, in der Datenbanken, Gruppen und Benutzer angelegt werden sollten, lautet: 1. Datenbank anlegen 2. Gruppen anlegen 3. Benutzer anlegen 4. Benutzer den Gruppen zuordnen 7.2 Datenbanken anlegen ======================= Zuerst muss eine Datenbank angelegt werden. Verwenden Sie f�r den Datenbankzugriff den vorhin angelegten Benutzer (in unseren Beispielen ist dies `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 `config/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. Bitte beachten Sie, dass alle Datenbanken den selben Zeichensatz verwenden m�ssen, da diese Einstellungen momentan global in Lx-Office vorgenommen wird und nicht nach Datenbank unterschieden werden kann. Auch die Authentifizierungsdatenbank muss mit diesem Zeichensatz angelegt worden sein. 7.3 Gruppen anlegen =================== Eine Gruppe wird in der Gruppenverwaltung angelegt. Ihr muss ein Name gegeben werden, eine Beschreibung ist hingegen optional. Nach dem Anlegen k�nnen Sie die verschiedenen Bereiche w�hlen, auf die Mitglieder dieser Gruppe Zugriff haben sollen. Benutzergruppen sind unabh�ngig von Datenbanken, da sie in der Authentifizierungsdatenbank gespeichert werden. Sie gelten f�r alle Datenbanken, die in dieser Installation verwaltet werden. 7.4 Benutzer anlegen ==================== Beim Anlegen von Benutzern werden f�r viele Parameter Standardeinstellungen vorgenommen, die den Gepflogenheiten des deutschen Raumes entsprechen. Zwingend anzugeben sind der Loginname sowie die komplette Datenbankkonfiguration. Wenn die Passwortauthentifizierung �ber die Datenbank eingestellt ist, so kann hier auch das Benutzerpasswort gesetzt bzw. ge�ndert werden. Ist hingegen die LDAP-Authentifizierung aktiv, so ist das Passwort-Feld deaktiviert. In der Datenbankkonfiguration m�ssen die Zugriffsdaten einer der eben angelegten Datenbanken eingetragen werden. 7.5 Gruppenmitgliedschaften verwalten ===================================== Nach dem Anlegen von Benutzern und Gruppen m�ssen Benutzer den Gruppen zugewiesen werden. Dazu gibt es zwei M�glichkeiten: 1. In der Gruppenverwaltung w�hlt man eine Gruppe aus. Im folgenden Dialog kann man dann einzeln die Benutzer der Gruppe hinzuf�gen. 2. In der Gruppenverwaltung w�hlt man das Tool zur Verwaltung der Gruppenmitgliedschaft. Hier wird eine Matrix angezeigt, die alle im System angelegten Gruppen und Benutzer enth�lt. Durch Setzen der H�kchen wird der Benutzer in der ausgew�hlten Zeile der Gruppe in der ausgew�hlten Spalte hinzugef�gt. 7.6 Migration alter Installationen ================================== Wenn Lx-Office 2.6.0 �ber eine �ltere Version installiert wird, in der die Benutzerdaten noch im Dateisystem im Verzeichnis `users' verwaltet wurden, so bietet Lx-Office die M�glichkeit, diese Benutzerdaten automatisch in die Authentifizierungsdatenbank zu �bernehmen. Dies geschieht, wenn man sich nach dem Update der Installation das erste Mal im Administrationsbereich anmeldet. Findet Lx-Office die Datei `users/members', so wird der Migrationsprozess gestartet. Der Migrationsprozess ist nahezu vollautomatisch. Alle Benutzerdaten k�nnen �bernommen werden. Nach den Benutzerdaten bietet Lx-Office noch die M�glichkeit an, dass automatisch eine Benutzergruppe angelegt wird. Dieser Gruppe wird Zugriff auf alle Funktionen von Lx-Office gew�hrt. Alle migrierten Benutzern werden Mitglied in dieser Gruppe. Damit wird das Verhalten von Lx-Office bis Version 2.4.3 inklusive wiederhergestellt, und die Benutzer k�nnen sich sofort wieder anmelden und mit dem System arbeiten. 8 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 `config/lx-erp.conf' die Variable `$opendocument_templates' auf `1' stehen. Dieses ist die Standardeinstellung. Weiterhin muss in der Datei `config/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 `config/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. 9 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'