1 \input texinfo   @c -*-texinfo-*-
 
   3 @setfilename INSTALL.info
 
   4 @documentencoding UTF-8
 
   6 @settitle Lx-Office Installationsanleitung
 
  10 @c Die Lx-Office Installationsanleitung kann beliebig weiter verwendet
 
  15 @title Lx-Office Installationsanleitung
 
  22 @top Inhalt der Anleitung
 
  26 * Aktuelle Hinweise:: Andere Informationsquellen als diese Anleitung
 
  27 * Benötigte Software und Pakete:: Vorraussetzungen zum Betrieb von Lx-Office
 
  28 * Manuelle Installation des Programmpaketes:: Installationsort, Berechtigungen
 
  29 * Anpassung der PostgreSQL-Konfiguration:: Verschiedene Aspekte der Datenbankkonfiguration
 
  30 * Apache-Konfiguration:: Einrichtung eines Aliases und Optionen für das Ausführen von CGI-Scripten
 
  31 * Der Task-Server:: Konfiguration und Einrichtung des Task-Server-Dämonen
 
  32 * Benutzerauthentifizierung und Administratorpasswort:: Einrichtung der Authentifizierungsdatenbank und der Passwortüberprüfung
 
  33 * Benutzer- und Gruppenverwaltung:: Einrichten von Benutzern, Gruppen und Datenbanken
 
  34 * Drucken mit Lx-Office:: Voraussetzungen, Einrichtung und Fehlerdiagnose
 
  35 * OpenDocument-Vorlagen:: Wichtige Hinweise zum Erstellen und zur Verwendung von Dokumentenvorlagen
 
  36 * Lx-Office ERP verwenden:: Die URLs zur Anmeldung und Administration
 
  39 @c ---------------------------------------------------------------
 
  41 @node Aktuelle Hinweise
 
  42 @chapter Aktuelle Hinweise
 
  44 Aktuelle Installations- und Konfigurationshinweise gibt es:
 
  48 auf der Lx-Office Homepage unter @uref{http://lx-office.org/index.php?id=dokumentation}
 
  51 im Lx-Office-Wiki unter Dokumentation (@uref{http://wiki.lx-office.org/index.php/Lx-Office_ERP})
 
  54 im Lx-Office-Forum: @uref{http://www.lx-office.org/forum/}
 
  57 @c ---------------------------------------------------------------
 
  59 @node Benötigte Software und Pakete
 
  60 @chapter Benötigte Software und Pakete
 
  63 * Betriebssystem:: Unterstützte Betriebsysteme und Hinweise für ältere Systeme
 
  64 * Pakete:: Benötigte Software und Perlpakete sowie deren Quellen
 
  68 @section Betriebssystem
 
  70 Lx-Office ist für Linux konzipiert, und sollte auf jedem unixoiden
 
  71 Betriebssystem zum Laufen zu kriegen sein. Getestet ist diese Version im
 
  72 speziellen auf Debian und Ubuntu, grundsätzlich wurde bei der Auswahl der
 
  73 Pakete aber darauf Rücksicht genommen, dass es ohne große Probleme auf den
 
  74 derzeit aktuellen verbreiteten Distributionen läuft.
 
  76 Anfang 2011 sind das folgende Systeme:
 
  80 Ubuntu 8.04 LTS Hardy Heron
 
  82 Ubuntu 9.10 Karmic Koala
 
  84 Ubuntu 10.04 Lucid Lynx
 
  86 Ubuntu 10.10 Maverick Meerkat
 
  96 SuSE Linux Enterprice Server 11
 
 103 Für die debianoiden Betriebssysteme existiert ein .deb, das deutlich einfacher
 
 106 Ubuntu 8.04 LTS hat zusätzlich die Schwierigkeit, dass die Module im Archiv
 
 107 recht alt sind, und das viele der benötigten Module nicht einfach zu
 
 108 installieren sind. Dafür sollte es kurz nach dem Release ein eigenes .deb
 
 111 Alternativ dazu kann die normale Installation durchgeführt werden
 
 112 (@pxref{Manuelle Installation des Programmpaketes}), wenn vorher ein
 
 113 Kompatibilitätspaket installiert wird, das die fehlenden Pakete bereitstellt.
 
 114 Das Paket ist auf @uref{https://sourceforge.net/projects/lx-office/files/Lx-Office%20ERP/2.6.2/, Sourceforge} unter dem Namen @code{lx-erp-perl-libs-compat-v2.tar.gz} hinterlegt.
 
 116 Zur Installation das Paket in das entpackte Lx-Office Verzeichnis entpacken:
 
 118 @code{tar xzf lx-erp-perl-libs-compat-v2.tar.gz /path/to/lx-office/}
 
 120 Zusätzlich müssen dann noch die folgenden Pakete installiert weerden
 
 122 @code{libbit-vector-perl libsub-exporter-perl libclone-perl libclass-factory-util-perl}
 
 124 Danach sollte der Installationscheck (@pxref{Pakete}) die enthaltenen Pakete erkennen.
 
 129 Zum Betrieb von Lx-Office werden zwingend ein Webserver (meist Apache)
 
 130 und ein Datenbankserver (PostgreSQL, mindestens v8.2) benötigt.
 
 132 Zusätzlich benötigt Lx-Office die folgenden Perl-Pakete, die nicht Bestandteil
 
 133 einer Standard-Perl-Installation sind:
 
 178 Gegenüber Version 2.6.0 sind zu dieser Liste 2 Pakete hinzugekommen, @code{URI}
 
 179 und @code{XML::Writer} sind notwendig. Ohne startet Lx-Office nicht.
 
 181 Gegenüber Version 2.6.1 sind @code{parent}, @code{DateTime},
 
 182 @code{Rose::Object}, @code{Rose::DB} und @code{Rose::DB::Object} neu
 
 183 hinzugekommen. @code{IO::Wrap} wurde entfernt.
 
 185 Gegenüber Version 2.6.3 ist @code{JSON} neu hinzugekommen.
 
 187 @code{Email::Address} und @code{List::MoreUtils} sind schon länger feste
 
 188 Abhängigkeiten, wurden aber bisher mit Lx-Office mitgeliefert.  Beide sind auch
 
 189 in 2.6.1 weiterhin mit ausgeliefert, wurden in einer zukünftigen Version aber
 
 190 aus dem Paket entfernt werden. Es wird empfohlen diese Module zusammen mit den
 
 191 anderen als Bibliotheken zu installieren.
 
 193 Die zu installierenden Pakete können in den verschiedenen Distributionen unterschiedlich heißen.
 
 195 Für Debian oder Ubuntu benötigen Sie diese Pakete:
 
 197 @code{apache2 postgresql libparent-perl libarchive-zip-perl libdatetime-perl libdbi-perl libdbd-pg-perl libpg-perl libemail-address-perl liblist-moreutils-perl libpdf-api2-perl librose-object-perl librose-db-perl librose-db-object-perl libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl liburi-perl libxml-writer-perl libyaml-perl libconfig-std-perl libparams-validate-perl libjson-perl}
 
 199 Für Fedora Core benötigen Sie diese Pakete:
 
 201 @code{httpd postgresql-server perl-parent perl-DateTime perl-DBI perl-DBD-Pg perl-Email-Address perl-List-MoreUtils perl-PDF-API2 perl-Rose-Object perl-Rose-DB perl-Rose-DB-Object perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer perl-YAML}
 
 203 Für OpenSuSE benötigen Sie diese Pakete:
 
 205 @code{apache2 postgresql-server perl-Archive-Zip perl-DateTime perl-DBI perl-DBD-Pg perl-MailTools perl-List-MoreUtils perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer perl-YAML}
 
 207 Bei openSuSE 11 ist @code{parent} bereits enthalten, und braucht nicht nachinstalliert werden. Die @code{Rose::*} Pakete sind derzeit nicht für SuSE gepackt, und müssen anderweitig nachinstalliert werden.
 
 209 Lx-Office enthält ein Script, mit dem überprüft werden kann, ob alle
 
 210 benötigten Perl-Module installiert sind. Der Aufruf lautet wie folgt:
 
 212 @code{./scripts/installation_check.pl}
 
 214 @c ---------------------------------------------------------------
 
 216 @node Manuelle Installation des Programmpaketes
 
 217 @chapter Manuelle Installation des Programmpaketes
 
 219 Die Lx-Office ERP Installationsdatei (lxoffice-erp-2.6.2.tgz) wird im
 
 220 Dokumentenverzeichnis des Webservers (z.B. @code{/var/www/html/},
 
 221 @code{/srv/www/htdocs} oder @code{/var/www/}) entpackt:
 
 225 tar xvzf lxoffice-erp-2.6.2.tgz}
 
 227 Verändern Sie evtl. noch den Namen des Verzeichnisses mit
 
 229 @code{mv lxoffice-erp/ lx-erp/}
 
 231 Alternativ können Sie auch einen Alias in der Webserverkonfiguration
 
 232 benutzen, um auf das tatsächliche Installationsverzeichnis zu
 
 235 Die Verzeichnisse @code{users}, @code{spool} und @code{webdav} müssen
 
 236 für den Benutzer beschreibbar sein, unter dem der Webserver läuft. Die
 
 237 restlichen Dateien müssen für diesen Benutzer lesbar sein. Der
 
 238 Benutzername ist bei verschiedenen Distributionen unterschiedlich
 
 239 (z.B. bei Debian/Ubuntu @code{www-data}, bei Fedora core @code{apache}
 
 240 oder bei OpenSuSE @code{wwwrun}).
 
 242 Der folgende Befehl ändert den Besitzer für die oben genannten
 
 243 Verzeichnisse auf einem Debian/Ubuntu-System:
 
 245 @code{chown -R www-data lx-office-erp/users lx-office-erp/spool lx-office-erp/webdav}
 
 247 Weiterhin muss der Webserver-Benutzer im Verzeichnis @code{templates} Verzeichnisse für
 
 248 jeden neuen Benutzer, der in lx-office angelegt wird, anlegen dürfen:
 
 250 @code{chgrp www-data lx-office-erp/templates; chmod g+w lx-office-erp/templates}
 
 253 @c ---------------------------------------------------------------
 
 255 @node Anpassung der PostgreSQL-Konfiguration
 
 256 @chapter Anpassung der PostgreSQL-Konfiguration
 
 258 PostgreSQL muss auf verschiedene Weisen angepasst werden.
 
 261 * Zeichensätze/die Verwendung von UTF-8:: Was bei der Verwendung von UTF-8 zu beachten ist
 
 262 * Änderungen an Konfigurationsdateien:: Anpassungen für Anmeldung am Server und Featureunterstützung
 
 263 * Erweiterung für servergespeicherte Prozeduren:: Lx-Office benutzt servergespeicherte Prozeduren
 
 264 * Datenbankbenutzer anlegen:: Um den Zugriff besser zu reglementieren
 
 267 @node Zeichensätze/die Verwendung von UTF-8
 
 268 @section Zeichensätze/die Verwendung von UTF-8
 
 270 Lx-Office kann komplett mit UTF-8 als Zeichensatz verwendet
 
 271 werden. Dabei gibt es zwei Punkte zu beachten: PostgreSQL muss in
 
 272 Version 8.0 oder neuer benutzt werden, und der
 
 273 PostgreSQL-Datenbankcluster muss ebenfalls mit UTF-8 als Locale
 
 274 angelegt worden sein.
 
 276 Dieses ist kann überprüft werden: ist das Encoding der Datenbank
 
 277 ``template1'' ``UTF8'', so kann auch Lx-Office mit UTF-8 betrieben
 
 278 werden. Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
 
 279 UTF-8-Encoding anzulegen und diesen zu verwenden. Unter Debian und
 
 280 Ubuntu kann dies z.B. mit dem folgenden Befehl getan werden:
 
 282 @code{pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 8.2 clustername}
 
 284 Die Datenbankversionsnummer muss an die tatsächlich verwendete
 
 285 Versionsnummer angepasst werden.
 
 287 Unter anderen Distributionen gibt es ähnliche Methoden.
 
 289 Wurde PostgreSQL nicht mit UTF-8 als Encoding initialisiert und ist
 
 290 ein Neuanlegen eines weiteren Clusters nicht möglich, so kann
 
 291 Lx-Office mit ISO-8859-15 als Encoding betrieben werden.
 
 293 Das Encoding einer Datenbank kann in @code{psql} mit @code{\l} geprüft werden.
 
 295 @node Änderungen an Konfigurationsdateien
 
 296 @section Änderungen an Konfigurationsdateien
 
 298 In der Datei @code{postgresql.conf}, die je nach Distribution in
 
 299 verschiedenen Verzeichnissen liegen kann
 
 300 (z.B. @code{/var/lib/pgsql/data/} oder @code{/etc/postgresql/}, muss
 
 301 sichergestellt werden, dass TCP/IP-Verbindungen aktiviert sind. Das
 
 302 Verhalten wird über den Parameter @code{listen_address}
 
 303 gesteuert. Laufen PostgreSQL und Lx-Office auf demselben Rechner, so
 
 304 kann dort der Wert @code{localhost} verwendet werden. Andernfalls
 
 305 müssen Datenbankverbindungen auch von anderen Rechnern aus zugelassen
 
 306 werden, was mit dem Wert \@code{*} geschieht.
 
 308 In der Datei @code{pg_hba.conf}, die im gleichen Verzeichnis wie die
 
 309 @code{postgresql.conf} zu finden sein sollte, müssen die
 
 310 Berichtigungen für den Zugriff geändert werden. Hier gibt es mehrere
 
 311 Möglichkeiten. Eine besteht darin, lokale Verbindungen immer
 
 314 @code{local all all trust
 
 316 host all all 127.0.0.1 255.0.0.0 trust}
 
 318 Besser ist es, für eine bestimmte Datenbank Zugriff nur per Passwort
 
 319 zuzulassen. Beispielsweise:
 
 321 @code{local   all         lxoffice                                           password
 
 323 host    all         lxoffice      127.0.0.1         255.255.255.255    password}
 
 325 @c ---------------------------------------------------------------
 
 327 @node Erweiterung für servergespeicherte Prozeduren
 
 328 @section Erweiterung für servergespeicherte Prozeduren
 
 330 In der Datenbank @code{template1} muss die Unterstützung für servergespeicherte
 
 331 Prozeduren eingerichet werden. Melden Sie sich dafür als Benutzer ``postgres''
 
 332 an der Datenbank an, und führen Sie die folgenden Kommandos aus:
 
 334 @code{create language 'plpgsql';}
 
 336 Achtung: In älteren Postgresversionen (vor 8.0) muss der Handler für die
 
 337 Sprache manuell anlelegt werden, diese Versionen werden aber nicht mehr
 
 338 offiziell von Lx-Office unterstützt. Dafür dann die folgenden Kommandos:
 
 340 @code{create function plpgsql_call_handler () returns opaque as '/usr/lib/pgsql/plpgsql.so' language 'c';
 
 342 create language 'plpgsql' handler plpgsql_call_handler lancompiler 'pl/pgsql';}
 
 344 Bitte beachten Sie, dass der Pfad zur Datei @code{plpgsql.so} von Distribution
 
 345 zu Distribution verschiedlich sein kann. Bei Debian/Ubuntu befindet sie sich
 
 346 unter @code{/usr/lib/postgresql/lib/plpgsql.so}.
 
 348 @c ---------------------------------------------------------------
 
 350 @node Datenbankbenutzer anlegen
 
 351 @section Datenbankbenutzer anlegen
 
 353 Wenn Sie nicht den Datenbanksuperuser ``postgres'' zum Zugriff
 
 354 benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer
 
 355 anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen können:
 
 359 createuser -d -P lxoffice}
 
 361 Wenn Sie später einen Datenbankzugriff konfigurieren, verändern Sie
 
 362 den evtl. voreingestellten Benutzer ``postgres'' auf ``lxoffice''
 
 363 bzw. den hier gewählten Benutzernamen.
 
 365 @c ---------------------------------------------------------------
 
 367 @node Apache-Konfiguration
 
 368 @chapter Apache-Konfiguration
 
 370 Hinweis: Für einen deutlichen Performanceschub sorgt die Ausführung
 
 371 mittels FCGI. Die Einrichtung wird ausführlich in der Datei
 
 372 @code{INSTALL.fcgi} beschrieben.
 
 374 Der Zugriff auf das Programmverzeichnis muss in der Apache
 
 375 Webserverkonfigurationsdatei @code{httpd.conf} eingestellt
 
 376 werden. Fügen Sie den folgenden Abschnitt dieser Datei oder einer
 
 377 anderen Datei hinzu, die beim Starten des Webservers eingelesen wird:
 
 380 AddHandler cgi-script .pl
 
 382 Alias /lx-erp/ /var/www/lx-erp/
 
 384 <Directory /var/www/lx-erp>
 
 386   Options ExecCGI Includes FollowSymlinks
 
 391 <Directory /var/www/lx-erp/users>
 
 401 Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher das
 
 402 Lx-Office-Archiv entpacket haben.
 
 404 Achtung: Vor den einzelnen Optionen muss bei einigen Distributionen ein
 
 405 Plus @samp{+} gesetzt werden.
 
 407 Auf einigen Webservern werden manchmal die Grafiken und Style-Sheets
 
 408 nicht ausgeliefert. In solchen Fällen hat es oft geholfen, die
 
 409 folgende Option in die Konfiguration aufzunehmen:
 
 411 @code{EnableSendfile Off}
 
 413 @c ---------------------------------------------------------------
 
 415 @node Der Task-Server
 
 416 @chapter Der Task-Server
 
 418 Der Task-Server ist ein Prozess, der im Hintergrund läuft, in
 
 419 regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese
 
 420 zu festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser
 
 421 Prozess wird bisher nur für die Erzeugung der wiederkehrenden
 
 422 Rechnungen benutzt, wird aber in Zukunft deutlich mehr Aufgaben
 
 426 * Konfiguration des Task-Servers:: Verfügbare und notwendige Konfigurationsoptionen
 
 427 * Prozesskontrolle:: Wie der Task-Server gestartet und beendet wird
 
 428 * Einbinden in den Boot-Prozess:: Automatisches Starten des Task-Servers beim Booten
 
 431 @node Konfiguration des Task-Servers
 
 432 @section Verfügbare und notwendige Konfigurationsoptionen
 
 434 Die Konfiguration erfolgt über den Abschnitt @code{[task_server]} in
 
 435 der Datei @file{config/lx_office.conf}. Die dort verfügbaren Optionen
 
 439 @item @code{login}: gültiger Lx-Office-Benutzername, der benutzt wird, um die zu verwendende Datenbankverbindung auszulesen. Der Benutzer muss in der Administration angelegt werden. Diese Option muss angegeben werden.
 
 440 @item @code{run_as}: Wird der Server vom Systembenutzer @code{root} gestartet, so wechselt er auf den mit @code{run_as} angegebenen Systembenutzer. Der Systembenutzer muss dieselben Lese- und Schreibrechte haben, wie auch der Webserverbenutzer (siehe @pxref{Manuelle Installation des Programmpaketes}). Daher ist es sinnvoll, hier denselben Systembenutzer einzutragen, unter dem auch der Webserver läuft.
 
 441 @item @code{debug}: Schaltet Debug-Informationen an und aus.
 
 444 @node Einbinden in den Boot-Prozess
 
 445 @section Automatisches Starten des Task-Servers beim Booten
 
 447 Der Task-Server verhält sich von seinen Optionen her wie ein reguläres
 
 448 SystemV-kompatibles Boot-Script. Außerdem wechselt er beim Starten
 
 449 automatisch in das Lx-Office-Installationsverzeichnis.
 
 451 Deshalb ist es möglich, ihn durch Setzen eines symbolischen Links aus
 
 452 einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess
 
 453 einzubinden. Da das bei neueren Linux-Distributionen aber nicht
 
 454 zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die
 
 455 anstelle eines symbolischen Links verwendet werden können.
 
 457 @subsection SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)
 
 459 Kopieren Sie die Datei
 
 460 @file{scripts/boot/system-v/lx-office-task-server} nach
 
 461 @file{/etc/init.d/lx-office-task-server}. Passen Sie in der kopierten
 
 462 Datei den Pfad zum Task-Server an (Zeile @code{DAEMON=....}). Binden
 
 463 Sie das Script in den Boot-Prozess ein. Dies ist distributionsabhängig:
 
 466 @item Debian-basierende Systeme:
 
 468 @code{update-rc.d lx-office-task-server defaults
 
 470 # Nur bei Debian Squeeze und neuer:
 
 472 insserv lx-office-task-server}
 
 473 @item OpenSuSE und Fedora Core:
 
 475 @code{chkconfig --add lx-office-task-server}
 
 478 Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
 
 479 @code{/etc/init.d/lx-office-task-server start}
 
 481 @subsection Upstart-basierende Systeme (z.B. Ubuntu)
 
 483 Kopieren Sie die Datei
 
 484 @file{scripts/boot/upstart/lx-office-task-server.conf} nach
 
 485 @file{/etc/init/lx-office-task-server.conf}. Passen Sie in der kopierten
 
 486 Datei den Pfad zum Task-Server an (Zeile @code{exec ....}).
 
 488 Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
 
 489 @code{service lx-office-task-server start}
 
 491 @node Prozesskontrolle
 
 492 @section Wie der Task-Server gestartet und beendet wird
 
 494 Der Task-Server wird wie folgt kontrolliert:
 
 496 @code{./scripts/task_server.pl Befehl}
 
 498 @code{Befehl} ist dabei eine der folgenden Optionen:
 
 501 @item @code{start} startet eine neue Instanz des Task-Servers. Die Prozess-ID wird innerhalb des @file{users}-Verzeichnisses abgelegt.
 
 502 @item @code{stop} beendet einen laufenden Task-Server.
 
 503 @item @code{restart} beendet und startet ihn neu.
 
 504 @item @code{status} berichtet, ob der Task-Server läuft.
 
 507 Der Task-Server wechselt beim Starten automatisch in das Lx-Office-Installationsverzeichnis.
 
 509 Dieselben Optionen können auch für die SystemV-basierenden
 
 510 Runlevel-Scripte benutzt werden (siehe oben).
 
 512 @c ---------------------------------------------------------------
 
 514 @node Benutzerauthentifizierung und Administratorpasswort
 
 515 @chapter Benutzerauthentifizierung und Administratorpasswort
 
 517 Informationen über die Einrichtung der Benutzerauthentifizierung, über
 
 518 die Verwaltung von Gruppen und weitere Einstellungen
 
 521 * Grundlagen zur Benutzerauthentifizierung:: Verfügbare Methoden, Name der Konfigurationsdatei
 
 522 * Administratorpasswort:: Wo das Administratorpasswort gesetzt werden kann
 
 523 * Authentifizierungsdatenbank:: Verbindungseinstellungen zur Authentifizierungsdatenbank
 
 524 * Passwortüberprüfung:: Einstellungen zur Überprüfung der Benutzerpasswörter
 
 525 * Name des Session-Cookies:: Ändern des Cookie-Namens bei Verwendung mehrerer Lx-Office-Installationen auf einem Server
 
 526 * Anlegen der Authentifizierungsdatenbank:: Wie die Authentifizierungsdatenbank angelegt wird
 
 529 @c ---------------------------------------------------------------
 
 531 @node Grundlagen zur Benutzerauthentifizierung
 
 532 @section Grundlagen zur Benutzerauthentifizierung
 
 534 Lx-Office verwaltet die Benutzerinformationen in einer Datenbank, die
 
 535 im folgenden ``Authentifizierungsdatenbank'' genannt wird. Für jeden
 
 536 Benutzer kann dort eine eigene Datenbank für die eigentlichen
 
 537 Finanzdaten hinterlegt sein. Diese beiden Datenbanken können, müssen
 
 538 aber nicht unterschiedlich sein.
 
 540 Im einfachsten Fall gibt es für Lx-Office nur eine einzige Datenbank,
 
 541 in der sowohl die Benutzerinformationen als auch die Daten abgelegt
 
 544 Zusätzlich ermöglicht es Lx-Office, dass die Benutzerpasswörter
 
 545 entweder gegen die Authentifizierungsdatenbank oder gegen einen
 
 546 LDAP-Server überprüft werden.
 
 548 Welche Art der Passwortüberprüfung Lx-Office benutzt und wie Lx-Office
 
 549 die Authentifizierungsdatenbank erreichen kann, wird in der
 
 550 Konfigurationsdatei @file{config/lx_office.conf} festgelegt. Diese
 
 551 muss bei der Installation und bei einem Upgrade von einer Version vor
 
 552 v2.6.0 angelegt werden. Eine Beispielkonfigurationsdatei
 
 553 @file{config/lx_office.conf.default} existiert, die als Vorlage
 
 556 @node Administratorpasswort
 
 557 @section Administratorpasswort
 
 559 Das Passwort, das zum Zugriff auf das Aministrationsinterface benutzt wird,
 
 560 wird ebenfalls in dieser Datei gespeichert. Es kann auch nur dort und nicht
 
 561 mehr im Administrationsinterface selber geändert werden. Der Parameter dazu
 
 562 heißt @code{$self->@{admin_password@}}.
 
 564 @node Authentifizierungsdatenbank
 
 565 @section Authentifizierungsdatenbank
 
 567 Die Verbindung zur Authentifizierungsdatenbank wird mit den Parametern
 
 568 in @code{$self->@{DB_config@}} konfiguriert. Hier sind die folgenden
 
 573 @samp{host} -- Der Rechnername oder die IP-Adresse des Datenbankservers
 
 575 @samp{port} -- Die Portnummer des Datenbankservers, meist 5432
 
 577 @samp{db} -- Der Name der Authentifizierungsdatenbank
 
 579 @samp{user} -- Der Benutzername, mit dem sich Lx-Office beim Datenbankserver anmeldet (z.B. ``postgres'')
 
 581 @samp{password} -- Das Passwort für den Datenbankbenutzer
 
 584 Die Datenbank muss noch nicht existieren. Lx-Office kann sie
 
 585 automatisch anlegen (mehr dazu siehe unten).
 
 587 @node Passwortüberprüfung
 
 588 @section Passwortüberprüfung
 
 590 Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen die
 
 591 Authentifizierungsdatenbank und gegen einen externen LDAP- oder
 
 592 Active-Directory-Server. Welche davon benutzt wird, regelt der
 
 593 Parameter @code{$self->@{module@}}.
 
 595 Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank
 
 596 gespeichert werden, so muss der Parameter @code{$self->@{module@}} den
 
 597 Wert @samp{DB} enthalten. In diesem Fall können sowohl der
 
 598 Administrator als auch die Benutzer selber ihre Psaswörter in
 
 601 Soll hingegen ein externer LDAP- oder Active-Directory-Server benutzt
 
 602 werden, so muss der Parameter @code{$self->@{module@}} auf @samp{LDAP}
 
 603 gesetzt werden. In diesem Fall müssen zusätzliche Informationen über
 
 604 den LDAP-Server in @code{$self->@{LDAP_config@}} angegeben werden:
 
 608 @samp{host} -- Der Rechnername oder die IP-Adresse des LDAP- oder Active-Directory-Servers. Diese Angabe ist zwingend erforderlich.
 
 610 @samp{port} -- Die Portnummer des LDAP-Servers; meist 389.
 
 612 @samp{tls} -- Wenn Verbindungsverschlüsselung gewünscht ist, so diesen Wert auf @samp{1} setzen, andernfalls auf @samp{0} belassen
 
 614 @samp{attribute} -- Das LDAP-Attribut, in dem der Benutzername steht, den der Benutzer eingegeben hat. Für Active-Directory-Server
 
 615   ist dies meist @samp{sAMAccountName}, für andere LDAP-Server hingegen @samp{uid}. Diese Angabe ist zwingend erforderlich.
 
 617 @samp{base_dn} -- Der Abschnitt des LDAP-Baumes, der durchsucht werden soll. Diese Angabe ist zwingend erforderlich.
 
 619 @samp{filter} -- Ein optionaler LDAP-Filter. Enthält dieser Filter das Wort @code{<%login%>}, so wird dieses durch den vom Benutzer
 
 620   eingegebenen Benutzernamen ersetzt. Andernfalls wird der LDAP-Baum nach einem Element durchsucht, bei dem das oben angegebene Attribut
 
 621   mit dem Benutzernamen identisch ist.
 
 623 @samp{bind_dn} und @samp{bind_password} -- Wenn der LDAP-Server eine Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist dies bei
 
 624   Active-Directory-Servern der Fall), so kann diese hier angegeben werden. Für Active-Directory-Server kann als @samp{bind_dn} entweder eine
 
 625   komplette LDAP-DN wie z.B. @samp{cn=Martin Mustermann,cn=Users,dc=firmendomain} auch nur der volle Name des Benutzers
 
 626   eingegeben werden; in diesem Beispiel also @samp{Martin Mustermann}.
 
 629 @node Name des Session-Cookies
 
 630 @section Name des Session-Cookies
 
 632 Sollen auf einem Server mehrere Lx-Office-Installationen aufgesetzt
 
 633 werden, so müssen die Namen der Session-Cookies für alle
 
 634 Installationen unterschiedlich sein. Der Name des Cookies wird mit dem
 
 635 Parameter @code{$self->@{cookie_name@}} gesetzt.
 
 637 Diese Angabe ist optional, wenn nur eine Installation auf dem Server
 
 640 @node Anlegen der Authentifizierungsdatenbank
 
 641 @section Anlegen der Authentifizierungsdatenbank
 
 643 Nachdem alle Einstellungen in @file{config/lx_office.conf}
 
 644 vorgenommen wurden, muss Lx-Office die Authentifizierungsdatenbank
 
 645 anlegen. Dieses geschieht automatisch, wenn Sie sich im
 
 646 Administrationsmodul anmelden, das unter der folgenden URL erreichbar
 
 649 @uref{http://localhost/lx-erp/admin.pl}
 
 652 @c ---------------------------------------------------------------
 
 654 @node Benutzer- und Gruppenverwaltung
 
 655 @chapter Benutzer- und Gruppenverwaltung
 
 657 Nach der Installation müssen Benutzer, Gruppen und Datenbanken
 
 658 angelegt werden.  Dieses geschieht im Administrationsmenü, das Sie
 
 659 unter folgender URL finden:
 
 661 @uref{http://localhost/lx-erp/admin.pl}
 
 663 Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
 
 664 @file{config/lx_office.conf} eingetragen haben.
 
 667 * Zusammenhänge:: Übersicht über Benutzer, Gruppen, Berechtigungen und Datenbanken
 
 668 * Datenbanken anlegen:: Hinweise zum Anlegen von Datenbanken
 
 669 * Gruppen anlegen:: Hinweise zum Anlegen von Gruppen
 
 670 * Benutzer anlegen:: Hinweise zum Anlegen von Benutzern
 
 671 * Gruppenmitgliedschaften verwalten:: Wie man Gruppen Benutzer zuordnet
 
 672 * Migration alter Installationen:: Automatische Übernahme bei Update von einer älteren Version
 
 676 @section Zusammenhänge
 
 678 Lx-Office verwendet eine Datenbank zum Speichern all seiner
 
 679 Informationen wie Kundendaten, Artikel, Angebote, Rechnungen etc. Um
 
 680 mit Lx-Office arbeiten zu können, muss eine Person einen
 
 681 Benutzeraccount haben. Jedem Benutzeraccount wiederum wird genau eine
 
 682 Datenbank zugewiesen, mit der dieser Benutzer arbeiten kann. Es ist
 
 683 möglich und normal, dass mehreren Benutzern die selbe Datenbank
 
 684 zugewiesen wird, sodass sie alle mit den selben Daten arbeiten können.
 
 686 Die Basisdaten der Benutzer, die in der Administration eingegeben
 
 687 werden können, werden in einer zweiten Datenbank gespeichert, der
 
 688 bereits erwähnten Authentifizierungsdatenbank. Diese ist also den
 
 689 Produktivdaten enthaltenden Datenbanken vorgeschaltet. Pro
 
 690 Lx-Office-Installation gibt es nur eine Authentifizierungsdatenbank,
 
 691 aber beliebig viele Datenbanken mit Firmendaten.
 
 693 Lx-Office kann seinen Benutzern Zugriff auf bestimmte
 
 694 Funktionsbereiche erlauben oder verbieten. Wird der Zugriff nicht
 
 695 gestattet, so werden der entsprechenden Menüpunkte auch nicht
 
 696 angezeigt. Diese Rechte werden ebenfalls in der
 
 697 Authentifizierungsdatenbank gespeichert.
 
 699 Um Rechte verteilen zu können, verwendet Lx-Office ein
 
 700 Gruppen-Prinzip. Einer Gruppe kann der Zugriff auf bestimmte Bereiche
 
 701 erlaubt werden. Ein Benutzer wiederum kann Mitglied in einer oder
 
 702 mehrerer Gruppen sein. Der Benutzer hat Zugriff auf alle diejenigen
 
 703 Funktionen, die mindestens einer Gruppe erlaubt sind, in der der
 
 704 Benutzer Mitglied ist.
 
 706 Die allgemeine Reihenfolge, in der Datenbanken, Gruppen und Benutzer
 
 707 angelegt werden sollten, lautet:
 
 717 Benutzer den Gruppen zuordnen
 
 720 @node Datenbanken anlegen
 
 721 @section Datenbanken anlegen
 
 723 Zuerst muss eine Datenbank angelegt werden. Verwenden Sie für den
 
 724 Datenbankzugriff den vorhin angelegten Benutzer (in unseren Beispielen
 
 725 ist dies @samp{lxoffice}).
 
 727 Wenn Sie für die Lx-Office-Installation nicht den europäischen
 
 728 Schriftsatz ISO-8859-15 sondern UTF-8 (Unicode) benutzen wollen, so
 
 729 müssen Sie vor dem Anlegen der Datenbank in der Datei
 
 730 @file{config/lx_office.conf} die Variable @code{dbcharset} im
 
 731 Abschnitt @code{system} auf den Wert @samp{UTF-8} setzen. Zusätzlich
 
 732 muss beim Anlegen der Datenbank @samp{UTF-8 Unicode} als Schriftsatz
 
 735 Bitte beachten Sie, dass alle Datenbanken den selben Zeichensatz
 
 736 verwenden müssen, da diese Einstellungen momentan global in Lx-Office
 
 737 vorgenommen wird und nicht nach Datenbank unterschieden werden
 
 738 kann. Auch die Authentifizierungsdatenbank muss mit diesem Zeichensatz
 
 739 angelegt worden sein.
 
 741 @node Gruppen anlegen
 
 742 @section Gruppen anlegen
 
 744 Eine Gruppe wird in der Gruppenverwaltung angelegt. Ihr muss ein Name
 
 745 gegeben werden, eine Beschreibung ist hingegen optional. Nach dem
 
 746 Anlegen können Sie die verschiedenen Bereiche wählen, auf die
 
 747 Mitglieder dieser Gruppe Zugriff haben sollen.
 
 749 Benutzergruppen sind unabhängig von Datenbanken, da sie in der
 
 750 Authentifizierungsdatenbank gespeichert werden. Sie gelten für alle
 
 751 Datenbanken, die in dieser Installation verwaltet werden.
 
 753 @node Benutzer anlegen
 
 754 @section Benutzer anlegen
 
 756 Beim Anlegen von Benutzern werden für viele Parameter
 
 757 Standardeinstellungen vorgenommen, die den Gepflogenheiten des
 
 758 deutschen Raumes entsprechen.
 
 760 Zwingend anzugeben sind der Loginname sowie die komplette
 
 761 Datenbankkonfiguration. Wenn die Passwortauthentifizierung über die
 
 762 Datenbank eingestellt ist, so kann hier auch das Benutzerpasswort
 
 763 gesetzt bzw. geändert werden. Ist hingegen die LDAP-Authentifizierung
 
 764 aktiv, so ist das Passwort-Feld deaktiviert.
 
 766 In der Datenbankkonfiguration müssen die Zugriffsdaten einer der eben
 
 767 angelegten Datenbanken eingetragen werden.
 
 769 @node Gruppenmitgliedschaften verwalten
 
 770 @section Gruppenmitgliedschaften verwalten
 
 772 Nach dem Anlegen von Benutzern und Gruppen müssen Benutzer den Gruppen
 
 773 zugewiesen werden. Dazu gibt es zwei Möglichkeiten:
 
 777 In der Gruppenverwaltung wählt man eine Gruppe aus. Im folgenden
 
 778 Dialog kann man dann einzeln die Benutzer der Gruppe hinzufügen.
 
 780 In der Gruppenverwaltung wählt man das Tool zur Verwaltung der
 
 781 Gruppenmitgliedschaft. Hier wird eine Matrix angezeigt, die alle im
 
 782 System angelegten Gruppen und Benutzer enthält. Durch Setzen der
 
 783 Häkchen wird der Benutzer in der ausgewählten Zeile der Gruppe in der
 
 784 ausgewählten Spalte hinzugefügt.
 
 787 @node Migration alter Installationen
 
 788 @section Migration alter Installationen
 
 790 Wenn Lx-Office 2.6.2 über eine ältere Version installiert wird, in der
 
 791 die Benutzerdaten noch im Dateisystem im Verzeichnis @code{users}
 
 792 verwaltet wurden, so bietet Lx-Office die Möglichkeit, diese
 
 793 Benutzerdaten automatisch in die Authentifizierungsdatenbank zu
 
 794 übernehmen. Dies geschieht, wenn man sich nach dem Update der
 
 795 Installation das erste Mal im Administrationsbereich anmeldet. Findet
 
 796 Lx-Office die Datei @code{users/members}, so wird der
 
 797 Migrationsprozess gestartet.
 
 799 Der Migrationsprozess ist nahezu vollautomatisch. Alle Benutzerdaten
 
 800 können übernommen werden. Nach den Benutzerdaten bietet Lx-Office noch
 
 801 die Möglichkeit an, dass automatisch eine Benutzergruppe angelegt
 
 802 wird. Dieser Gruppe wird Zugriff auf alle Funktionen von Lx-Office
 
 803 gewährt. Alle migrierten Benutzern werden Mitglied in dieser
 
 804 Gruppe. Damit wird das Verhalten von Lx-Office bis Version 2.4.3
 
 805 inklusive wiederhergestellt, und die Benutzer können sich sofort
 
 806 wieder anmelden und mit dem System arbeiten.
 
 808 @c ---------------------------------------------------------------
 
 810 @node Drucken mit Lx-Office
 
 811 @chapter Drucken mit Lx-Office
 
 813 Das Drucksystem von Lx-Office benutzt von Haus aus LaTeX Vorlagen. Um drucken
 
 814 zu können, braucht der Server ein geeignetes LaTeX System. Am einfachsten ist
 
 815 dazu eine @code{texlive} Installation. Unter Debianoiden Betriebssystemen sind
 
 818 @code{texlive-latex-base texlive-latex-extra texlive-fonts-recommended}
 
 820 Diese hinteren beiden enthalten Bibliotheken und Schriftarten die von den
 
 821 Standardvorlagen verwendet werden.
 
 825 In den allermeisten Installationen sollte drucken jetzt schon funktionieren.
 
 826 Sollte ein Fehler auftreten wirft TeX sehr lange Fehlerbeschreibungen, der
 
 827 eigentliche Fehler ist immer die erste Zeite die mit einem Ausrufezeichen
 
 828 anfängt. Häufig auftretende Fehler sind zum Beispiel:
 
 831 @item ! LaTeX Error: File `eurosym.sty' not found.
 
 832 Die entsprechende LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem
 
 833 bei Vorlagen aus der Community auf. Installieren Sie die entsprechenden Pakete.
 
 834 @item ! Package inputenc Error: Unicode char \u8:æ¡
\9c not set up for use with LaTeX.
 
 835 Dieser Fehler tritt auf, wenn sie versuchen mit einer Standardinstallation
 
 836 exotische utf8 Zeichen zu drucken. TeXLive unterstützt von Haus nur romanische
 
 837 Schriften und muss mit diversen Tricks dazu gebracht werden andere Zeichen zu
 
 838 akzeptieren. Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.
 
 841 Wird garkein Fehler angezeigt sondern nur der Name des Templates, heißt das
 
 842 normalerweise, dass das LaTeX Binary nicht gefunden wurde. Prüfen Sie den Namen
 
 843 in der Konfiguration (Standard: @code{pdflatex}), und stellen Sie sicher, dass
 
 844 pdflatex (oder das von Ihnen verwendete System) vom Webserver ausgeführt werden
 
 847 @c ---------------------------------------------------------------
 
 849 @node OpenDocument-Vorlagen
 
 850 @chapter OpenDocument-Vorlagen
 
 852 Lx-Office unterstützt die Verwendung von Vorlagen im
 
 853 OpenDocument-Format, wie es OpenOffice.org ab Version 2
 
 854 erzeugt. Lx-Office kann dabei sowohl neue OpenDocument-Dokumente als
 
 855 auch aus diesen direkt PDF-Dateien erzeugen.  Um die Unterstützung von
 
 856 OpenDocument-Vorlagen zu aktivieren muss in der Datei
 
 857 @file{config/lx_office.conf} die Variable @code{opendocument} im
 
 858 Abschnitt @code{print_templates} auf @samp{1} stehen.  Dieses ist die
 
 861 Weiterhin muss in der Datei @file{config/lx_office.conf} die Variable
 
 862 @code{dbcharset} im Abschnitt @code{system} auf die Zeichenkodierung
 
 863 gesetzt werden, die auch bei der Speicherung der Daten in der
 
 864 Datenbank verwendet wird. Diese ist in den meisten Fällen "UTF-8".
 
 866 Während die Erzeugung von reinen OpenDocument-Dateien keinerlei
 
 867 weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF
 
 868 OpenOffice.org benötigt. Soll dieses Feature genutzt werden, so muss
 
 869 neben OpenOffice.org ab Version 2 auch der ``X virtual frame buffer''
 
 870 (xvfb) installiert werden.  Bei Debian ist er im Paket ``xvfb''
 
 871 enthalten. Andere Distributionen enthalten ihn in anderen Paketen.
 
 873 Nach der Installation müssen in der Datei @file{config/lx_config.conf}
 
 874 zwei weitere Variablen angepasst werden: @code{openofficeorg_writer}
 
 875 muss den vollständigen Pfad zur OpenOffice.org Writer-Anwendung
 
 876 enthalten. @code{xvfb} muss den Pfad zum ``X virtual frame buffer''
 
 877 enthalten. Beide stehen im Abschnitt @code{applications}.
 
 879 Zusätzlich gibt es zwei verschiedene Arten, wie Lx-Office mit
 
 880 OpenOffice kommuniziert. Die erste Variante, die benutzt wird, wenn
 
 881 die Variable @code{$openofficeorg_daemon} gesetzt ist, startet ein
 
 882 OpenOffice, das auch nach der Umwandlung des Dokumentes gestartet
 
 883 bleibt. Bei weiteren Umwandlungen wird dann diese laufende Instanz
 
 884 benutzt. Der Vorteil ist, dass die Zeit zur Umwandlung deutlich
 
 885 reduziert wird, weil nicht für jedes Dokument ein OpenOffice gestartet
 
 886 werden muss. Der Nachteil ist, dass diese Methode Python und die
 
 887 Python-UNO-Bindings benötigt, die Bestandteil von OpenOffice 2 sind.
 
 889 Ist @code{$openofficeorg_daemon} nicht gesetzt, so wird für jedes
 
 890 Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe
 
 891 eines Makros durchgeführt. Dieses Makro muss in der Dokumentenvorlage
 
 892 enthalten sein und ``Standard.Conversion.ConvertSelfToPDF()''
 
 893 heißen. Die Beispielvorlage @samp{templates/mastertemplates/German/invoice.odt}
 
 894 enthält ein solches Makro, das in jeder anderen Dokumentenvorlage
 
 895 ebenfalls enthalten sein muss.
 
 897 Als letztes muss herausgefunden werden, welchen Namen OpenOffice.org
 
 898 Writer dem Verzeichnis mit den Benutzereinstellungen gibt. Unter
 
 899 Debian ist dies momentan @code{~/.openoffice.org2}. Sollte der Name
 
 900 bei Ihrer OpenOffice.org-Installation anders sein, so muss das
 
 901 Verzeichnis @code{users/.openoffice.org2} entsprechend umbenannt
 
 902 werden. Ist der Name z.B. einfach nur @code{.openoffice}, so wäre
 
 903 folgender Befehl auszuführen:
 
 905 @code{mv users/.openoffice.org2 users/.openoffice}
 
 907 Dieses Verzeichnis, wie auch das komplette @code{users}-Verzeichnis, muss vom
 
 908 Webserver beschreibbar sein. Dieses wurde bereits erledigt
 
 909 (@pxref{Manuelle Installation des Programmpaketes}), kann aber erneut überprüft
 
 910 werden, wenn die Konvertierung nach PDF fehlschlägt.
 
 912 @c ---------------------------------------------------------------
 
 914 @node Lx-Office ERP verwenden
 
 915 @chapter Lx-Office ERP verwenden
 
 917 Nach erfolgreicher Installation ist der Loginbildschirm unter
 
 918 folgender URL erreichbar:
 
 920 @uref{http://localhost/lx-office-erp/login.pl}
 
 922 Die Administrationsseite erreichen Sie unter:
 
 924 @uref{http://localhost/lx-office-erp/admin.pl}