067cfc09ce37f95abf56af77e309cfd79007406c
[kivitendo-erp.git] / doc / INSTALL.texi
1 \input texinfo   @c -*-texinfo-*-
2 @c %**start of header
3 @documentencoding UTF-8
4 @setfilename INSTALL.info
5 @settitle Lx-Office Installationsanleitung
6 @c %**end of header
7
8 @c @copying
9 @c Die Lx-Office Installationsanleitung kann beliebig weiter verwendet
10 @c werden.
11 @c @end copying
12
13 @titlepage
14 @title Lx-Office Installationsanleitung
15 @end titlepage
16
17 @contents
18
19 @ifnottex
20 @node Top
21 @top Inhalt der Anleitung
22 @end ifnottex
23
24 @menu
25 * Aktuelle Hinweise:: Andere Informationsquellen als diese Anleitung
26 * Benötigte Software und Pakete:: Vorraussetzungen zum Betrieb von Lx-Office
27 * Installation des Programmpaketes:: Installationsort, Berechtigungen
28 * Anpassung der PostgreSQL-Konfiguration:: Verschiedene Aspekte der Datenbankkonfiguration
29 * Apache-Konfiguration:: Einrichtung eines Aliases und Optionen für das Ausführen von CGI-Scripten
30 * Benutzerauthentifizierung und Administratorpasswort:: Einrichtung der Authentifizierungsdatenbank und der Passwortüberprüfung
31 * Benutzer- und Gruppenverwaltung:: Einrichten von Benutzern, Gruppen und Datenbanken
32 * OpenDocument-Vorlagen:: Wichtige Hinweise zum Erstellen und zur Verwendung von Dokumentenvorlagen
33 * Lx-Office ERP verwenden:: Die URLs zur Anmeldung und Administration
34 @end menu
35
36 @c ---------------------------------------------------------------
37
38 @node Aktuelle Hinweise
39 @chapter Aktuelle Hinweise
40
41 Aktuelle Installations- und Konfigurationshinweise gibt es:
42
43 @itemize
44 @item
45 auf der Lx-Office Homepage unter @uref{http://lx-office.org/index.php?id=dokumentation}
46
47 @item
48 im Lx-Office-Wiki unter Dokumentation (@uref{http://wiki.lx-office.org/index.php/Lx-Office_ERP})
49
50 @item
51 im Lx-Office-Forum: @uref{http://www.lx-office.org/forum/}
52 @end itemize
53
54 @c ---------------------------------------------------------------
55
56 @node Benötigte Software und Pakete
57 @chapter Benötigte Software und Pakete
58
59 Zum Betrieb von Lx-Office werden zwingend ein Webserver (meist Apache) und ein Datenbankserver (PostgreSQL) benötigt.
60
61 Zusätzlich benötigt Lx-Office die folgenden Perl-Pakete, die nicht Bestandteil einer Standard-Perl-Installation sind:
62
63 @itemize
64 @item
65 Archive::Zip
66 @item
67 Class::Accessor
68 @item
69 CGI::Ajax
70 @item
71 DBI
72 @item
73 DBD::Pg
74 @item
75 Email::Address
76 @item
77 IO::Wrap (aus dem Paket IO::Stringy)
78 @item
79 List::MoreUtils
80 @item
81 PDF::API2
82 @item
83 Template
84 @item
85 Text::CSV_XS
86 @item
87 Text::Iconv
88 @item
89 URI
90 @item
91 XML::Writer
92 @item
93 YAML
94 @end itemize
95
96 Gegenüber Version 2.6.0 sind zu dieser Liste 2 Pakete hinzugekommen, @code{URI}
97 und @code{XML::Writer} sind notwendig. Ohne startet Lx-Office nicht.
98
99 @code{Email::Address} und @code{List::MoreUtils} sind schon länger feste
100 Abhängigkeiten, wurden aber bisher mit Lx-Office mitgeliefert.  Beide sind auch
101 in 2.6.1 weiterhin mit ausgeliefert, wurden in einer zukünftigen Version aber
102 aus dem Paket entfernt werden. Es wird empfohlen diese Module zusammen mit den
103 anderen als Bibliotheken zu installieren.
104
105 @code{CGI::Ajax} ist nach wie vor in einer modifizierten Version mitgeliefert
106 und braucht nicht nachinstalliert werden.
107
108 Die zu installierenden Pakete können in den verschiedenen Distributionen unterschiedlich heißen.
109
110 Für Debian oder Ubuntu benötigen Sie diese Pakete:
111
112 @code{apache postgresql libarchive-zip-perl libclass-accessor-perl libdbi-perl libdbd-pg-perl libpg-perl libemail-address-perl libio-stringy-perl liblist-moreutils-perl libpdf-api2-perl libtemplate-perl libtext-csv-xs-perl libtext-iconv-perl lib-uriperl libxml-writer-perl libyaml-perl}
113
114 Für Fedora Core benötigen Sie diese Pakete:
115
116 @code{httpd postgresql-server perl-Class-Accessor perl-DBI perl-DBD-Pg perl-Email-Address perl-IO-stringy perl-List-MoreUtils perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer perl-YAML}
117
118 Für OpenSuSE benötigen Sie diese Pakete:
119
120 @code{apache2 postgresql-server perl-Archive-Zip perl-Class-Accessor perl-DBI perl-DBD-Pg perl-MailTools perl-IO-stringy perl-List-MoreUtils perl-PDF-API2 perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer perl-YAML}
121
122 Lx-Office enthält ein Script, mit dem überprüft werden kann, ob alle
123 benötigten Perl-Module installiert sind. Der Aufruf lautet wie folgt:
124
125 @code{./scripts/installation_check.pl}
126
127 @c ---------------------------------------------------------------
128
129 @node Installation des Programmpaketes
130 @chapter Installation des Programmpaketes
131
132 Die Lx-Office ERP Installationsdatei (lxoffice-erp-2.6.1beta1.tgz) wird im
133 Dokumentenverzeichnis des Webservers (z.B. @code{/var/www/html/},
134 @code{/srv/www/htdocs} oder @code{/var/www/}) entpackt:
135
136 @code{cd /var/www
137 @*
138 tar xvzf lxoffice-erp-2.6.1beta1.tgz}
139
140 Verändern Sie evtl. noch den Namen des Verzeichnisses mit
141
142 @code{mv lxoffice-erp/ lx-erp/}
143
144 Alternativ können Sie auch einen Alias in der Webserverkonfiguration
145 benutzen, um auf das tatsächliche Installationsverzeichnis zu
146 verweisen.
147
148 Die Verzeichnisse @code{users}, @code{spool} und @code{webdav} müssen
149 für den Benutzer beschreibbar sein, unter dem der Webserver läuft. Die
150 restlichen Dateien müssen für diesen Benutzer lesbar sein. Der
151 Benutzername ist bei verschiedenen Distributionen unterschiedlich
152 (z.B. bei Debian/Ubuntu @code{www-data}, bei Fedora core @code{apache}
153 oder bei OpenSuSE @code{wwwrun}).
154
155 Der folgende Befehl ändert den Besitzer für die oben genannten
156 Verzeichnisse auf einem Debian/Ubuntu-System:
157
158 @code{chown -R www-data lx-office-erp/users lx-office-erp/spool lx-office-erp/webdav}
159
160 Weiterhin muss der Webserver-Benutzer im Verzeichnis @code{templates} Verzeichnisse für
161 jeden neuen Benutzer, der in lx-office angelegt wird, anlegen dürfen:
162
163 @code{chgrp www-data lx-office-erp/templates; chmod g+w lx-office-erp/templates}
164
165
166 @c ---------------------------------------------------------------
167
168 @node Anpassung der PostgreSQL-Konfiguration
169 @chapter Anpassung der PostgreSQL-Konfiguration
170
171 PostgreSQL muss auf verschiedene Weisen angepasst werden.
172
173 @menu
174 * Zeichensätze/die Verwendung von UTF-8:: Was bei der Verwendung von UTF-8 zu beachten ist
175 * Änderungen an Konfigurationsdateien:: Anpassungen für Anmeldung am Server und Featureunterstützung
176 * Erweiterung für servergespeicherte Prozeduren:: Lx-Office benutzt servergespeicherte Prozeduren
177 * Datenbankbenutzer anlegen:: Um den Zugriff besser zu reglementieren
178 @end menu
179
180 @node Zeichensätze/die Verwendung von UTF-8
181 @section Zeichensätze/die Verwendung von UTF-8
182
183 Lx-Office kann komplett mit UTF-8 als Zeichensatz verwendet
184 werden. Dabei gibt es zwei Punkte zu beachten: PostgreSQL muss in
185 Version 8.0 oder neuer benutzt werden, und der
186 PostgreSQL-Datenbankcluster muss ebenfalls mit UTF-8 als Locale
187 angelegt worden sein.
188
189 Dieses ist kann überprüft werden: ist das Encoding der Datenbank
190 ``template1'' ``UTF8'', so kann auch Lx-Office mit UTF-8 betrieben
191 werden. Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
192 UTF-8-Encoding anzulegen und diesen zu verwenden. Unter Debian und
193 Ubuntu kann dies z.B. mit dem folgenden Befehl getan werden:
194
195 @code{pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 8.2 clustername}
196
197 Die Datenbankversionsnummer muss an die tatsächlich verwendete
198 Versionsnummer angepasst werden.
199
200 Unter anderen Distributionen gibt es ähnliche Methoden.
201
202 Wurde PostgreSQL nicht mit UTF-8 als Encoding initialisiert und ist
203 ein Neuanlegen eines weiteren Clusters nicht möglich, so kann
204 Lx-Office mit ISO-8859-15 als Encoding betrieben werden.
205
206 Das Encoding einer Datenbank kann in @code{psql} mit @code{\l} geprüft werden.
207
208 @node Änderungen an Konfigurationsdateien
209 @section Änderungen an Konfigurationsdateien
210
211 In der Datei @code{postgresql.conf}, die je nach Distribution in
212 verschiedenen Verzeichnissen liegen kann
213 (z.B. @code{/var/lib/pgsql/data/} oder @code{/etc/postgresql/}, muss
214 sichergestellt werden, dass TCP/IP-Verbindungen aktiviert sind. Für
215 PostgreSQL vor Version v8.0 lautete dieser Parameter
216
217 @code{TCPIP_SOCKET = 1}
218
219 Ab v8.0 wird das Verhalten hingegen über den neuen Parameter
220 @code{listen_address} gesteuert. Laufen PostgreSQL und Lx-Office auf
221 demselben Rechner, so kann dort der Wert @code{localhost} verwendet
222 werden. Andernfalls müssen Datenbankverbindungen auch von anderen
223 Rechnern aus zugelassen werden, was mit dem Wert \@code{*} geschieht.
224
225 In der Datei @code{pg_hba.conf}, die im gleichen Verzeichnis wie die
226 @code{postgresql.conf} zu finden sein sollte, müssen die
227 Berichtigungen für den Zugriff geändert werden. Hier gibt es mehrere
228 Möglichkeiten. Eine besteht darin, lokale Verbindungen immer
229 zuzulassen
230
231 @code{local all all trust
232 @*
233 host all all 127.0.0.1 255.0.0.0 trust}
234
235 Besser ist es, für eine bestimmte Datenbank Zugriff nur per Passwort
236 zuzulassen. Beispielsweise:
237
238 @code{local   all         lxoffice                                           password
239 @*
240 host    all         lxoffice      127.0.0.1         255.255.255.255    password}
241
242 @c ---------------------------------------------------------------
243
244 @node Erweiterung für servergespeicherte Prozeduren
245 @section Erweiterung für servergespeicherte Prozeduren
246
247 In der Datenbank @code{template1} muss die Unterstützung für
248 servergespeicherte Prozeduren eingerichet werden. Melden Sie sich
249 dafür als Benutzer ``postgres'' an der Datenbank an, und führen Sie
250 die folgenden Kommandos aus:
251
252 @code{create function plpgsql_call_handler () returns opaque as '/usr/lib/pgsql/plpgsql.so' language 'c';
253 @*
254 create language 'plpgsql' handler plpgsql_call_handler
255 lancompiler 'pl/pgsql';}
256
257 Bitte beachten Sie, dass der Pfad zur Datei @code{plpgsql.so} von
258 Distribution zu Distribution verschiedlich sein kann. Bei
259 Debian/Ubuntu befindet sie sich unter
260 @code{/usr/lib/postgresql/lib/plpgsql.so}, bei Ubuntu 9.10 unter @code{/usr/lib/postgresql/8.4/lib/plpgsql.so}.
261
262
263 @c ---------------------------------------------------------------
264
265 @node Datenbankbenutzer anlegen
266 @section Datenbankbenutzer anlegen
267
268 Wenn Sie nicht den Datenbanksuperuser ``postgres'' zum Zugriff
269 benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer
270 anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen können:
271
272 @code{su - postgres
273 @*
274 createuser -d -P lxoffice}
275
276 Wenn Sie später einen Datenbankzugriff konfigurieren, verändern Sie
277 den evtl. voreingestellten Benutzer ``postgres'' auf ``lxoffice''
278 bzw. den hier gewählten Benutzernamen.
279
280 @c ---------------------------------------------------------------
281
282 @node Apache-Konfiguration
283 @chapter Apache-Konfiguration
284
285 Der Zugriff auf das Programmverzeichnis muss in der Apache
286 Webserverkonfigurationsdatei @code{httpd.conf} eingestellt
287 werden. Fügen Sie den folgenden Abschnitt dieser Datei oder einer
288 anderen Datei hinzu, die beim Starten des Webservers eingelesen wird:
289
290 @code{@*
291 AddHandler cgi-script .pl
292 @*
293 Alias /lx-erp/ /var/www/lx-erp/
294 @*
295 <Directory /var/www/lx-erp>
296 @*
297   Options ExecCGI Includes FollowSymlinks
298 @*
299 </Directory>
300 @*
301 @*
302 <Directory /var/www/lx-erp/users>
303 @*
304   Order Deny,Allow
305 @*
306   Deny from All
307 @*
308 </Directory>
309 @*
310 }
311
312 Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher das
313 Lx-Office-Archiv entpacket haben.
314
315 Achtung: Vor den einzelnen Optionen muss bei einigen Distributionen ein
316 Plus @samp{+} gesetzt werden.
317
318 Auf einigen Webservern werden manchmal die Grafiken und Style-Sheets
319 nicht ausgeliefert. In solchen Fällen hat es oft geholfen, die
320 folgende Option in die Konfiguration aufzunehmen:
321
322 @code{EnableSendfile Off}
323
324 @c ---------------------------------------------------------------
325
326 @node Benutzerauthentifizierung und Administratorpasswort
327 @chapter Benutzerauthentifizierung und Administratorpasswort
328
329 Informationen über die Einrichtung der Benutzerauthentifizierung, über
330 die Verwaltung von Gruppen und weitere Einstellungen
331
332 @menu
333 * Grundlagen zur Benutzerauthentifizierung:: Verfügbare Methoden, Name der Konfigurationsdatei
334 * Administratorpasswort:: Wo das Administratorpasswort gesetzt werden kann
335 * Authentifizierungsdatenbank:: Verbindungseinstellungen zur Authentifizierungsdatenbank
336 * Passwortüberprüfung:: Einstellungen zur Überprüfung der Benutzerpasswörter
337 * Name des Session-Cookies:: Ändern des Cookie-Namens bei Verwendung mehrerer Lx-Office-Installationen auf einem Server
338 * Anlegen der Authentifizierungsdatenbank:: Wie die Authentifizierungsdatenbank angelegt wird
339 @end menu
340
341 @c ---------------------------------------------------------------
342
343 @node Grundlagen zur Benutzerauthentifizierung
344 @section Grundlagen zur Benutzerauthentifizierung
345
346 Lx-Office verwaltet die Benutzerinformationen in einer Datenbank, die
347 im folgenden ``Authentifizierungsdatenbank'' genannt wird. Für jeden
348 Benutzer kann dort eine eigene Datenbank für die eigentlichen
349 Finanzdaten hinterlegt sein. Diese beiden Datenbanken können, müssen
350 aber nicht unterschiedlich sein.
351
352 Im einfachsten Fall gibt es für Lx-Office nur eine einzige Datenbank,
353 in der sowohl die Benutzerinformationen als auch die Daten abgelegt
354 werden.
355
356 Zusätzlich ermöglicht es Lx-Office, dass die Benutzerpasswörter
357 entweder gegen die Authentifizierungsdatenbank oder gegen einen
358 LDAP-Server überprüft werden.
359
360 Welche Art der Passwortüberprüfung Lx-Office benutzt und wie Lx-Office
361 die Authentifizierungsdatenbank erreichen kann, wird in der
362 Konfigurationsdatei @code{config/authentication.pl} festgelegt. Diese
363 muss bei der Installation und bei einem Upgrade von einer Version vor
364 v2.6.0 angelegt werden. Eine Beispielkonfigurationsdatei
365 @code{config/authentication.pl.default} existiert, die als Vorlage
366 benutzt werden kann.
367
368 @node Administratorpasswort
369 @section Administratorpasswort
370
371 Das Passwort, das zum Zugriff auf das Aministrationsinterface benutzt wird,
372 wird ebenfalls in dieser Datei gespeichert. Es kann auch nur dort und nicht
373 mehr im Administrationsinterface selber geändert werden. Der Parameter dazu
374 heißt @code{$self->@{admin_password@}}.
375
376 @node Authentifizierungsdatenbank
377 @section Authentifizierungsdatenbank
378
379 Die Verbindung zur Authentifizierungsdatenbank wird mit den Parametern
380 in @code{$self->@{DB_config@}} konfiguriert. Hier sind die folgenden
381 Parameter anzugeben:
382
383 @itemize
384 @item
385 @samp{host} -- Der Rechnername oder die IP-Adresse des Datenbankservers
386 @item
387 @samp{port} -- Die Portnummer des Datenbankservers, meist 5432
388 @item
389 @samp{db} -- Der Name der Authentifizierungsdatenbank
390 @item
391 @samp{user} -- Der Benutzername, mit dem sich Lx-Office beim Datenbankserver anmeldet (z.B. ``postgres'')
392 @item
393 @samp{password} -- Das Passwort für den Datenbankbenutzer
394 @end itemize
395
396 Die Datenbank muss noch nicht existieren. Lx-Office kann sie
397 automatisch anlegen (mehr dazu siehe unten).
398
399 @node Passwortüberprüfung
400 @section Passwortüberprüfung
401
402 Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen die
403 Authentifizierungsdatenbank und gegen einen externen LDAP- oder
404 Active-Directory-Server. Welche davon benutzt wird, regelt der
405 Parameter @code{$self->@{module@}}.
406
407 Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank
408 gespeichert werden, so muss der Parameter @code{$self->@{module@}} den
409 Wert @samp{DB} enthalten. In diesem Fall können sowohl der
410 Administrator als auch die Benutzer selber ihre Psaswörter in
411 Lx-Office ändern.
412
413 Soll hingegen ein externer LDAP- oder Active-Directory-Server benutzt
414 werden, so muss der Parameter @code{$self->@{module@}} auf @samp{LDAP}
415 gesetzt werden. In diesem Fall müssen zusätzliche Informationen über
416 den LDAP-Server in @code{$self->@{LDAP_config@}} angegeben werden:
417
418 @itemize
419 @item
420 @samp{host} -- Der Rechnername oder die IP-Adresse des LDAP- oder Active-Directory-Servers. Diese Angabe ist zwingend erforderlich.
421 @item
422 @samp{port} -- Die Portnummer des LDAP-Servers; meist 389.
423 @item
424 @samp{tls} -- Wenn Verbindungsverschlüsselung gewünscht ist, so diesen Wert auf @samp{1} setzen, andernfalls auf @samp{0} belassen
425 @item
426 @samp{attribute} -- Das LDAP-Attribut, in dem der Benutzername steht, den der Benutzer eingegeben hat. Für Active-Directory-Server
427   ist dies meist @samp{sAMAccountName}, für andere LDAP-Server hingegen @samp{uid}. Diese Angabe ist zwingend erforderlich.
428 @item
429 @samp{base_dn} -- Der Abschnitt des LDAP-Baumes, der durchsucht werden soll. Diese Angabe ist zwingend erforderlich.
430 @item
431 @samp{filter} -- Ein optionaler LDAP-Filter. Enthält dieser Filter das Wort @code{<%login%>}, so wird dieses durch den vom Benutzer
432   eingegebenen Benutzernamen ersetzt. Andernfalls wird der LDAP-Baum nach einem Element durchsucht, bei dem das oben angegebene Attribut
433   mit dem Benutzernamen identisch ist.
434 @item
435 @samp{bind_dn} und @samp{bind_password} -- Wenn der LDAP-Server eine Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist dies bei
436   Active-Directory-Servern der Fall), so kann diese hier angegeben werden. Für Active-Directory-Server kann als @samp{bind_dn} entweder eine
437   komplette LDAP-DN wie z.B. @samp{cn=Martin Mustermann,cn=Users,dc=firmendomain} auch nur der volle Name des Benutzers
438   eingegeben werden; in diesem Beispiel also @samp{Martin Mustermann}.
439 @end itemize
440
441 @node Name des Session-Cookies
442 @section Name des Session-Cookies
443
444 Sollen auf einem Server mehrere Lx-Office-Installationen aufgesetzt
445 werden, so müssen die Namen der Session-Cookies für alle
446 Installationen unterschiedlich sein. Der Name des Cookies wird mit dem
447 Parameter @code{$self->@{cookie_name@}} gesetzt.
448
449 Diese Angabe ist optional, wenn nur eine Installation auf dem Server
450 existiert.
451
452 @node Anlegen der Authentifizierungsdatenbank
453 @section Anlegen der Authentifizierungsdatenbank
454
455 Nachdem alle Einstellungen in @code{config/authentication.pl}
456 vorgenommen wurden, muss Lx-Office die Authentifizierungsdatenbank
457 anlegen. Dieses geschieht automatisch, wenn Sie sich im
458 Administrationsmodul anmelden, das unter der folgenden URL erreichbar
459 sein sollte:
460
461 @uref{http://localhost/lx-erp/admin.pl}
462
463
464 @c ---------------------------------------------------------------
465
466 @node Benutzer- und Gruppenverwaltung
467 @chapter Benutzer- und Gruppenverwaltung
468
469 Nach der Installation müssen Benutzer, Gruppen und Datenbanken
470 angelegt werden.  Dieses geschieht im Administrationsmenü, das Sie
471 unter folgender URL finden:
472
473 @uref{http://localhost/lx-erp/admin.pl}
474
475 Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
476 @code{config/authentication.pl} eingetragen haben.
477
478 @menu
479 * Zusammenhänge:: Übersicht über Benutzer, Gruppen, Berechtigungen und Datenbanken
480 * Datenbanken anlegen:: Hinweise zum Anlegen von Datenbanken
481 * Gruppen anlegen:: Hinweise zum Anlegen von Gruppen
482 * Benutzer anlegen:: Hinweise zum Anlegen von Benutzern
483 * Gruppenmitgliedschaften verwalten:: Wie man Gruppen Benutzer zuordnet
484 * Migration alter Installationen:: Automatische Übernahme bei Update von einer älteren Version
485 @end menu
486
487 @node Zusammenhänge
488 @section Zusammenhänge
489
490 Lx-Office verwendet eine Datenbank zum Speichern all seiner
491 Informationen wie Kundendaten, Artikel, Angebote, Rechnungen etc. Um
492 mit Lx-Office arbeiten zu können, muss eine Person einen
493 Benutzeraccount haben. Jedem Benutzeraccount wiederum wird genau eine
494 Datenbank zugewiesen, mit der dieser Benutzer arbeiten kann. Es ist
495 möglich und normal, dass mehreren Benutzern die selbe Datenbank
496 zugewiesen wird, sodass sie alle mit den selben Daten arbeiten können.
497
498 Die Basisdaten der Benutzer, die in der Administration eingegeben
499 werden können, werden in einer zweiten Datenbank gespeichert, der
500 bereits erwähnten Authentifizierungsdatenbank. Diese ist also den
501 Produktivdaten enthaltenden Datenbanken vorgeschaltet. Pro
502 Lx-Office-Installation gibt es nur eine Authentifizierungsdatenbank,
503 aber beliebig viele Datenbanken mit Firmendaten.
504
505 Lx-Office kann seinen Benutzern Zugriff auf bestimmte
506 Funktionsbereiche erlauben oder verbieten. Wird der Zugriff nicht
507 gestattet, so werden der entsprechenden Menüpunkte auch nicht
508 angezeigt. Diese Rechte werden ebenfalls in der
509 Authentifizierungsdatenbank gespeichert.
510
511 Um Rechte verteilen zu können, verwendet Lx-Office ein
512 Gruppen-Prinzip. Einer Gruppe kann der Zugriff auf bestimmte Bereiche
513 erlaubt werden. Ein Benutzer wiederum kann Mitglied in einer oder
514 mehrerer Gruppen sein. Der Benutzer hat Zugriff auf alle diejenigen
515 Funktionen, die mindestens einer Gruppe erlaubt sind, in der der
516 Benutzer Mitglied ist.
517
518 Die allgemeine Reihenfolge, in der Datenbanken, Gruppen und Benutzer
519 angelegt werden sollten, lautet:
520
521 @enumerate
522 @item
523 Datenbank anlegen
524 @item
525 Gruppen anlegen
526 @item
527 Benutzer anlegen
528 @item
529 Benutzer den Gruppen zuordnen
530 @end enumerate
531
532 @node Datenbanken anlegen
533 @section Datenbanken anlegen
534
535 Zuerst muss eine Datenbank angelegt werden. Verwenden Sie für den
536 Datenbankzugriff den vorhin angelegten Benutzer (in unseren Beispielen
537 ist dies @samp{lxoffice}).
538
539 Wenn Sie für die Lx-Office-Installation nicht den europäischen
540 Schriftsatz ISO-8859-15 sondern UTF-8 (Unicode) benutzen wollen, so
541 müssen Sie vor dem Anlegen der Datenbank in der Datei
542 @code{config/lx-erp.conf} die Variable @code{$dbcharset} auf den Wert
543 @samp{UTF-8} setzen. Zusätzlich muss beim Anlegen der Datenbank
544 @samp{UTF-8 Unicode} als Schriftsatz ausgewählt werden.
545
546 Bitte beachten Sie, dass alle Datenbanken den selben Zeichensatz
547 verwenden müssen, da diese Einstellungen momentan global in Lx-Office
548 vorgenommen wird und nicht nach Datenbank unterschieden werden
549 kann. Auch die Authentifizierungsdatenbank muss mit diesem Zeichensatz
550 angelegt worden sein.
551
552 @node Gruppen anlegen
553 @section Gruppen anlegen
554
555 Eine Gruppe wird in der Gruppenverwaltung angelegt. Ihr muss ein Name
556 gegeben werden, eine Beschreibung ist hingegen optional. Nach dem
557 Anlegen können Sie die verschiedenen Bereiche wählen, auf die
558 Mitglieder dieser Gruppe Zugriff haben sollen.
559
560 Benutzergruppen sind unabhängig von Datenbanken, da sie in der
561 Authentifizierungsdatenbank gespeichert werden. Sie gelten für alle
562 Datenbanken, die in dieser Installation verwaltet werden.
563
564 @node Benutzer anlegen
565 @section Benutzer anlegen
566
567 Beim Anlegen von Benutzern werden für viele Parameter
568 Standardeinstellungen vorgenommen, die den Gepflogenheiten des
569 deutschen Raumes entsprechen.
570
571 Zwingend anzugeben sind der Loginname sowie die komplette
572 Datenbankkonfiguration. Wenn die Passwortauthentifizierung über die
573 Datenbank eingestellt ist, so kann hier auch das Benutzerpasswort
574 gesetzt bzw. geändert werden. Ist hingegen die LDAP-Authentifizierung
575 aktiv, so ist das Passwort-Feld deaktiviert.
576
577 In der Datenbankkonfiguration müssen die Zugriffsdaten einer der eben
578 angelegten Datenbanken eingetragen werden.
579
580 @node Gruppenmitgliedschaften verwalten
581 @section Gruppenmitgliedschaften verwalten
582
583 Nach dem Anlegen von Benutzern und Gruppen müssen Benutzer den Gruppen
584 zugewiesen werden. Dazu gibt es zwei Möglichkeiten:
585
586 @enumerate
587 @item
588 In der Gruppenverwaltung wählt man eine Gruppe aus. Im folgenden
589 Dialog kann man dann einzeln die Benutzer der Gruppe hinzufügen.
590 @item
591 In der Gruppenverwaltung wählt man das Tool zur Verwaltung der
592 Gruppenmitgliedschaft. Hier wird eine Matrix angezeigt, die alle im
593 System angelegten Gruppen und Benutzer enthält. Durch Setzen der
594 Häkchen wird der Benutzer in der ausgewählten Zeile der Gruppe in der
595 ausgewählten Spalte hinzugefügt.
596 @end enumerate
597
598 @node Migration alter Installationen
599 @section Migration alter Installationen
600
601 Wenn Lx-Office 2.6.1 Beta 1 über eine ältere Version installiert wird, in der
602 die Benutzerdaten noch im Dateisystem im Verzeichnis @code{users}
603 verwaltet wurden, so bietet Lx-Office die Möglichkeit, diese
604 Benutzerdaten automatisch in die Authentifizierungsdatenbank zu
605 übernehmen. Dies geschieht, wenn man sich nach dem Update der
606 Installation das erste Mal im Administrationsbereich anmeldet. Findet
607 Lx-Office die Datei @code{users/members}, so wird der
608 Migrationsprozess gestartet.
609
610 Der Migrationsprozess ist nahezu vollautomatisch. Alle Benutzerdaten
611 können übernommen werden. Nach den Benutzerdaten bietet Lx-Office noch
612 die Möglichkeit an, dass automatisch eine Benutzergruppe angelegt
613 wird. Dieser Gruppe wird Zugriff auf alle Funktionen von Lx-Office
614 gewährt. Alle migrierten Benutzern werden Mitglied in dieser
615 Gruppe. Damit wird das Verhalten von Lx-Office bis Version 2.4.3
616 inklusive wiederhergestellt, und die Benutzer können sich sofort
617 wieder anmelden und mit dem System arbeiten.
618
619 @c ---------------------------------------------------------------
620
621 @node OpenDocument-Vorlagen
622 @chapter OpenDocument-Vorlagen
623
624 Lx-Office unterstützt die Verwendung von Vorlagen im
625 OpenDocument-Format, wie es OpenOffice.org ab Version 2
626 erzeugt. Lx-Office kann dabei sowohl neue OpenDocument-Dokumente als
627 auch aus diesen direkt PDF-Dateien erzeugen.  Um die Unterstützung von
628 OpenDocument-Vorlagen zu aktivieren muss in der Datei
629 @code{config/lx-erp.conf} die Variable @code{$opendocument_templates}
630 auf @samp{1} stehen.  Dieses ist die Standardeinstellung.
631
632 Weiterhin muss in der Datei @code{config/lx-erp.conf} die Variable
633 @code{$dbcharset} auf die Zeichenkodierung gesetzt werden, die auch
634 bei der Speicherung der Daten in der Datenbank verwendet wird. Diese
635 ist in den meisten Fällen "ISO-8859-15".
636
637 Während die Erzeugung von reinen OpenDocument-Dateien keinerlei
638 weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF
639 OpenOffice.org benötigt. Soll dieses Feature genutzt werden, so muss
640 neben OpenOffice.org ab Version 2 auch der ``X virtual frame buffer''
641 (xvfb) installiert werden.  Bei Debian ist er im Paket ``xvfb''
642 enthalten. Andere Distributionen enthalten ihn in anderen Paketen.
643
644 Nach der Installation müssen in der Datei @code{config/lx-erp.conf}
645 zwei weitere Variablen angepasst werden:
646 @code{$openofficeorg_writer_bin} muss den vollständigen Pfad zur
647 OpenOffice.org Writer-Anwendung enthalten.  @code{$xvfb_bin} muss den
648 Pfad zum ``X virtual frame buffer'' enthalten.
649
650 Zusätzlich gibt es zwei verschiedene Arten, wie Lx-Office mit
651 OpenOffice kommuniziert. Die erste Variante, die benutzt wird, wenn
652 die Variable @code{$openofficeorg_daemon} gesetzt ist, startet ein
653 OpenOffice, das auch nach der Umwandlung des Dokumentes gestartet
654 bleibt. Bei weiteren Umwandlungen wird dann diese laufende Instanz
655 benutzt. Der Vorteil ist, dass die Zeit zur Umwandlung deutlich
656 reduziert wird, weil nicht für jedes Dokument ein OpenOffice gestartet
657 werden muss. Der Nachteil ist, dass diese Methode Python und die
658 Python-UNO-Bindings benötigt, die Bestandteil von OpenOffice 2 sind.
659
660 Ist @code{$openofficeorg_daemon} nicht gesetzt, so wird für jedes
661 Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe
662 eines Makros durchgeführt. Dieses Makro muss in der Dokumentenvorlage
663 enthalten sein und ``Standard.Conversion.ConvertSelfToPDF()''
664 heißen. Die Beispielvorlage @samp{templates/German-invoice.odt}
665 enthält ein solches Makro, das in jeder anderen Dokumentenvorlage
666 ebenfalls enthalten sein muss.
667
668 Als letztes muss herausgefunden werden, welchen Namen OpenOffice.org
669 Writer dem Verzeichnis mit den Benutzereinstellungen gibt. Unter
670 Debian ist dies momentan @code{~/.openoffice.org2}. Sollte der Name
671 bei Ihrer OpenOffice.org-Installation anders sein, so muss das
672 Verzeichnis @code{users/.openoffice.org2} entsprechend umbenannt
673 werden. Ist der Name z.B. einfach nur @code{.openoffice}, so wäre
674 folgender Befehl auszuführen:
675
676 @code{mv users/.openoffice.org2 users/.openoffice}
677
678 Dieses Verzeichnis, wie auch das komplette @code{users}-Verzeichnis,
679 muss vom Webserver beschreibbar sein. Dieses wurde in Schritt
680 @code{Installation des Programmpakets} oben bereits erledigt, kann
681 aber erneut überprüft werden, wenn die Konvertierung nach PDF
682 fehlschlägt.
683
684 @c ---------------------------------------------------------------
685
686 @node Lx-Office ERP verwenden
687 @chapter Lx-Office ERP verwenden
688
689 Nach erfolgreicher Installation ist der Loginbildschirm unter
690 folgender URL erreichbar:
691
692 @uref{http://localhost/lx-office-erp/login.pl}
693
694 Die Administrationsseite erreichen Sie unter:
695
696 @uref{http://localhost/lx-office-erp/admin.pl}
697
698 @bye