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