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