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