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