Merge branch 'master' of vc.linet-services.de:public/lx-office-erp
[kivitendo-erp.git] / doc / INSTALL.texi
1 \input texinfo   @c -*-texinfo-*-
2 @c %**start of header
3 @setfilename INSTALL.info
4 @documentencoding UTF-8
5 @afourpaper
6 @settitle Lx-Office Installationsanleitung
7 @c %**end of header
8
9 @c @copying
10 @c Die Lx-Office Installationsanleitung kann beliebig weiter verwendet
11 @c werden.
12 @c @end copying
13
14 @titlepage
15 @title Lx-Office Installationsanleitung
16 @end titlepage
17
18 @contents
19
20 @ifnottex
21 @node Top
22 @top Inhalt der Anleitung
23 @end ifnottex
24
25 @menu
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
37 @end menu
38
39 @c ---------------------------------------------------------------
40
41 @node Aktuelle Hinweise
42 @chapter Aktuelle Hinweise
43
44 Aktuelle Installations- und Konfigurationshinweise gibt es:
45
46 @itemize
47 @item
48 auf der Lx-Office Homepage unter @uref{http://lx-office.org/index.php?id=dokumentation}
49
50 @item
51 im Lx-Office-Wiki unter Dokumentation (@uref{http://wiki.lx-office.org/index.php/Lx-Office_ERP})
52
53 @item
54 im Lx-Office-Forum: @uref{http://www.lx-office.org/forum/}
55 @end itemize
56
57 @c ---------------------------------------------------------------
58
59 @node Benötigte Software und Pakete
60 @chapter Benötigte Software und Pakete
61
62 @menu
63 * Betriebssystem:: Unterstützte Betriebsysteme und Hinweise für ältere Systeme
64 * Pakete:: Benötigte Software und Perlpakete sowie deren Quellen
65 @end menu
66
67 @node Betriebssystem
68 @section Betriebssystem
69
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.
75
76 Anfang 2011 sind das folgende Systeme:
77
78 @itemize
79 @item
80 Ubuntu 8.04 LTS Hardy Heron
81 @item
82 Ubuntu 9.10 Karmic Koala
83 @item
84 Ubuntu 10.04 Lucid Lynx
85 @item
86 Ubuntu 10.10 Maverick Meerkat
87 @item
88 Debian 5.0 Lenny
89 @item
90 Debian 6.0 Squeeze
91 @item
92 openSUSE 11.2
93 @item
94 openSUSE 11.3
95 @item
96 SuSE Linux Enterprice Server 11
97 @item
98 Fedora 13
99 @item
100 Fedora 14
101 @end itemize
102
103 Für die debianoiden Betriebssysteme existiert ein .deb, das deutlich einfacher
104 zu installieren ist.
105
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
109 geben.
110
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.
115
116 Zur Installation das Paket in das entpackte Lx-Office Verzeichnis entpacken:
117
118 @code{tar xzf lx-erp-perl-libs-compat-v2.tar.gz /path/to/lx-office/}
119
120 Zusätzlich müssen dann noch die folgenden Pakete installiert weerden
121
122 @code{libbit-vector-perl libsub-exporter-perl libclone-perl libclass-factory-util-perl}
123
124 Danach sollte der Installationscheck (@pxref{Pakete}) die enthaltenen Pakete erkennen.
125
126 @node Pakete
127 @section Pakete
128
129 Zum Betrieb von Lx-Office werden zwingend ein Webserver (meist Apache)
130 und ein Datenbankserver (PostgreSQL, mindestens v8.2) benötigt.
131
132 Zusätzlich benötigt Lx-Office die folgenden Perl-Pakete, die nicht Bestandteil
133 einer Standard-Perl-Installation sind:
134
135 @itemize
136 @item
137 parent
138 @item
139 Archive::Zip
140 @item
141 Config::Std
142 @item
143 DateTime
144 @item
145 DBI
146 @item
147 DBD::Pg
148 @item
149 Email::Address
150 @item
151 JSON
152 @item
153 List::MoreUtils
154 @item
155 Params::Validate
156 @item
157 PDF::API2
158 @item
159 Rose::Object
160 @item
161 Rose::DB
162 @item
163 Rose::DB::Object
164 @item
165 Template
166 @item
167 Text::CSV_XS
168 @item
169 Text::Iconv
170 @item
171 URI
172 @item
173 XML::Writer
174 @item
175 YAML
176 @end itemize
177
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.
180
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.
184
185 Gegenüber Version 2.6.3 ist @code{JSON} neu hinzugekommen.
186
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.
192
193 Die zu installierenden Pakete können in den verschiedenen Distributionen unterschiedlich heißen.
194
195 Für Debian oder Ubuntu benötigen Sie diese Pakete:
196
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}
198
199 Für Fedora Core benötigen Sie diese Pakete:
200
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}
202
203 Für OpenSuSE benötigen Sie diese Pakete:
204
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}
206
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.
208
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:
211
212 @code{./scripts/installation_check.pl}
213
214 @c ---------------------------------------------------------------
215
216 @node Manuelle Installation des Programmpaketes
217 @chapter Manuelle Installation des Programmpaketes
218
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:
222
223 @code{cd /var/www
224 @*
225 tar xvzf lxoffice-erp-2.6.2.tgz}
226
227 Verändern Sie evtl. noch den Namen des Verzeichnisses mit
228
229 @code{mv lxoffice-erp/ lx-erp/}
230
231 Alternativ können Sie auch einen Alias in der Webserverkonfiguration
232 benutzen, um auf das tatsächliche Installationsverzeichnis zu
233 verweisen.
234
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}).
241
242 Der folgende Befehl ändert den Besitzer für die oben genannten
243 Verzeichnisse auf einem Debian/Ubuntu-System:
244
245 @code{chown -R www-data lx-office-erp/users lx-office-erp/spool lx-office-erp/webdav}
246
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:
249
250 @code{chgrp www-data lx-office-erp/templates; chmod g+w lx-office-erp/templates}
251
252
253 @c ---------------------------------------------------------------
254
255 @node Anpassung der PostgreSQL-Konfiguration
256 @chapter Anpassung der PostgreSQL-Konfiguration
257
258 PostgreSQL muss auf verschiedene Weisen angepasst werden.
259
260 @menu
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
265 @end menu
266
267 @node Zeichensätze/die Verwendung von UTF-8
268 @section Zeichensätze/die Verwendung von UTF-8
269
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.
275
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:
281
282 @code{pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 8.2 clustername}
283
284 Die Datenbankversionsnummer muss an die tatsächlich verwendete
285 Versionsnummer angepasst werden.
286
287 Unter anderen Distributionen gibt es ähnliche Methoden.
288
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.
292
293 Das Encoding einer Datenbank kann in @code{psql} mit @code{\l} geprüft werden.
294
295 @node Änderungen an Konfigurationsdateien
296 @section Änderungen an Konfigurationsdateien
297
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.
307
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
312 zuzulassen
313
314 @code{local all all trust
315 @*
316 host all all 127.0.0.1 255.0.0.0 trust}
317
318 Besser ist es, für eine bestimmte Datenbank Zugriff nur per Passwort
319 zuzulassen. Beispielsweise:
320
321 @code{local   all         lxoffice                                           password
322 @*
323 host    all         lxoffice      127.0.0.1         255.255.255.255    password}
324
325 @c ---------------------------------------------------------------
326
327 @node Erweiterung für servergespeicherte Prozeduren
328 @section Erweiterung für servergespeicherte Prozeduren
329
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:
333
334 @code{create language 'plpgsql';}
335
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:
339
340 @code{create function plpgsql_call_handler () returns opaque as '/usr/lib/pgsql/plpgsql.so' language 'c';
341 @*
342 create language 'plpgsql' handler plpgsql_call_handler lancompiler 'pl/pgsql';}
343
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}.
347
348 @c ---------------------------------------------------------------
349
350 @node Datenbankbenutzer anlegen
351 @section Datenbankbenutzer anlegen
352
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:
356
357 @code{su - postgres
358 @*
359 createuser -d -P lxoffice}
360
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.
364
365 @c ---------------------------------------------------------------
366
367 @node Apache-Konfiguration
368 @chapter Apache-Konfiguration
369
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.
373
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:
378
379 @code{@*
380 AddHandler cgi-script .pl
381 @*
382 Alias /lx-erp/ /var/www/lx-erp/
383 @*
384 <Directory /var/www/lx-erp>
385 @*
386   Options ExecCGI Includes FollowSymlinks
387 @*
388 </Directory>
389 @*
390 @*
391 <Directory /var/www/lx-erp/users>
392 @*
393   Order Deny,Allow
394 @*
395   Deny from All
396 @*
397 </Directory>
398 @*
399 }
400
401 Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher das
402 Lx-Office-Archiv entpacket haben.
403
404 Achtung: Vor den einzelnen Optionen muss bei einigen Distributionen ein
405 Plus @samp{+} gesetzt werden.
406
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:
410
411 @code{EnableSendfile Off}
412
413 @c ---------------------------------------------------------------
414
415 @node Der Task-Server
416 @chapter Der Task-Server
417
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
423 übertragen bekommen.
424
425 @menu
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
429 @end menu
430
431 @node Konfiguration des Task-Servers
432 @section Verfügbare und notwendige Konfigurationsoptionen
433
434 Die Konfiguration erfolgt über den Abschnitt @code{[task_server]} in
435 der Datei @file{config/lx_office.conf}. Die dort verfügbaren Optionen
436 sind:
437
438 @itemize
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.
442 @end itemize
443
444 @node Einbinden in den Boot-Prozess
445 @section Automatisches Starten des Task-Servers beim Booten
446
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.
450
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.
456
457 @subsection SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)
458
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:
464
465 @itemize
466 @item Debian-basierende Systeme:
467 @*
468 @code{update-rc.d lx-office-task-server defaults
469 @*
470 # Nur bei Debian Squeeze und neuer:
471 @*
472 insserv lx-office-task-server}
473 @item OpenSuSE und Fedora Core:
474 @*
475 @code{chkconfig --add lx-office-task-server}
476 @end itemize
477
478 Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
479 @code{/etc/init.d/lx-office-task-server start}
480
481 @subsection Upstart-basierende Systeme (z.B. Ubuntu)
482
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 ....}).
487
488 Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
489 @code{service lx-office-task-server start}
490
491 @node Prozesskontrolle
492 @section Wie der Task-Server gestartet und beendet wird
493
494 Der Task-Server wird wie folgt kontrolliert:
495
496 @code{./scripts/task_server.pl Befehl}
497
498 @code{Befehl} ist dabei eine der folgenden Optionen:
499
500 @itemize
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.
505 @end itemize
506
507 Der Task-Server wechselt beim Starten automatisch in das Lx-Office-Installationsverzeichnis.
508
509 Dieselben Optionen können auch für die SystemV-basierenden
510 Runlevel-Scripte benutzt werden (siehe oben).
511
512 @c ---------------------------------------------------------------
513
514 @node Benutzerauthentifizierung und Administratorpasswort
515 @chapter Benutzerauthentifizierung und Administratorpasswort
516
517 Informationen über die Einrichtung der Benutzerauthentifizierung, über
518 die Verwaltung von Gruppen und weitere Einstellungen
519
520 @menu
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
527 @end menu
528
529 @c ---------------------------------------------------------------
530
531 @node Grundlagen zur Benutzerauthentifizierung
532 @section Grundlagen zur Benutzerauthentifizierung
533
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.
539
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
542 werden.
543
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.
547
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
554 benutzt werden kann.
555
556 @node Administratorpasswort
557 @section Administratorpasswort
558
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@}}.
563
564 @node Authentifizierungsdatenbank
565 @section Authentifizierungsdatenbank
566
567 Die Verbindung zur Authentifizierungsdatenbank wird mit den Parametern
568 in @code{$self->@{DB_config@}} konfiguriert. Hier sind die folgenden
569 Parameter anzugeben:
570
571 @itemize
572 @item
573 @samp{host} -- Der Rechnername oder die IP-Adresse des Datenbankservers
574 @item
575 @samp{port} -- Die Portnummer des Datenbankservers, meist 5432
576 @item
577 @samp{db} -- Der Name der Authentifizierungsdatenbank
578 @item
579 @samp{user} -- Der Benutzername, mit dem sich Lx-Office beim Datenbankserver anmeldet (z.B. ``postgres'')
580 @item
581 @samp{password} -- Das Passwort für den Datenbankbenutzer
582 @end itemize
583
584 Die Datenbank muss noch nicht existieren. Lx-Office kann sie
585 automatisch anlegen (mehr dazu siehe unten).
586
587 @node Passwortüberprüfung
588 @section Passwortüberprüfung
589
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@}}.
594
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
599 Lx-Office ändern.
600
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:
605
606 @itemize
607 @item
608 @samp{host} -- Der Rechnername oder die IP-Adresse des LDAP- oder Active-Directory-Servers. Diese Angabe ist zwingend erforderlich.
609 @item
610 @samp{port} -- Die Portnummer des LDAP-Servers; meist 389.
611 @item
612 @samp{tls} -- Wenn Verbindungsverschlüsselung gewünscht ist, so diesen Wert auf @samp{1} setzen, andernfalls auf @samp{0} belassen
613 @item
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.
616 @item
617 @samp{base_dn} -- Der Abschnitt des LDAP-Baumes, der durchsucht werden soll. Diese Angabe ist zwingend erforderlich.
618 @item
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.
622 @item
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}.
627 @end itemize
628
629 @node Name des Session-Cookies
630 @section Name des Session-Cookies
631
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.
636
637 Diese Angabe ist optional, wenn nur eine Installation auf dem Server
638 existiert.
639
640 @node Anlegen der Authentifizierungsdatenbank
641 @section Anlegen der Authentifizierungsdatenbank
642
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
647 sein sollte:
648
649 @uref{http://localhost/lx-erp/admin.pl}
650
651
652 @c ---------------------------------------------------------------
653
654 @node Benutzer- und Gruppenverwaltung
655 @chapter Benutzer- und Gruppenverwaltung
656
657 Nach der Installation müssen Benutzer, Gruppen und Datenbanken
658 angelegt werden.  Dieses geschieht im Administrationsmenü, das Sie
659 unter folgender URL finden:
660
661 @uref{http://localhost/lx-erp/admin.pl}
662
663 Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
664 @file{config/lx_office.conf} eingetragen haben.
665
666 @menu
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
673 @end menu
674
675 @node Zusammenhänge
676 @section Zusammenhänge
677
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.
685
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.
692
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.
698
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.
705
706 Die allgemeine Reihenfolge, in der Datenbanken, Gruppen und Benutzer
707 angelegt werden sollten, lautet:
708
709 @enumerate
710 @item
711 Datenbank anlegen
712 @item
713 Gruppen anlegen
714 @item
715 Benutzer anlegen
716 @item
717 Benutzer den Gruppen zuordnen
718 @end enumerate
719
720 @node Datenbanken anlegen
721 @section Datenbanken anlegen
722
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}).
726
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
733 ausgewählt werden.
734
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.
740
741 @node Gruppen anlegen
742 @section Gruppen anlegen
743
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.
748
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.
752
753 @node Benutzer anlegen
754 @section Benutzer anlegen
755
756 Beim Anlegen von Benutzern werden für viele Parameter
757 Standardeinstellungen vorgenommen, die den Gepflogenheiten des
758 deutschen Raumes entsprechen.
759
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.
765
766 In der Datenbankkonfiguration müssen die Zugriffsdaten einer der eben
767 angelegten Datenbanken eingetragen werden.
768
769 @node Gruppenmitgliedschaften verwalten
770 @section Gruppenmitgliedschaften verwalten
771
772 Nach dem Anlegen von Benutzern und Gruppen müssen Benutzer den Gruppen
773 zugewiesen werden. Dazu gibt es zwei Möglichkeiten:
774
775 @enumerate
776 @item
777 In der Gruppenverwaltung wählt man eine Gruppe aus. Im folgenden
778 Dialog kann man dann einzeln die Benutzer der Gruppe hinzufügen.
779 @item
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.
785 @end enumerate
786
787 @node Migration alter Installationen
788 @section Migration alter Installationen
789
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.
798
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.
807
808 @c ---------------------------------------------------------------
809
810 @node Drucken mit Lx-Office
811 @chapter Drucken mit Lx-Office
812
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
816 das die Pakete:
817
818 @code{texlive-latex-base texlive-latex-extra texlive-fonts-recommended}
819
820 Diese hinteren beiden enthalten Bibliotheken und Schriftarten die von den
821 Standardvorlagen verwendet werden.
822
823 TODO: rpm Pakete.
824
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:
829
830 @itemize
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.
839 @end itemize
840
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
845 darf.
846
847 @c ---------------------------------------------------------------
848
849 @node OpenDocument-Vorlagen
850 @chapter OpenDocument-Vorlagen
851
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
859 Standardeinstellung.
860
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".
865
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.
872
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}.
878
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.
888
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/German-invoice.odt}
894 enthält ein solches Makro, das in jeder anderen Dokumentenvorlage
895 ebenfalls enthalten sein muss.
896
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:
904
905 @code{mv users/.openoffice.org2 users/.openoffice}
906
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.
911
912 @c ---------------------------------------------------------------
913
914 @node Lx-Office ERP verwenden
915 @chapter Lx-Office ERP verwenden
916
917 Nach erfolgreicher Installation ist der Loginbildschirm unter
918 folgender URL erreichbar:
919
920 @uref{http://localhost/lx-office-erp/login.pl}
921
922 Die Administrationsseite erreichen Sie unter:
923
924 @uref{http://localhost/lx-office-erp/admin.pl}
925
926 @bye