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