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