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