Class::Accessor entfernt.
[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 Config::Std
142 @item
143 DateTime
144 @item
145 DBI
146 @item
147 DBD::Pg
148 @item
149 Email::Address
150 @item
151 List::MoreUtils
152 @item
153 Params::Validate
154 @item
155 PDF::API2
156 @item
157 Rose::Object
158 @item
159 Rose::DB
160 @item
161 Rose::DB::Object
162 @item
163 Template
164 @item
165 Text::CSV_XS
166 @item
167 Text::Iconv
168 @item
169 URI
170 @item
171 XML::Writer
172 @item
173 YAML
174 @end itemize
175
176 Gegenüber Version 2.6.0 sind zu dieser Liste 2 Pakete hinzugekommen, @code{URI}
177 und @code{XML::Writer} sind notwendig. Ohne startet Lx-Office nicht.
178
179 Gegenüber Version 2.6.1 sind @code{parent}, @code{DateTime},
180 @code{Rose::Object}, @code{Rose::DB} und @code{Rose::DB::Object} neu
181 hinzugekommen. @code{IO::Wrap} wurde entfernt.
182
183 @code{Email::Address} und @code{List::MoreUtils} sind schon länger feste
184 Abhängigkeiten, wurden aber bisher mit Lx-Office mitgeliefert.  Beide sind auch
185 in 2.6.1 weiterhin mit ausgeliefert, wurden in einer zukünftigen Version aber
186 aus dem Paket entfernt werden. Es wird empfohlen diese Module zusammen mit den
187 anderen als Bibliotheken zu installieren.
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 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}
194
195 Für Fedora Core benötigen Sie diese Pakete:
196
197 @code{httpd postgresql-server perl-parent 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-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 Der Task-Server
412 @chapter Der Task-Server
413
414 Der Task-Server ist ein Prozess, der im Hintergrund läuft, in
415 regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese
416 zu festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser
417 Prozess wird bisher nur für die Erzeugung der wiederkehrenden
418 Rechnungen benutzt, wird aber in Zukunft deutlich mehr Aufgaben
419 übertragen bekommen.
420
421 @menu
422 * Konfiguration des Task-Servers:: Verfügbare und notwendige Konfigurationsoptionen
423 * Prozesskontrolle:: Wie der Task-Server gestartet und beendet wird
424 * Einbinden in den Boot-Prozess:: Automatisches Starten des Task-Servers beim Booten
425 @end menu
426
427 @node Konfiguration des Task-Servers
428 @section Verfügbare und notwendige Konfigurationsoptionen
429
430 Die Konfiguration erfolgt über den Abschnitt @code{[task_server]} in
431 der Datei @file{config/lx_office.conf}. Die dort verfügbaren Optionen
432 sind:
433
434 @itemize
435 @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.
436 @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.
437 @item @code{debug}: Schaltet Debug-Informationen an und aus.
438 @end itemize
439
440 @node Einbinden in den Boot-Prozess
441 @section Automatisches Starten des Task-Servers beim Booten
442
443 Der Task-Server verhält sich von seinen Optionen her wie ein reguläres
444 SystemV-kompatibles Boot-Script. Außerdem wechselt er beim Starten
445 automatisch in das Lx-Office-Installationsverzeichnis.
446
447 Deshalb ist es möglich, ihn durch Setzen eines symbolischen Links aus
448 einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess
449 einzubinden. Da das bei neueren Linux-Distributionen aber nicht
450 zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die
451 anstelle eines symbolischen Links verwendet werden können.
452
453 @subsection SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)
454
455 Kopieren Sie die Datei
456 @file{scripts/boot/system-v/lx-office-task-server} nach
457 @file{/etc/init.d/lx-office-task-server}. Passen Sie in der kopierten
458 Datei den Pfad zum Task-Server an (Zeile @code{DAEMON=....}). Binden
459 Sie das Script in den Boot-Prozess ein. Dies ist distributionsabhängig:
460
461 @itemize
462 @item Debian-basierende Systeme:
463 @*
464 @code{update-rc.d lx-office-task-server defaults
465 @*
466 # Nur bei Debian Squeeze und neuer:
467 @*
468 insserv lx-office-task-server}
469 @item OpenSuSE und Fedora Core:
470 @*
471 @code{chkconfig --add lx-office-task-server}
472 @end itemize
473
474 Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
475 @code{/etc/init.d/lx-office-task-server start}
476
477 @subsection Upstart-basierende Systeme (z.B. Ubuntu)
478
479 Kopieren Sie die Datei
480 @file{scripts/boot/upstart/lx-office-task-server.conf} nach
481 @file{/etc/init/lx-office-task-server.conf}. Passen Sie in der kopierten
482 Datei den Pfad zum Task-Server an (Zeile @code{exec ....}).
483
484 Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
485 @code{service lx-office-task-server start}
486
487 @node Prozesskontrolle
488 @section Wie der Task-Server gestartet und beendet wird
489
490 Der Task-Server wird wie folgt kontrolliert:
491
492 @code{./scripts/task_server.pl Befehl}
493
494 @code{Befehl} ist dabei eine der folgenden Optionen:
495
496 @itemize
497 @item @code{start} startet eine neue Instanz des Task-Servers. Die Prozess-ID wird innerhalb des @file{users}-Verzeichnisses abgelegt.
498 @item @code{stop} beendet einen laufenden Task-Server.
499 @item @code{restart} beendet und startet ihn neu.
500 @item @code{status} berichtet, ob der Task-Server läuft.
501 @end itemize
502
503 Der Task-Server wechselt beim Starten automatisch in das Lx-Office-Installationsverzeichnis.
504
505 Dieselben Optionen können auch für die SystemV-basierenden
506 Runlevel-Scripte benutzt werden (siehe oben).
507
508 @c ---------------------------------------------------------------
509
510 @node Benutzerauthentifizierung und Administratorpasswort
511 @chapter Benutzerauthentifizierung und Administratorpasswort
512
513 Informationen über die Einrichtung der Benutzerauthentifizierung, über
514 die Verwaltung von Gruppen und weitere Einstellungen
515
516 @menu
517 * Grundlagen zur Benutzerauthentifizierung:: Verfügbare Methoden, Name der Konfigurationsdatei
518 * Administratorpasswort:: Wo das Administratorpasswort gesetzt werden kann
519 * Authentifizierungsdatenbank:: Verbindungseinstellungen zur Authentifizierungsdatenbank
520 * Passwortüberprüfung:: Einstellungen zur Überprüfung der Benutzerpasswörter
521 * Name des Session-Cookies:: Ändern des Cookie-Namens bei Verwendung mehrerer Lx-Office-Installationen auf einem Server
522 * Anlegen der Authentifizierungsdatenbank:: Wie die Authentifizierungsdatenbank angelegt wird
523 @end menu
524
525 @c ---------------------------------------------------------------
526
527 @node Grundlagen zur Benutzerauthentifizierung
528 @section Grundlagen zur Benutzerauthentifizierung
529
530 Lx-Office verwaltet die Benutzerinformationen in einer Datenbank, die
531 im folgenden ``Authentifizierungsdatenbank'' genannt wird. Für jeden
532 Benutzer kann dort eine eigene Datenbank für die eigentlichen
533 Finanzdaten hinterlegt sein. Diese beiden Datenbanken können, müssen
534 aber nicht unterschiedlich sein.
535
536 Im einfachsten Fall gibt es für Lx-Office nur eine einzige Datenbank,
537 in der sowohl die Benutzerinformationen als auch die Daten abgelegt
538 werden.
539
540 Zusätzlich ermöglicht es Lx-Office, dass die Benutzerpasswörter
541 entweder gegen die Authentifizierungsdatenbank oder gegen einen
542 LDAP-Server überprüft werden.
543
544 Welche Art der Passwortüberprüfung Lx-Office benutzt und wie Lx-Office
545 die Authentifizierungsdatenbank erreichen kann, wird in der
546 Konfigurationsdatei @file{config/lx_office.conf} festgelegt. Diese
547 muss bei der Installation und bei einem Upgrade von einer Version vor
548 v2.6.0 angelegt werden. Eine Beispielkonfigurationsdatei
549 @file{config/lx_office.conf.default} existiert, die als Vorlage
550 benutzt werden kann.
551
552 @node Administratorpasswort
553 @section Administratorpasswort
554
555 Das Passwort, das zum Zugriff auf das Aministrationsinterface benutzt wird,
556 wird ebenfalls in dieser Datei gespeichert. Es kann auch nur dort und nicht
557 mehr im Administrationsinterface selber geändert werden. Der Parameter dazu
558 heißt @code{$self->@{admin_password@}}.
559
560 @node Authentifizierungsdatenbank
561 @section Authentifizierungsdatenbank
562
563 Die Verbindung zur Authentifizierungsdatenbank wird mit den Parametern
564 in @code{$self->@{DB_config@}} konfiguriert. Hier sind die folgenden
565 Parameter anzugeben:
566
567 @itemize
568 @item
569 @samp{host} -- Der Rechnername oder die IP-Adresse des Datenbankservers
570 @item
571 @samp{port} -- Die Portnummer des Datenbankservers, meist 5432
572 @item
573 @samp{db} -- Der Name der Authentifizierungsdatenbank
574 @item
575 @samp{user} -- Der Benutzername, mit dem sich Lx-Office beim Datenbankserver anmeldet (z.B. ``postgres'')
576 @item
577 @samp{password} -- Das Passwort für den Datenbankbenutzer
578 @end itemize
579
580 Die Datenbank muss noch nicht existieren. Lx-Office kann sie
581 automatisch anlegen (mehr dazu siehe unten).
582
583 @node Passwortüberprüfung
584 @section Passwortüberprüfung
585
586 Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen die
587 Authentifizierungsdatenbank und gegen einen externen LDAP- oder
588 Active-Directory-Server. Welche davon benutzt wird, regelt der
589 Parameter @code{$self->@{module@}}.
590
591 Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank
592 gespeichert werden, so muss der Parameter @code{$self->@{module@}} den
593 Wert @samp{DB} enthalten. In diesem Fall können sowohl der
594 Administrator als auch die Benutzer selber ihre Psaswörter in
595 Lx-Office ändern.
596
597 Soll hingegen ein externer LDAP- oder Active-Directory-Server benutzt
598 werden, so muss der Parameter @code{$self->@{module@}} auf @samp{LDAP}
599 gesetzt werden. In diesem Fall müssen zusätzliche Informationen über
600 den LDAP-Server in @code{$self->@{LDAP_config@}} angegeben werden:
601
602 @itemize
603 @item
604 @samp{host} -- Der Rechnername oder die IP-Adresse des LDAP- oder Active-Directory-Servers. Diese Angabe ist zwingend erforderlich.
605 @item
606 @samp{port} -- Die Portnummer des LDAP-Servers; meist 389.
607 @item
608 @samp{tls} -- Wenn Verbindungsverschlüsselung gewünscht ist, so diesen Wert auf @samp{1} setzen, andernfalls auf @samp{0} belassen
609 @item
610 @samp{attribute} -- Das LDAP-Attribut, in dem der Benutzername steht, den der Benutzer eingegeben hat. Für Active-Directory-Server
611   ist dies meist @samp{sAMAccountName}, für andere LDAP-Server hingegen @samp{uid}. Diese Angabe ist zwingend erforderlich.
612 @item
613 @samp{base_dn} -- Der Abschnitt des LDAP-Baumes, der durchsucht werden soll. Diese Angabe ist zwingend erforderlich.
614 @item
615 @samp{filter} -- Ein optionaler LDAP-Filter. Enthält dieser Filter das Wort @code{<%login%>}, so wird dieses durch den vom Benutzer
616   eingegebenen Benutzernamen ersetzt. Andernfalls wird der LDAP-Baum nach einem Element durchsucht, bei dem das oben angegebene Attribut
617   mit dem Benutzernamen identisch ist.
618 @item
619 @samp{bind_dn} und @samp{bind_password} -- Wenn der LDAP-Server eine Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist dies bei
620   Active-Directory-Servern der Fall), so kann diese hier angegeben werden. Für Active-Directory-Server kann als @samp{bind_dn} entweder eine
621   komplette LDAP-DN wie z.B. @samp{cn=Martin Mustermann,cn=Users,dc=firmendomain} auch nur der volle Name des Benutzers
622   eingegeben werden; in diesem Beispiel also @samp{Martin Mustermann}.
623 @end itemize
624
625 @node Name des Session-Cookies
626 @section Name des Session-Cookies
627
628 Sollen auf einem Server mehrere Lx-Office-Installationen aufgesetzt
629 werden, so müssen die Namen der Session-Cookies für alle
630 Installationen unterschiedlich sein. Der Name des Cookies wird mit dem
631 Parameter @code{$self->@{cookie_name@}} gesetzt.
632
633 Diese Angabe ist optional, wenn nur eine Installation auf dem Server
634 existiert.
635
636 @node Anlegen der Authentifizierungsdatenbank
637 @section Anlegen der Authentifizierungsdatenbank
638
639 Nachdem alle Einstellungen in @file{config/lx_office.conf}
640 vorgenommen wurden, muss Lx-Office die Authentifizierungsdatenbank
641 anlegen. Dieses geschieht automatisch, wenn Sie sich im
642 Administrationsmodul anmelden, das unter der folgenden URL erreichbar
643 sein sollte:
644
645 @uref{http://localhost/lx-erp/admin.pl}
646
647
648 @c ---------------------------------------------------------------
649
650 @node Benutzer- und Gruppenverwaltung
651 @chapter Benutzer- und Gruppenverwaltung
652
653 Nach der Installation müssen Benutzer, Gruppen und Datenbanken
654 angelegt werden.  Dieses geschieht im Administrationsmenü, das Sie
655 unter folgender URL finden:
656
657 @uref{http://localhost/lx-erp/admin.pl}
658
659 Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
660 @file{config/lx_office.conf} eingetragen haben.
661
662 @menu
663 * Zusammenhänge:: Übersicht über Benutzer, Gruppen, Berechtigungen und Datenbanken
664 * Datenbanken anlegen:: Hinweise zum Anlegen von Datenbanken
665 * Gruppen anlegen:: Hinweise zum Anlegen von Gruppen
666 * Benutzer anlegen:: Hinweise zum Anlegen von Benutzern
667 * Gruppenmitgliedschaften verwalten:: Wie man Gruppen Benutzer zuordnet
668 * Migration alter Installationen:: Automatische Übernahme bei Update von einer älteren Version
669 @end menu
670
671 @node Zusammenhänge
672 @section Zusammenhänge
673
674 Lx-Office verwendet eine Datenbank zum Speichern all seiner
675 Informationen wie Kundendaten, Artikel, Angebote, Rechnungen etc. Um
676 mit Lx-Office arbeiten zu können, muss eine Person einen
677 Benutzeraccount haben. Jedem Benutzeraccount wiederum wird genau eine
678 Datenbank zugewiesen, mit der dieser Benutzer arbeiten kann. Es ist
679 möglich und normal, dass mehreren Benutzern die selbe Datenbank
680 zugewiesen wird, sodass sie alle mit den selben Daten arbeiten können.
681
682 Die Basisdaten der Benutzer, die in der Administration eingegeben
683 werden können, werden in einer zweiten Datenbank gespeichert, der
684 bereits erwähnten Authentifizierungsdatenbank. Diese ist also den
685 Produktivdaten enthaltenden Datenbanken vorgeschaltet. Pro
686 Lx-Office-Installation gibt es nur eine Authentifizierungsdatenbank,
687 aber beliebig viele Datenbanken mit Firmendaten.
688
689 Lx-Office kann seinen Benutzern Zugriff auf bestimmte
690 Funktionsbereiche erlauben oder verbieten. Wird der Zugriff nicht
691 gestattet, so werden der entsprechenden Menüpunkte auch nicht
692 angezeigt. Diese Rechte werden ebenfalls in der
693 Authentifizierungsdatenbank gespeichert.
694
695 Um Rechte verteilen zu können, verwendet Lx-Office ein
696 Gruppen-Prinzip. Einer Gruppe kann der Zugriff auf bestimmte Bereiche
697 erlaubt werden. Ein Benutzer wiederum kann Mitglied in einer oder
698 mehrerer Gruppen sein. Der Benutzer hat Zugriff auf alle diejenigen
699 Funktionen, die mindestens einer Gruppe erlaubt sind, in der der
700 Benutzer Mitglied ist.
701
702 Die allgemeine Reihenfolge, in der Datenbanken, Gruppen und Benutzer
703 angelegt werden sollten, lautet:
704
705 @enumerate
706 @item
707 Datenbank anlegen
708 @item
709 Gruppen anlegen
710 @item
711 Benutzer anlegen
712 @item
713 Benutzer den Gruppen zuordnen
714 @end enumerate
715
716 @node Datenbanken anlegen
717 @section Datenbanken anlegen
718
719 Zuerst muss eine Datenbank angelegt werden. Verwenden Sie für den
720 Datenbankzugriff den vorhin angelegten Benutzer (in unseren Beispielen
721 ist dies @samp{lxoffice}).
722
723 Wenn Sie für die Lx-Office-Installation nicht den europäischen
724 Schriftsatz ISO-8859-15 sondern UTF-8 (Unicode) benutzen wollen, so
725 müssen Sie vor dem Anlegen der Datenbank in der Datei
726 @file{config/lx_office.conf} die Variable @code{dbcharset} im
727 Abschnitt @code{system} auf den Wert @samp{UTF-8} setzen. Zusätzlich
728 muss beim Anlegen der Datenbank @samp{UTF-8 Unicode} als Schriftsatz
729 ausgewählt werden.
730
731 Bitte beachten Sie, dass alle Datenbanken den selben Zeichensatz
732 verwenden müssen, da diese Einstellungen momentan global in Lx-Office
733 vorgenommen wird und nicht nach Datenbank unterschieden werden
734 kann. Auch die Authentifizierungsdatenbank muss mit diesem Zeichensatz
735 angelegt worden sein.
736
737 @node Gruppen anlegen
738 @section Gruppen anlegen
739
740 Eine Gruppe wird in der Gruppenverwaltung angelegt. Ihr muss ein Name
741 gegeben werden, eine Beschreibung ist hingegen optional. Nach dem
742 Anlegen können Sie die verschiedenen Bereiche wählen, auf die
743 Mitglieder dieser Gruppe Zugriff haben sollen.
744
745 Benutzergruppen sind unabhängig von Datenbanken, da sie in der
746 Authentifizierungsdatenbank gespeichert werden. Sie gelten für alle
747 Datenbanken, die in dieser Installation verwaltet werden.
748
749 @node Benutzer anlegen
750 @section Benutzer anlegen
751
752 Beim Anlegen von Benutzern werden für viele Parameter
753 Standardeinstellungen vorgenommen, die den Gepflogenheiten des
754 deutschen Raumes entsprechen.
755
756 Zwingend anzugeben sind der Loginname sowie die komplette
757 Datenbankkonfiguration. Wenn die Passwortauthentifizierung über die
758 Datenbank eingestellt ist, so kann hier auch das Benutzerpasswort
759 gesetzt bzw. geändert werden. Ist hingegen die LDAP-Authentifizierung
760 aktiv, so ist das Passwort-Feld deaktiviert.
761
762 In der Datenbankkonfiguration müssen die Zugriffsdaten einer der eben
763 angelegten Datenbanken eingetragen werden.
764
765 @node Gruppenmitgliedschaften verwalten
766 @section Gruppenmitgliedschaften verwalten
767
768 Nach dem Anlegen von Benutzern und Gruppen müssen Benutzer den Gruppen
769 zugewiesen werden. Dazu gibt es zwei Möglichkeiten:
770
771 @enumerate
772 @item
773 In der Gruppenverwaltung wählt man eine Gruppe aus. Im folgenden
774 Dialog kann man dann einzeln die Benutzer der Gruppe hinzufügen.
775 @item
776 In der Gruppenverwaltung wählt man das Tool zur Verwaltung der
777 Gruppenmitgliedschaft. Hier wird eine Matrix angezeigt, die alle im
778 System angelegten Gruppen und Benutzer enthält. Durch Setzen der
779 Häkchen wird der Benutzer in der ausgewählten Zeile der Gruppe in der
780 ausgewählten Spalte hinzugefügt.
781 @end enumerate
782
783 @node Migration alter Installationen
784 @section Migration alter Installationen
785
786 Wenn Lx-Office 2.6.2 über eine ältere Version installiert wird, in der
787 die Benutzerdaten noch im Dateisystem im Verzeichnis @code{users}
788 verwaltet wurden, so bietet Lx-Office die Möglichkeit, diese
789 Benutzerdaten automatisch in die Authentifizierungsdatenbank zu
790 übernehmen. Dies geschieht, wenn man sich nach dem Update der
791 Installation das erste Mal im Administrationsbereich anmeldet. Findet
792 Lx-Office die Datei @code{users/members}, so wird der
793 Migrationsprozess gestartet.
794
795 Der Migrationsprozess ist nahezu vollautomatisch. Alle Benutzerdaten
796 können übernommen werden. Nach den Benutzerdaten bietet Lx-Office noch
797 die Möglichkeit an, dass automatisch eine Benutzergruppe angelegt
798 wird. Dieser Gruppe wird Zugriff auf alle Funktionen von Lx-Office
799 gewährt. Alle migrierten Benutzern werden Mitglied in dieser
800 Gruppe. Damit wird das Verhalten von Lx-Office bis Version 2.4.3
801 inklusive wiederhergestellt, und die Benutzer können sich sofort
802 wieder anmelden und mit dem System arbeiten.
803
804 @c ---------------------------------------------------------------
805
806 @node Drucken mit Lx-Office
807 @chapter Drucken mit Lx-Office
808
809 Das Drucksystem von Lx-Office benutzt von Haus aus LaTeX Vorlagen. Um drucken
810 zu können, braucht der Server ein geeignetes LaTeX System. Am einfachsten ist
811 dazu eine @code{texlive} Installation. Unter Debianoiden Betriebssystemen sind
812 das die Pakete:
813
814 @code{texlive-latex-base texlive-latex-extra texlive-fonts-recommended}
815
816 Diese hinteren beiden enthalten Bibliotheken und Schriftarten die von den
817 Standardvorlagen verwendet werden.
818
819 TODO: rpm Pakete.
820
821 In den allermeisten Installationen sollte drucken jetzt schon funktionieren.
822 Sollte ein Fehler auftreten wirft TeX sehr lange Fehlerbeschreibungen, der
823 eigentliche Fehler ist immer die erste Zeite die mit einem Ausrufezeichen
824 anfängt. Häufig auftretende Fehler sind zum Beispiel:
825
826 @itemize
827 @item ! LaTeX Error: File `eurosym.sty' not found.
828 Die entsprechende LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem
829 bei Vorlagen aus der Community auf. Installieren Sie die entsprechenden Pakete.
830 @item ! Package inputenc Error: Unicode char \u8:æ¡\9c not set up for use with LaTeX.
831 Dieser Fehler tritt auf, wenn sie versuchen mit einer Standardinstallation
832 exotische utf8 Zeichen zu drucken. TeXLive unterstützt von Haus nur romanische
833 Schriften und muss mit diversen Tricks dazu gebracht werden andere Zeichen zu
834 akzeptieren. Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.
835 @end itemize
836
837 Wird garkein Fehler angezeigt sondern nur der Name des Templates, heißt das
838 normalerweise, dass das LaTeX Binary nicht gefunden wurde. Prüfen Sie den Namen
839 in der Konfiguration (Standard: @code{pdflatex}), und stellen Sie sicher, dass
840 pdflatex (oder das von Ihnen verwendete System) vom Webserver ausgeführt werden
841 darf.
842
843 @c ---------------------------------------------------------------
844
845 @node OpenDocument-Vorlagen
846 @chapter OpenDocument-Vorlagen
847
848 Lx-Office unterstützt die Verwendung von Vorlagen im
849 OpenDocument-Format, wie es OpenOffice.org ab Version 2
850 erzeugt. Lx-Office kann dabei sowohl neue OpenDocument-Dokumente als
851 auch aus diesen direkt PDF-Dateien erzeugen.  Um die Unterstützung von
852 OpenDocument-Vorlagen zu aktivieren muss in der Datei
853 @file{config/lx_office.conf} die Variable @code{opendocument} im
854 Abschnitt @code{print_templates} auf @samp{1} stehen.  Dieses ist die
855 Standardeinstellung.
856
857 Weiterhin muss in der Datei @file{config/lx_office.conf} die Variable
858 @code{dbcharset} im Abschnitt @code{system} auf die Zeichenkodierung
859 gesetzt werden, die auch bei der Speicherung der Daten in der
860 Datenbank verwendet wird. Diese ist in den meisten Fällen "UTF-8".
861
862 Während die Erzeugung von reinen OpenDocument-Dateien keinerlei
863 weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF
864 OpenOffice.org benötigt. Soll dieses Feature genutzt werden, so muss
865 neben OpenOffice.org ab Version 2 auch der ``X virtual frame buffer''
866 (xvfb) installiert werden.  Bei Debian ist er im Paket ``xvfb''
867 enthalten. Andere Distributionen enthalten ihn in anderen Paketen.
868
869 Nach der Installation müssen in der Datei @file{config/lx_config.conf}
870 zwei weitere Variablen angepasst werden: @code{openofficeorg_writer}
871 muss den vollständigen Pfad zur OpenOffice.org Writer-Anwendung
872 enthalten. @code{xvfb} muss den Pfad zum ``X virtual frame buffer''
873 enthalten. Beide stehen im Abschnitt @code{applications}.
874
875 Zusätzlich gibt es zwei verschiedene Arten, wie Lx-Office mit
876 OpenOffice kommuniziert. Die erste Variante, die benutzt wird, wenn
877 die Variable @code{$openofficeorg_daemon} gesetzt ist, startet ein
878 OpenOffice, das auch nach der Umwandlung des Dokumentes gestartet
879 bleibt. Bei weiteren Umwandlungen wird dann diese laufende Instanz
880 benutzt. Der Vorteil ist, dass die Zeit zur Umwandlung deutlich
881 reduziert wird, weil nicht für jedes Dokument ein OpenOffice gestartet
882 werden muss. Der Nachteil ist, dass diese Methode Python und die
883 Python-UNO-Bindings benötigt, die Bestandteil von OpenOffice 2 sind.
884
885 Ist @code{$openofficeorg_daemon} nicht gesetzt, so wird für jedes
886 Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe
887 eines Makros durchgeführt. Dieses Makro muss in der Dokumentenvorlage
888 enthalten sein und ``Standard.Conversion.ConvertSelfToPDF()''
889 heißen. Die Beispielvorlage @samp{templates/German-invoice.odt}
890 enthält ein solches Makro, das in jeder anderen Dokumentenvorlage
891 ebenfalls enthalten sein muss.
892
893 Als letztes muss herausgefunden werden, welchen Namen OpenOffice.org
894 Writer dem Verzeichnis mit den Benutzereinstellungen gibt. Unter
895 Debian ist dies momentan @code{~/.openoffice.org2}. Sollte der Name
896 bei Ihrer OpenOffice.org-Installation anders sein, so muss das
897 Verzeichnis @code{users/.openoffice.org2} entsprechend umbenannt
898 werden. Ist der Name z.B. einfach nur @code{.openoffice}, so wäre
899 folgender Befehl auszuführen:
900
901 @code{mv users/.openoffice.org2 users/.openoffice}
902
903 Dieses Verzeichnis, wie auch das komplette @code{users}-Verzeichnis, muss vom
904 Webserver beschreibbar sein. Dieses wurde bereits erledigt
905 (@pxref{Manuelle Installation des Programmpaketes}), kann aber erneut überprüft
906 werden, wenn die Konvertierung nach PDF fehlschlägt.
907
908 @c ---------------------------------------------------------------
909
910 @node Lx-Office ERP verwenden
911 @chapter Lx-Office ERP verwenden
912
913 Nach erfolgreicher Installation ist der Loginbildschirm unter
914 folgender URL erreichbar:
915
916 @uref{http://localhost/lx-office-erp/login.pl}
917
918 Die Administrationsseite erreichen Sie unter:
919
920 @uref{http://localhost/lx-office-erp/admin.pl}
921
922 @bye