Merge branch 'master' of git@lx-office.linet-services.de: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 * OpenDocument-Vorlagen:: Wichtige Hinweise zum Erstellen und zur Verwendung von Dokumentenvorlagen
35 * Lx-Office ERP verwenden:: Die URLs zur Anmeldung und Administration
36 @end menu
37
38 @c ---------------------------------------------------------------
39
40 @node Aktuelle Hinweise
41 @chapter Aktuelle Hinweise
42
43 Aktuelle Installations- und Konfigurationshinweise gibt es:
44
45 @itemize
46 @item
47 auf der Lx-Office Homepage unter @uref{http://lx-office.org/index.php?id=dokumentation}
48
49 @item
50 im Lx-Office-Wiki unter Dokumentation (@uref{http://wiki.lx-office.org/index.php/Lx-Office_ERP})
51
52 @item
53 im Lx-Office-Forum: @uref{http://www.lx-office.org/forum/}
54 @end itemize
55
56 @c ---------------------------------------------------------------
57
58 @node Benötigte Software und Pakete
59 @chapter Benötigte Software und Pakete
60
61 @menu
62 * Betriebssystem:: Unterstützte Betriebsysteme und Hinweise für ältere Systeme
63 * Pakete:: Benötigte Software und Perlpakete sowie deren Quellen
64 @end menu
65
66 @node Betriebssystem
67 @section Betriebssystem
68
69 Lx-Office ist für Linux konzipiert, und sollte auf jedem unixoiden
70 Betriebssystem zum Laufen zu kriegen sein. Getestet ist diese Version im
71 speziellen auf Debian und Ubuntu, grundsätzlich wurde bei der Auswahl der
72 Pakete aber darauf Rücksicht genommen, dass es ohne große Probleme auf den
73 derzeit aktuellen verbreiteten Distributionen läuft.
74
75 Anfang 2011 sind das folgende Systeme:
76
77 @itemize
78 @item
79 Ubuntu 8.04 LTS Hardy Heron
80 @item
81 Ubuntu 9.10 Karmic Koala
82 @item
83 Ubuntu 10.04 Lucid Lynx
84 @item
85 Ubuntu 10.10 Maverick Meerkat
86 @item
87 Debian 5.0 Lenny
88 @item
89 Debian 6.0 Squeeze
90 @item
91 openSUSE 11.2
92 @item
93 openSUSE 11.3
94 @item
95 SuSE Linux Enterprice Server 11
96 @item
97 Fedora 13
98 @item
99 Fedora 14
100 @end itemize
101
102 Für die debianoiden Betriebssysteme existiert ein .deb, das deutlich einfacher
103 zu installieren ist.
104
105 Ubuntu 8.04 LTS hat zusätzlich die Schwierigkeit, dass die Module im Archiv
106 recht alt sind, und das viele der benötigten Module nicht einfach zu
107 installieren sind. Dafür sollte es kurz nach dem Release ein eigenes .deb
108 geben.
109
110 Alternativ dazu kann die normale Installation durchgeführt werden
111 (@pxref{Manuelle Installation des Programmpaketes}), wenn vorher ein
112 Kompatibilitätspaket installiert wird, das die fehlenden Pakete bereitstellt.
113 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.
114
115 Zur Installation das Paket in das entpackte Lx-Office Verzeichnis entpacken:
116
117 @code{tar xzf lx-erp-perl-libs-compat-v2.tar.gz /path/to/lx-office/}
118
119 Zusätzlich müssen dann noch die folgenden Pakete installiert weerden
120
121 @code{libbit-vector-perl libsub-exporter-perl libclone-perl libclass-factory-util-perl}
122
123 Danach sollte der Installationscheck (@pxref{Pakete}) die enthaltenen Pakete erkennen.
124
125 @node Pakete
126 @section Pakete
127
128 Zum Betrieb von Lx-Office werden zwingend ein Webserver (meist Apache)
129 und ein Datenbankserver (PostgreSQL, mindestens v8.2) benötigt.
130
131 Zusätzlich benötigt Lx-Office die folgenden Perl-Pakete, die nicht Bestandteil
132 einer Standard-Perl-Installation sind:
133
134 @itemize
135 @item
136 parent
137 @item
138 Archive::Zip
139 @item
140 Class::Accessor
141 @item
142 CGI::Ajax
143 @item
144 Config::Std
145 @item
146 DateTime
147 @item
148 DBI
149 @item
150 DBD::Pg
151 @item
152 Email::Address
153 @item
154 List::MoreUtils
155 @item
156 Params::Validate
157 @item
158 PDF::API2
159 @item
160 Rose::Object
161 @item
162 Rose::DB
163 @item
164 Rose::DB::Object
165 @item
166 Template
167 @item
168 Text::CSV_XS
169 @item
170 Text::Iconv
171 @item
172 URI
173 @item
174 XML::Writer
175 @item
176 YAML
177 @end itemize
178
179 Gegenüber Version 2.6.0 sind zu dieser Liste 2 Pakete hinzugekommen, @code{URI}
180 und @code{XML::Writer} sind notwendig. Ohne startet Lx-Office nicht.
181
182 Gegenüber Version 2.6.1 sind @code{parent}, @code{DateTime},
183 @code{Rose::Object}, @code{Rose::DB} und @code{Rose::DB::Object} neu
184 hinzugekommen. @code{IO::Wrap} wurde entfernt.
185
186 @code{Email::Address} und @code{List::MoreUtils} sind schon länger feste
187 Abhängigkeiten, wurden aber bisher mit Lx-Office mitgeliefert.  Beide sind auch
188 in 2.6.1 weiterhin mit ausgeliefert, wurden in einer zukünftigen Version aber
189 aus dem Paket entfernt werden. Es wird empfohlen diese Module zusammen mit den
190 anderen als Bibliotheken zu installieren.
191
192 @code{CGI::Ajax} ist nach wie vor in einer modifizierten Version mitgeliefert
193 und braucht nicht nachinstalliert werden.
194
195 Die zu installierenden Pakete können in den verschiedenen Distributionen unterschiedlich heißen.
196
197 Für Debian oder Ubuntu benötigen Sie diese Pakete:
198
199 @code{apache2 postgresql libparent-perl libarchive-zip-perl libclass-accessor-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}
200
201 Für Fedora Core benötigen Sie diese Pakete:
202
203 @code{httpd postgresql-server perl-parent perl-Class-Accessor 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}
204
205 Für OpenSuSE benötigen Sie diese Pakete:
206
207 @code{apache2 postgresql-server perl-Archive-Zip perl-Class-Accessor 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}
208
209 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.
210
211 Lx-Office enthält ein Script, mit dem überprüft werden kann, ob alle
212 benötigten Perl-Module installiert sind. Der Aufruf lautet wie folgt:
213
214 @code{./scripts/installation_check.pl}
215
216 @c ---------------------------------------------------------------
217
218 @node Manuelle Installation des Programmpaketes
219 @chapter Manuelle Installation des Programmpaketes
220
221 Die Lx-Office ERP Installationsdatei (lxoffice-erp-2.6.2.tgz) wird im
222 Dokumentenverzeichnis des Webservers (z.B. @code{/var/www/html/},
223 @code{/srv/www/htdocs} oder @code{/var/www/}) entpackt:
224
225 @code{cd /var/www
226 @*
227 tar xvzf lxoffice-erp-2.6.2.tgz}
228
229 Verändern Sie evtl. noch den Namen des Verzeichnisses mit
230
231 @code{mv lxoffice-erp/ lx-erp/}
232
233 Alternativ können Sie auch einen Alias in der Webserverkonfiguration
234 benutzen, um auf das tatsächliche Installationsverzeichnis zu
235 verweisen.
236
237 Die Verzeichnisse @code{users}, @code{spool} und @code{webdav} müssen
238 für den Benutzer beschreibbar sein, unter dem der Webserver läuft. Die
239 restlichen Dateien müssen für diesen Benutzer lesbar sein. Der
240 Benutzername ist bei verschiedenen Distributionen unterschiedlich
241 (z.B. bei Debian/Ubuntu @code{www-data}, bei Fedora core @code{apache}
242 oder bei OpenSuSE @code{wwwrun}).
243
244 Der folgende Befehl ändert den Besitzer für die oben genannten
245 Verzeichnisse auf einem Debian/Ubuntu-System:
246
247 @code{chown -R www-data lx-office-erp/users lx-office-erp/spool lx-office-erp/webdav}
248
249 Weiterhin muss der Webserver-Benutzer im Verzeichnis @code{templates} Verzeichnisse für
250 jeden neuen Benutzer, der in lx-office angelegt wird, anlegen dürfen:
251
252 @code{chgrp www-data lx-office-erp/templates; chmod g+w lx-office-erp/templates}
253
254
255 @c ---------------------------------------------------------------
256
257 @node Anpassung der PostgreSQL-Konfiguration
258 @chapter Anpassung der PostgreSQL-Konfiguration
259
260 PostgreSQL muss auf verschiedene Weisen angepasst werden.
261
262 @menu
263 * Zeichensätze/die Verwendung von UTF-8:: Was bei der Verwendung von UTF-8 zu beachten ist
264 * Änderungen an Konfigurationsdateien:: Anpassungen für Anmeldung am Server und Featureunterstützung
265 * Erweiterung für servergespeicherte Prozeduren:: Lx-Office benutzt servergespeicherte Prozeduren
266 * Datenbankbenutzer anlegen:: Um den Zugriff besser zu reglementieren
267 @end menu
268
269 @node Zeichensätze/die Verwendung von UTF-8
270 @section Zeichensätze/die Verwendung von UTF-8
271
272 Lx-Office kann komplett mit UTF-8 als Zeichensatz verwendet
273 werden. Dabei gibt es zwei Punkte zu beachten: PostgreSQL muss in
274 Version 8.0 oder neuer benutzt werden, und der
275 PostgreSQL-Datenbankcluster muss ebenfalls mit UTF-8 als Locale
276 angelegt worden sein.
277
278 Dieses ist kann überprüft werden: ist das Encoding der Datenbank
279 ``template1'' ``UTF8'', so kann auch Lx-Office mit UTF-8 betrieben
280 werden. Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
281 UTF-8-Encoding anzulegen und diesen zu verwenden. Unter Debian und
282 Ubuntu kann dies z.B. mit dem folgenden Befehl getan werden:
283
284 @code{pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 8.2 clustername}
285
286 Die Datenbankversionsnummer muss an die tatsächlich verwendete
287 Versionsnummer angepasst werden.
288
289 Unter anderen Distributionen gibt es ähnliche Methoden.
290
291 Wurde PostgreSQL nicht mit UTF-8 als Encoding initialisiert und ist
292 ein Neuanlegen eines weiteren Clusters nicht möglich, so kann
293 Lx-Office mit ISO-8859-15 als Encoding betrieben werden.
294
295 Das Encoding einer Datenbank kann in @code{psql} mit @code{\l} geprüft werden.
296
297 @node Änderungen an Konfigurationsdateien
298 @section Änderungen an Konfigurationsdateien
299
300 In der Datei @code{postgresql.conf}, die je nach Distribution in
301 verschiedenen Verzeichnissen liegen kann
302 (z.B. @code{/var/lib/pgsql/data/} oder @code{/etc/postgresql/}, muss
303 sichergestellt werden, dass TCP/IP-Verbindungen aktiviert sind. Das
304 Verhalten wird über den Parameter @code{listen_address}
305 gesteuert. Laufen PostgreSQL und Lx-Office auf demselben Rechner, so
306 kann dort der Wert @code{localhost} verwendet werden. Andernfalls
307 müssen Datenbankverbindungen auch von anderen Rechnern aus zugelassen
308 werden, was mit dem Wert \@code{*} geschieht.
309
310 In der Datei @code{pg_hba.conf}, die im gleichen Verzeichnis wie die
311 @code{postgresql.conf} zu finden sein sollte, müssen die
312 Berichtigungen für den Zugriff geändert werden. Hier gibt es mehrere
313 Möglichkeiten. Eine besteht darin, lokale Verbindungen immer
314 zuzulassen
315
316 @code{local all all trust
317 @*
318 host all all 127.0.0.1 255.0.0.0 trust}
319
320 Besser ist es, für eine bestimmte Datenbank Zugriff nur per Passwort
321 zuzulassen. Beispielsweise:
322
323 @code{local   all         lxoffice                                           password
324 @*
325 host    all         lxoffice      127.0.0.1         255.255.255.255    password}
326
327 @c ---------------------------------------------------------------
328
329 @node Erweiterung für servergespeicherte Prozeduren
330 @section Erweiterung für servergespeicherte Prozeduren
331
332 In der Datenbank @code{template1} muss die Unterstützung für servergespeicherte
333 Prozeduren eingerichet werden. Melden Sie sich dafür als Benutzer ``postgres''
334 an der Datenbank an, und führen Sie die folgenden Kommandos aus:
335
336 @code{create language 'plpgsql';}
337
338 Achtung: In älteren Postgresversionen (vor 8.0) muss der Handler für die
339 Sprache manuell anlelegt werden, diese Versionen werden aber nicht mehr
340 offiziell von Lx-Office unterstützt. Dafür dann die folgenden Kommandos:
341
342 @code{create function plpgsql_call_handler () returns opaque as '/usr/lib/pgsql/plpgsql.so' language 'c';
343 @*
344 create language 'plpgsql' handler plpgsql_call_handler lancompiler 'pl/pgsql';}
345
346 Bitte beachten Sie, dass der Pfad zur Datei @code{plpgsql.so} von Distribution
347 zu Distribution verschiedlich sein kann. Bei Debian/Ubuntu befindet sie sich
348 unter @code{/usr/lib/postgresql/lib/plpgsql.so}.
349
350 @c ---------------------------------------------------------------
351
352 @node Datenbankbenutzer anlegen
353 @section Datenbankbenutzer anlegen
354
355 Wenn Sie nicht den Datenbanksuperuser ``postgres'' zum Zugriff
356 benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer
357 anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen können:
358
359 @code{su - postgres
360 @*
361 createuser -d -P lxoffice}
362
363 Wenn Sie später einen Datenbankzugriff konfigurieren, verändern Sie
364 den evtl. voreingestellten Benutzer ``postgres'' auf ``lxoffice''
365 bzw. den hier gewählten Benutzernamen.
366
367 @c ---------------------------------------------------------------
368
369 @node Apache-Konfiguration
370 @chapter Apache-Konfiguration
371
372 Hinweis: Für einen deutlichen Performanceschub sorgt die Ausführung
373 mittels FCGI. Die Einrichtung wird ausführlich in der Datei
374 @code{INSTALL.fcgi} beschrieben.
375
376 Der Zugriff auf das Programmverzeichnis muss in der Apache
377 Webserverkonfigurationsdatei @code{httpd.conf} eingestellt
378 werden. Fügen Sie den folgenden Abschnitt dieser Datei oder einer
379 anderen Datei hinzu, die beim Starten des Webservers eingelesen wird:
380
381 @code{@*
382 AddHandler cgi-script .pl
383 @*
384 Alias /lx-erp/ /var/www/lx-erp/
385 @*
386 <Directory /var/www/lx-erp>
387 @*
388   Options ExecCGI Includes FollowSymlinks
389 @*
390 </Directory>
391 @*
392 @*
393 <Directory /var/www/lx-erp/users>
394 @*
395   Order Deny,Allow
396 @*
397   Deny from All
398 @*
399 </Directory>
400 @*
401 }
402
403 Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher das
404 Lx-Office-Archiv entpacket haben.
405
406 Achtung: Vor den einzelnen Optionen muss bei einigen Distributionen ein
407 Plus @samp{+} gesetzt werden.
408
409 Auf einigen Webservern werden manchmal die Grafiken und Style-Sheets
410 nicht ausgeliefert. In solchen Fällen hat es oft geholfen, die
411 folgende Option in die Konfiguration aufzunehmen:
412
413 @code{EnableSendfile Off}
414
415 @c ---------------------------------------------------------------
416
417 @node Der Task-Server
418 @chapter Der Task-Server
419
420 Der Task-Server ist ein Dämonen, der im Hintergrund läuft, in
421 regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese
422 zu festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser
423 Dämon wird bisher nur für die Erzeugung der wiederkehrenden Rechnungen
424 benutzt, wird aber in Zukunft deutlich mehr Aufgaben übertragen
425 bekommen.
426
427 @menu
428 * Konfiguration des Task-Servers:: Verfügbare und notwendige Konfigurationsoptionen
429 * Prozesskontrolle:: Wie der Task-Server gestartet und beendet wird
430 * Einbinden in den Boot-Prozess:: Automatisches Starten des Task-Servers beim Booten
431 @end menu
432
433 @node Konfiguration des Task-Servers
434 @section Verfügbare und notwendige Konfigurationsoptionen
435
436 Die Konfiguration erfolgt über den Abschnitt @code{[task_server]} in
437 der Datei @file{config/lx_office.conf}. Die dort verfügbaren Optionen
438 sind:
439
440 @itemize
441 @item @code{login}: Benutzername, der benutzt wird, um die zu verwendende Datenbankverbindung auszulesen. Der Benutzer muss in der Administration angelegt werden. Diese Option muss angegeben werden.
442 @item @code{run_as}: Wird der Server von @code{root} gestartet, so wechselt er auf diesen 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.
443 @item @code{debug}: Schaltet Debug-Informationen an und aus.
444 @end itemize
445
446 @node Einbinden in den Boot-Prozess
447 @section Automatisches Starten des Task-Servers beim Booten
448
449 Der Task-Server verhält sich von seinen Optionen her wie ein reguläres
450 SystemV-kompatibles Boot-Script. Außerdem wechselt er beim Starten
451 automatisch in das Lx-Office-Installationsverzeichnis.
452
453 Deshalb ist es möglich, ihn durch Setzen eines symbolischen Links aus
454 einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess
455 einzubinden. Da das bei neueren Linux-Distributionen aber nicht
456 zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die
457 anstelle eines symbolischen Links verwendet werden können.
458
459 @subsection SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)
460
461 Kopieren Sie die Datei
462 @file{scripts/boot/system-v/lx-office-task-server} nach
463 @file{/etc/init.d/lx-office-task-server}. Passen Sie in der kopierten
464 Datei den Pfad zum Task-Server an (Zeile @code{DAEMON=....}). Binden
465 Sie das Script in den Boot-Prozess ein. Dies ist distributionsabhängig:
466
467 @itemize
468 @item Debian-basierende Systeme:
469 @*
470 @code{update-rc.d lx-office-task-server defaults
471 @*
472 # Nur bei Debian Squeeze und neuer:
473 @*
474 insserv lx-office-task-server}
475 @item OpenSuSE und Fedora Core:
476 @*
477 @code{chkconfig --add lx-office-task-server}
478 @end itemize
479
480 Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
481 @code{/etc/init.d/lx-office-task-server start}
482
483 @subsection Upstart-basierende Systeme (z.B. Ubuntu)
484
485 Kopieren Sie die Datei
486 @file{scripts/boot/upstart/lx-office-task-server.conf} nach
487 @file{/etc/init/lx-office-task-server.conf}. Passen Sie in der kopierten
488 Datei den Pfad zum Task-Server an (Zeile @code{exec ....}).
489
490 Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
491 @code{service lx-office-task-server start}
492
493 @node Prozesskontrolle
494 @section Wie der Task-Server gestartet und beendet wird
495
496 Der Task-Server wird wie folgt kontrolliert:
497
498 @code{./scripts/task_server.pl Befehl}
499
500 @code{Befehl} ist dabei eine der folgenden Optionen:
501
502 @itemize
503 @item @code{start} startet eine neue Instanz des Task-Servers. Die Prozess-ID wird innerhalb des @file{users}-Verzeichnisses abgelegt.
504 @item @code{stop} beendet einen laufenden Task-Server.
505 @item @code{restart} beendet und startet ihn neu.
506 @item @code{status} berichtet, ob der Task-Server läuft.
507 @end itemize
508
509 Der Task-Server wechselt beim Starten automatisch in das Lx-Office-Installationsverzeichnis.
510
511 Dieselben Optionen können auch für die SystemV-basierenden
512 Runlevel-Scripte benutzt werden (siehe oben).
513
514 @c ---------------------------------------------------------------
515
516 @node Benutzerauthentifizierung und Administratorpasswort
517 @chapter Benutzerauthentifizierung und Administratorpasswort
518
519 Informationen über die Einrichtung der Benutzerauthentifizierung, über
520 die Verwaltung von Gruppen und weitere Einstellungen
521
522 @menu
523 * Grundlagen zur Benutzerauthentifizierung:: Verfügbare Methoden, Name der Konfigurationsdatei
524 * Administratorpasswort:: Wo das Administratorpasswort gesetzt werden kann
525 * Authentifizierungsdatenbank:: Verbindungseinstellungen zur Authentifizierungsdatenbank
526 * Passwortüberprüfung:: Einstellungen zur Überprüfung der Benutzerpasswörter
527 * Name des Session-Cookies:: Ändern des Cookie-Namens bei Verwendung mehrerer Lx-Office-Installationen auf einem Server
528 * Anlegen der Authentifizierungsdatenbank:: Wie die Authentifizierungsdatenbank angelegt wird
529 @end menu
530
531 @c ---------------------------------------------------------------
532
533 @node Grundlagen zur Benutzerauthentifizierung
534 @section Grundlagen zur Benutzerauthentifizierung
535
536 Lx-Office verwaltet die Benutzerinformationen in einer Datenbank, die
537 im folgenden ``Authentifizierungsdatenbank'' genannt wird. Für jeden
538 Benutzer kann dort eine eigene Datenbank für die eigentlichen
539 Finanzdaten hinterlegt sein. Diese beiden Datenbanken können, müssen
540 aber nicht unterschiedlich sein.
541
542 Im einfachsten Fall gibt es für Lx-Office nur eine einzige Datenbank,
543 in der sowohl die Benutzerinformationen als auch die Daten abgelegt
544 werden.
545
546 Zusätzlich ermöglicht es Lx-Office, dass die Benutzerpasswörter
547 entweder gegen die Authentifizierungsdatenbank oder gegen einen
548 LDAP-Server überprüft werden.
549
550 Welche Art der Passwortüberprüfung Lx-Office benutzt und wie Lx-Office
551 die Authentifizierungsdatenbank erreichen kann, wird in der
552 Konfigurationsdatei @file{config/lx_office.conf} festgelegt. Diese
553 muss bei der Installation und bei einem Upgrade von einer Version vor
554 v2.6.0 angelegt werden. Eine Beispielkonfigurationsdatei
555 @file{config/lx_office.conf.default} existiert, die als Vorlage
556 benutzt werden kann.
557
558 @node Administratorpasswort
559 @section Administratorpasswort
560
561 Das Passwort, das zum Zugriff auf das Aministrationsinterface benutzt wird,
562 wird ebenfalls in dieser Datei gespeichert. Es kann auch nur dort und nicht
563 mehr im Administrationsinterface selber geändert werden. Der Parameter dazu
564 heißt @code{$self->@{admin_password@}}.
565
566 @node Authentifizierungsdatenbank
567 @section Authentifizierungsdatenbank
568
569 Die Verbindung zur Authentifizierungsdatenbank wird mit den Parametern
570 in @code{$self->@{DB_config@}} konfiguriert. Hier sind die folgenden
571 Parameter anzugeben:
572
573 @itemize
574 @item
575 @samp{host} -- Der Rechnername oder die IP-Adresse des Datenbankservers
576 @item
577 @samp{port} -- Die Portnummer des Datenbankservers, meist 5432
578 @item
579 @samp{db} -- Der Name der Authentifizierungsdatenbank
580 @item
581 @samp{user} -- Der Benutzername, mit dem sich Lx-Office beim Datenbankserver anmeldet (z.B. ``postgres'')
582 @item
583 @samp{password} -- Das Passwort für den Datenbankbenutzer
584 @end itemize
585
586 Die Datenbank muss noch nicht existieren. Lx-Office kann sie
587 automatisch anlegen (mehr dazu siehe unten).
588
589 @node Passwortüberprüfung
590 @section Passwortüberprüfung
591
592 Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen die
593 Authentifizierungsdatenbank und gegen einen externen LDAP- oder
594 Active-Directory-Server. Welche davon benutzt wird, regelt der
595 Parameter @code{$self->@{module@}}.
596
597 Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank
598 gespeichert werden, so muss der Parameter @code{$self->@{module@}} den
599 Wert @samp{DB} enthalten. In diesem Fall können sowohl der
600 Administrator als auch die Benutzer selber ihre Psaswörter in
601 Lx-Office ändern.
602
603 Soll hingegen ein externer LDAP- oder Active-Directory-Server benutzt
604 werden, so muss der Parameter @code{$self->@{module@}} auf @samp{LDAP}
605 gesetzt werden. In diesem Fall müssen zusätzliche Informationen über
606 den LDAP-Server in @code{$self->@{LDAP_config@}} angegeben werden:
607
608 @itemize
609 @item
610 @samp{host} -- Der Rechnername oder die IP-Adresse des LDAP- oder Active-Directory-Servers. Diese Angabe ist zwingend erforderlich.
611 @item
612 @samp{port} -- Die Portnummer des LDAP-Servers; meist 389.
613 @item
614 @samp{tls} -- Wenn Verbindungsverschlüsselung gewünscht ist, so diesen Wert auf @samp{1} setzen, andernfalls auf @samp{0} belassen
615 @item
616 @samp{attribute} -- Das LDAP-Attribut, in dem der Benutzername steht, den der Benutzer eingegeben hat. Für Active-Directory-Server
617   ist dies meist @samp{sAMAccountName}, für andere LDAP-Server hingegen @samp{uid}. Diese Angabe ist zwingend erforderlich.
618 @item
619 @samp{base_dn} -- Der Abschnitt des LDAP-Baumes, der durchsucht werden soll. Diese Angabe ist zwingend erforderlich.
620 @item
621 @samp{filter} -- Ein optionaler LDAP-Filter. Enthält dieser Filter das Wort @code{<%login%>}, so wird dieses durch den vom Benutzer
622   eingegebenen Benutzernamen ersetzt. Andernfalls wird der LDAP-Baum nach einem Element durchsucht, bei dem das oben angegebene Attribut
623   mit dem Benutzernamen identisch ist.
624 @item
625 @samp{bind_dn} und @samp{bind_password} -- Wenn der LDAP-Server eine Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist dies bei
626   Active-Directory-Servern der Fall), so kann diese hier angegeben werden. Für Active-Directory-Server kann als @samp{bind_dn} entweder eine
627   komplette LDAP-DN wie z.B. @samp{cn=Martin Mustermann,cn=Users,dc=firmendomain} auch nur der volle Name des Benutzers
628   eingegeben werden; in diesem Beispiel also @samp{Martin Mustermann}.
629 @end itemize
630
631 @node Name des Session-Cookies
632 @section Name des Session-Cookies
633
634 Sollen auf einem Server mehrere Lx-Office-Installationen aufgesetzt
635 werden, so müssen die Namen der Session-Cookies für alle
636 Installationen unterschiedlich sein. Der Name des Cookies wird mit dem
637 Parameter @code{$self->@{cookie_name@}} gesetzt.
638
639 Diese Angabe ist optional, wenn nur eine Installation auf dem Server
640 existiert.
641
642 @node Anlegen der Authentifizierungsdatenbank
643 @section Anlegen der Authentifizierungsdatenbank
644
645 Nachdem alle Einstellungen in @file{config/lx_office.conf}
646 vorgenommen wurden, muss Lx-Office die Authentifizierungsdatenbank
647 anlegen. Dieses geschieht automatisch, wenn Sie sich im
648 Administrationsmodul anmelden, das unter der folgenden URL erreichbar
649 sein sollte:
650
651 @uref{http://localhost/lx-erp/admin.pl}
652
653
654 @c ---------------------------------------------------------------
655
656 @node Benutzer- und Gruppenverwaltung
657 @chapter Benutzer- und Gruppenverwaltung
658
659 Nach der Installation müssen Benutzer, Gruppen und Datenbanken
660 angelegt werden.  Dieses geschieht im Administrationsmenü, das Sie
661 unter folgender URL finden:
662
663 @uref{http://localhost/lx-erp/admin.pl}
664
665 Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
666 @file{config/lx_office.conf} eingetragen haben.
667
668 @menu
669 * Zusammenhänge:: Übersicht über Benutzer, Gruppen, Berechtigungen und Datenbanken
670 * Datenbanken anlegen:: Hinweise zum Anlegen von Datenbanken
671 * Gruppen anlegen:: Hinweise zum Anlegen von Gruppen
672 * Benutzer anlegen:: Hinweise zum Anlegen von Benutzern
673 * Gruppenmitgliedschaften verwalten:: Wie man Gruppen Benutzer zuordnet
674 * Migration alter Installationen:: Automatische Übernahme bei Update von einer älteren Version
675 @end menu
676
677 @node Zusammenhänge
678 @section Zusammenhänge
679
680 Lx-Office verwendet eine Datenbank zum Speichern all seiner
681 Informationen wie Kundendaten, Artikel, Angebote, Rechnungen etc. Um
682 mit Lx-Office arbeiten zu können, muss eine Person einen
683 Benutzeraccount haben. Jedem Benutzeraccount wiederum wird genau eine
684 Datenbank zugewiesen, mit der dieser Benutzer arbeiten kann. Es ist
685 möglich und normal, dass mehreren Benutzern die selbe Datenbank
686 zugewiesen wird, sodass sie alle mit den selben Daten arbeiten können.
687
688 Die Basisdaten der Benutzer, die in der Administration eingegeben
689 werden können, werden in einer zweiten Datenbank gespeichert, der
690 bereits erwähnten Authentifizierungsdatenbank. Diese ist also den
691 Produktivdaten enthaltenden Datenbanken vorgeschaltet. Pro
692 Lx-Office-Installation gibt es nur eine Authentifizierungsdatenbank,
693 aber beliebig viele Datenbanken mit Firmendaten.
694
695 Lx-Office kann seinen Benutzern Zugriff auf bestimmte
696 Funktionsbereiche erlauben oder verbieten. Wird der Zugriff nicht
697 gestattet, so werden der entsprechenden Menüpunkte auch nicht
698 angezeigt. Diese Rechte werden ebenfalls in der
699 Authentifizierungsdatenbank gespeichert.
700
701 Um Rechte verteilen zu können, verwendet Lx-Office ein
702 Gruppen-Prinzip. Einer Gruppe kann der Zugriff auf bestimmte Bereiche
703 erlaubt werden. Ein Benutzer wiederum kann Mitglied in einer oder
704 mehrerer Gruppen sein. Der Benutzer hat Zugriff auf alle diejenigen
705 Funktionen, die mindestens einer Gruppe erlaubt sind, in der der
706 Benutzer Mitglied ist.
707
708 Die allgemeine Reihenfolge, in der Datenbanken, Gruppen und Benutzer
709 angelegt werden sollten, lautet:
710
711 @enumerate
712 @item
713 Datenbank anlegen
714 @item
715 Gruppen anlegen
716 @item
717 Benutzer anlegen
718 @item
719 Benutzer den Gruppen zuordnen
720 @end enumerate
721
722 @node Datenbanken anlegen
723 @section Datenbanken anlegen
724
725 Zuerst muss eine Datenbank angelegt werden. Verwenden Sie für den
726 Datenbankzugriff den vorhin angelegten Benutzer (in unseren Beispielen
727 ist dies @samp{lxoffice}).
728
729 Wenn Sie für die Lx-Office-Installation nicht den europäischen
730 Schriftsatz ISO-8859-15 sondern UTF-8 (Unicode) benutzen wollen, so
731 müssen Sie vor dem Anlegen der Datenbank in der Datei
732 @file{config/lx_office.conf} die Variable @code{dbcharset} im
733 Abschnitt @code{system} auf den Wert @samp{UTF-8} setzen. Zusätzlich
734 muss beim Anlegen der Datenbank @samp{UTF-8 Unicode} als Schriftsatz
735 ausgewählt werden.
736
737 Bitte beachten Sie, dass alle Datenbanken den selben Zeichensatz
738 verwenden müssen, da diese Einstellungen momentan global in Lx-Office
739 vorgenommen wird und nicht nach Datenbank unterschieden werden
740 kann. Auch die Authentifizierungsdatenbank muss mit diesem Zeichensatz
741 angelegt worden sein.
742
743 @node Gruppen anlegen
744 @section Gruppen anlegen
745
746 Eine Gruppe wird in der Gruppenverwaltung angelegt. Ihr muss ein Name
747 gegeben werden, eine Beschreibung ist hingegen optional. Nach dem
748 Anlegen können Sie die verschiedenen Bereiche wählen, auf die
749 Mitglieder dieser Gruppe Zugriff haben sollen.
750
751 Benutzergruppen sind unabhängig von Datenbanken, da sie in der
752 Authentifizierungsdatenbank gespeichert werden. Sie gelten für alle
753 Datenbanken, die in dieser Installation verwaltet werden.
754
755 @node Benutzer anlegen
756 @section Benutzer anlegen
757
758 Beim Anlegen von Benutzern werden für viele Parameter
759 Standardeinstellungen vorgenommen, die den Gepflogenheiten des
760 deutschen Raumes entsprechen.
761
762 Zwingend anzugeben sind der Loginname sowie die komplette
763 Datenbankkonfiguration. Wenn die Passwortauthentifizierung über die
764 Datenbank eingestellt ist, so kann hier auch das Benutzerpasswort
765 gesetzt bzw. geändert werden. Ist hingegen die LDAP-Authentifizierung
766 aktiv, so ist das Passwort-Feld deaktiviert.
767
768 In der Datenbankkonfiguration müssen die Zugriffsdaten einer der eben
769 angelegten Datenbanken eingetragen werden.
770
771 @node Gruppenmitgliedschaften verwalten
772 @section Gruppenmitgliedschaften verwalten
773
774 Nach dem Anlegen von Benutzern und Gruppen müssen Benutzer den Gruppen
775 zugewiesen werden. Dazu gibt es zwei Möglichkeiten:
776
777 @enumerate
778 @item
779 In der Gruppenverwaltung wählt man eine Gruppe aus. Im folgenden
780 Dialog kann man dann einzeln die Benutzer der Gruppe hinzufügen.
781 @item
782 In der Gruppenverwaltung wählt man das Tool zur Verwaltung der
783 Gruppenmitgliedschaft. Hier wird eine Matrix angezeigt, die alle im
784 System angelegten Gruppen und Benutzer enthält. Durch Setzen der
785 Häkchen wird der Benutzer in der ausgewählten Zeile der Gruppe in der
786 ausgewählten Spalte hinzugefügt.
787 @end enumerate
788
789 @node Migration alter Installationen
790 @section Migration alter Installationen
791
792 Wenn Lx-Office 2.6.2 über eine ältere Version installiert wird, in der
793 die Benutzerdaten noch im Dateisystem im Verzeichnis @code{users}
794 verwaltet wurden, so bietet Lx-Office die Möglichkeit, diese
795 Benutzerdaten automatisch in die Authentifizierungsdatenbank zu
796 übernehmen. Dies geschieht, wenn man sich nach dem Update der
797 Installation das erste Mal im Administrationsbereich anmeldet. Findet
798 Lx-Office die Datei @code{users/members}, so wird der
799 Migrationsprozess gestartet.
800
801 Der Migrationsprozess ist nahezu vollautomatisch. Alle Benutzerdaten
802 können übernommen werden. Nach den Benutzerdaten bietet Lx-Office noch
803 die Möglichkeit an, dass automatisch eine Benutzergruppe angelegt
804 wird. Dieser Gruppe wird Zugriff auf alle Funktionen von Lx-Office
805 gewährt. Alle migrierten Benutzern werden Mitglied in dieser
806 Gruppe. Damit wird das Verhalten von Lx-Office bis Version 2.4.3
807 inklusive wiederhergestellt, und die Benutzer können sich sofort
808 wieder anmelden und mit dem System arbeiten.
809
810 @c ---------------------------------------------------------------
811
812 @node OpenDocument-Vorlagen
813 @chapter OpenDocument-Vorlagen
814
815 Lx-Office unterstützt die Verwendung von Vorlagen im
816 OpenDocument-Format, wie es OpenOffice.org ab Version 2
817 erzeugt. Lx-Office kann dabei sowohl neue OpenDocument-Dokumente als
818 auch aus diesen direkt PDF-Dateien erzeugen.  Um die Unterstützung von
819 OpenDocument-Vorlagen zu aktivieren muss in der Datei
820 @file{config/lx_office.conf} die Variable @code{opendocument} im
821 Abschnitt @code{print_templates} auf @samp{1} stehen.  Dieses ist die
822 Standardeinstellung.
823
824 Weiterhin muss in der Datei @file{config/lx_office.conf} die Variable
825 @code{dbcharset} im Abschnitt @code{system} auf die Zeichenkodierung
826 gesetzt werden, die auch bei der Speicherung der Daten in der
827 Datenbank verwendet wird. Diese ist in den meisten Fällen "UTF-8".
828
829 Während die Erzeugung von reinen OpenDocument-Dateien keinerlei
830 weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF
831 OpenOffice.org benötigt. Soll dieses Feature genutzt werden, so muss
832 neben OpenOffice.org ab Version 2 auch der ``X virtual frame buffer''
833 (xvfb) installiert werden.  Bei Debian ist er im Paket ``xvfb''
834 enthalten. Andere Distributionen enthalten ihn in anderen Paketen.
835
836 Nach der Installation müssen in der Datei @file{config/lx_config.conf}
837 zwei weitere Variablen angepasst werden: @code{openofficeorg_writer}
838 muss den vollständigen Pfad zur OpenOffice.org Writer-Anwendung
839 enthalten. @code{xvfb} muss den Pfad zum ``X virtual frame buffer''
840 enthalten. Beide stehen im Abschnitt @code{applications}.
841
842 Zusätzlich gibt es zwei verschiedene Arten, wie Lx-Office mit
843 OpenOffice kommuniziert. Die erste Variante, die benutzt wird, wenn
844 die Variable @code{$openofficeorg_daemon} gesetzt ist, startet ein
845 OpenOffice, das auch nach der Umwandlung des Dokumentes gestartet
846 bleibt. Bei weiteren Umwandlungen wird dann diese laufende Instanz
847 benutzt. Der Vorteil ist, dass die Zeit zur Umwandlung deutlich
848 reduziert wird, weil nicht für jedes Dokument ein OpenOffice gestartet
849 werden muss. Der Nachteil ist, dass diese Methode Python und die
850 Python-UNO-Bindings benötigt, die Bestandteil von OpenOffice 2 sind.
851
852 Ist @code{$openofficeorg_daemon} nicht gesetzt, so wird für jedes
853 Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe
854 eines Makros durchgeführt. Dieses Makro muss in der Dokumentenvorlage
855 enthalten sein und ``Standard.Conversion.ConvertSelfToPDF()''
856 heißen. Die Beispielvorlage @samp{templates/German-invoice.odt}
857 enthält ein solches Makro, das in jeder anderen Dokumentenvorlage
858 ebenfalls enthalten sein muss.
859
860 Als letztes muss herausgefunden werden, welchen Namen OpenOffice.org
861 Writer dem Verzeichnis mit den Benutzereinstellungen gibt. Unter
862 Debian ist dies momentan @code{~/.openoffice.org2}. Sollte der Name
863 bei Ihrer OpenOffice.org-Installation anders sein, so muss das
864 Verzeichnis @code{users/.openoffice.org2} entsprechend umbenannt
865 werden. Ist der Name z.B. einfach nur @code{.openoffice}, so wäre
866 folgender Befehl auszuführen:
867
868 @code{mv users/.openoffice.org2 users/.openoffice}
869
870 Dieses Verzeichnis, wie auch das komplette @code{users}-Verzeichnis, muss vom
871 Webserver beschreibbar sein. Dieses wurde bereits erledigt
872 (@pxref{Manuelle Installation des Programmpaketes}), kann aber erneut überprüft
873 werden, wenn die Konvertierung nach PDF fehlschlägt.
874
875 @c ---------------------------------------------------------------
876
877 @node Lx-Office ERP verwenden
878 @chapter Lx-Office ERP verwenden
879
880 Nach erfolgreicher Installation ist der Loginbildschirm unter
881 folgender URL erreichbar:
882
883 @uref{http://localhost/lx-office-erp/login.pl}
884
885 Die Administrationsseite erreichen Sie unter:
886
887 @uref{http://localhost/lx-office-erp/admin.pl}
888
889 @bye