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