Class::Accessor entfernt.
[kivitendo-erp.git] / doc / INSTALL.texi
index eccfd31..6667237 100644 (file)
@@ -2,6 +2,7 @@
 @c %**start of header
 @setfilename INSTALL.info
 @documentencoding UTF-8
+@afourpaper
 @settitle Lx-Office Installationsanleitung
 @c %**end of header
 
 * Manuelle Installation des Programmpaketes:: Installationsort, Berechtigungen
 * Anpassung der PostgreSQL-Konfiguration:: Verschiedene Aspekte der Datenbankkonfiguration
 * Apache-Konfiguration:: Einrichtung eines Aliases und Optionen für das Ausführen von CGI-Scripten
+* Der Task-Server:: Konfiguration und Einrichtung des Task-Server-Dämonen
 * Benutzerauthentifizierung und Administratorpasswort:: Einrichtung der Authentifizierungsdatenbank und der Passwortüberprüfung
 * Benutzer- und Gruppenverwaltung:: Einrichten von Benutzern, Gruppen und Datenbanken
+* Drucken mit Lx-Office:: Voraussetzungen, Einrichtung und Fehlerdiagnose
 * OpenDocument-Vorlagen:: Wichtige Hinweise zum Erstellen und zur Verwendung von Dokumentenvorlagen
 * Lx-Office ERP verwenden:: Die URLs zur Anmeldung und Administration
 @end menu
@@ -135,9 +138,7 @@ parent
 @item
 Archive::Zip
 @item
-Class::Accessor
-@item
-CGI::Ajax
+Config::Std
 @item
 DateTime
 @item
@@ -149,6 +150,8 @@ Email::Address
 @item
 List::MoreUtils
 @item
+Params::Validate
+@item
 PDF::API2
 @item
 Rose::Object
@@ -183,22 +186,19 @@ in 2.6.1 weiterhin mit ausgeliefert, wurden in einer zukünftigen Version aber
 aus dem Paket entfernt werden. Es wird empfohlen diese Module zusammen mit den
 anderen als Bibliotheken zu installieren.
 
-@code{CGI::Ajax} ist nach wie vor in einer modifizierten Version mitgeliefert
-und braucht nicht nachinstalliert werden.
-
 Die zu installierenden Pakete können in den verschiedenen Distributionen unterschiedlich heißen.
 
 Für Debian oder Ubuntu benötigen Sie diese Pakete:
 
-@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}
+@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}
 
 Für Fedora Core benötigen Sie diese Pakete:
 
-@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}
+@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}
 
 Für OpenSuSE benötigen Sie diese Pakete:
 
-@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}
+@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}
 
 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.
 
@@ -408,6 +408,105 @@ folgende Option in die Konfiguration aufzunehmen:
 
 @c ---------------------------------------------------------------
 
+@node Der Task-Server
+@chapter Der Task-Server
+
+Der Task-Server ist ein Prozess, der im Hintergrund läuft, in
+regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese
+zu festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser
+Prozess wird bisher nur für die Erzeugung der wiederkehrenden
+Rechnungen benutzt, wird aber in Zukunft deutlich mehr Aufgaben
+übertragen bekommen.
+
+@menu
+* Konfiguration des Task-Servers:: Verfügbare und notwendige Konfigurationsoptionen
+* Prozesskontrolle:: Wie der Task-Server gestartet und beendet wird
+* Einbinden in den Boot-Prozess:: Automatisches Starten des Task-Servers beim Booten
+@end menu
+
+@node Konfiguration des Task-Servers
+@section Verfügbare und notwendige Konfigurationsoptionen
+
+Die Konfiguration erfolgt über den Abschnitt @code{[task_server]} in
+der Datei @file{config/lx_office.conf}. Die dort verfügbaren Optionen
+sind:
+
+@itemize
+@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.
+@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.
+@item @code{debug}: Schaltet Debug-Informationen an und aus.
+@end itemize
+
+@node Einbinden in den Boot-Prozess
+@section Automatisches Starten des Task-Servers beim Booten
+
+Der Task-Server verhält sich von seinen Optionen her wie ein reguläres
+SystemV-kompatibles Boot-Script. Außerdem wechselt er beim Starten
+automatisch in das Lx-Office-Installationsverzeichnis.
+
+Deshalb ist es möglich, ihn durch Setzen eines symbolischen Links aus
+einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess
+einzubinden. Da das bei neueren Linux-Distributionen aber nicht
+zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die
+anstelle eines symbolischen Links verwendet werden können.
+
+@subsection SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)
+
+Kopieren Sie die Datei
+@file{scripts/boot/system-v/lx-office-task-server} nach
+@file{/etc/init.d/lx-office-task-server}. Passen Sie in der kopierten
+Datei den Pfad zum Task-Server an (Zeile @code{DAEMON=....}). Binden
+Sie das Script in den Boot-Prozess ein. Dies ist distributionsabhängig:
+
+@itemize
+@item Debian-basierende Systeme:
+@*
+@code{update-rc.d lx-office-task-server defaults
+@*
+# Nur bei Debian Squeeze und neuer:
+@*
+insserv lx-office-task-server}
+@item OpenSuSE und Fedora Core:
+@*
+@code{chkconfig --add lx-office-task-server}
+@end itemize
+
+Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
+@code{/etc/init.d/lx-office-task-server start}
+
+@subsection Upstart-basierende Systeme (z.B. Ubuntu)
+
+Kopieren Sie die Datei
+@file{scripts/boot/upstart/lx-office-task-server.conf} nach
+@file{/etc/init/lx-office-task-server.conf}. Passen Sie in der kopierten
+Datei den Pfad zum Task-Server an (Zeile @code{exec ....}).
+
+Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
+@code{service lx-office-task-server start}
+
+@node Prozesskontrolle
+@section Wie der Task-Server gestartet und beendet wird
+
+Der Task-Server wird wie folgt kontrolliert:
+
+@code{./scripts/task_server.pl Befehl}
+
+@code{Befehl} ist dabei eine der folgenden Optionen:
+
+@itemize
+@item @code{start} startet eine neue Instanz des Task-Servers. Die Prozess-ID wird innerhalb des @file{users}-Verzeichnisses abgelegt.
+@item @code{stop} beendet einen laufenden Task-Server.
+@item @code{restart} beendet und startet ihn neu.
+@item @code{status} berichtet, ob der Task-Server läuft.
+@end itemize
+
+Der Task-Server wechselt beim Starten automatisch in das Lx-Office-Installationsverzeichnis.
+
+Dieselben Optionen können auch für die SystemV-basierenden
+Runlevel-Scripte benutzt werden (siehe oben).
+
+@c ---------------------------------------------------------------
+
 @node Benutzerauthentifizierung und Administratorpasswort
 @chapter Benutzerauthentifizierung und Administratorpasswort
 
@@ -444,10 +543,10 @@ LDAP-Server überprüft werden.
 
 Welche Art der Passwortüberprüfung Lx-Office benutzt und wie Lx-Office
 die Authentifizierungsdatenbank erreichen kann, wird in der
-Konfigurationsdatei @code{config/authentication.pl} festgelegt. Diese
+Konfigurationsdatei @file{config/lx_office.conf} festgelegt. Diese
 muss bei der Installation und bei einem Upgrade von einer Version vor
 v2.6.0 angelegt werden. Eine Beispielkonfigurationsdatei
-@code{config/authentication.pl.default} existiert, die als Vorlage
+@file{config/lx_office.conf.default} existiert, die als Vorlage
 benutzt werden kann.
 
 @node Administratorpasswort
@@ -537,7 +636,7 @@ existiert.
 @node Anlegen der Authentifizierungsdatenbank
 @section Anlegen der Authentifizierungsdatenbank
 
-Nachdem alle Einstellungen in @code{config/authentication.pl}
+Nachdem alle Einstellungen in @file{config/lx_office.conf}
 vorgenommen wurden, muss Lx-Office die Authentifizierungsdatenbank
 anlegen. Dieses geschieht automatisch, wenn Sie sich im
 Administrationsmodul anmelden, das unter der folgenden URL erreichbar
@@ -558,7 +657,7 @@ unter folgender URL finden:
 @uref{http://localhost/lx-erp/admin.pl}
 
 Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
-@code{config/authentication.pl} eingetragen haben.
+@file{config/lx_office.conf} eingetragen haben.
 
 @menu
 * Zusammenhänge:: Übersicht über Benutzer, Gruppen, Berechtigungen und Datenbanken
@@ -624,9 +723,10 @@ ist dies @samp{lxoffice}).
 Wenn Sie für die Lx-Office-Installation nicht den europäischen
 Schriftsatz ISO-8859-15 sondern UTF-8 (Unicode) benutzen wollen, so
 müssen Sie vor dem Anlegen der Datenbank in der Datei
-@code{config/lx-erp.conf} die Variable @code{$dbcharset} auf den Wert
-@samp{UTF-8} setzen. Zusätzlich muss beim Anlegen der Datenbank
-@samp{UTF-8 Unicode} als Schriftsatz ausgewählt werden.
+@file{config/lx_office.conf} die Variable @code{dbcharset} im
+Abschnitt @code{system} auf den Wert @samp{UTF-8} setzen. Zusätzlich
+muss beim Anlegen der Datenbank @samp{UTF-8 Unicode} als Schriftsatz
+ausgewählt werden.
 
 Bitte beachten Sie, dass alle Datenbanken den selben Zeichensatz
 verwenden müssen, da diese Einstellungen momentan global in Lx-Office
@@ -703,6 +803,45 @@ wieder anmelden und mit dem System arbeiten.
 
 @c ---------------------------------------------------------------
 
+@node Drucken mit Lx-Office
+@chapter Drucken mit Lx-Office
+
+Das Drucksystem von Lx-Office benutzt von Haus aus LaTeX Vorlagen. Um drucken
+zu können, braucht der Server ein geeignetes LaTeX System. Am einfachsten ist
+dazu eine @code{texlive} Installation. Unter Debianoiden Betriebssystemen sind
+das die Pakete:
+
+@code{texlive-latex-base texlive-latex-extra texlive-fonts-recommended}
+
+Diese hinteren beiden enthalten Bibliotheken und Schriftarten die von den
+Standardvorlagen verwendet werden.
+
+TODO: rpm Pakete.
+
+In den allermeisten Installationen sollte drucken jetzt schon funktionieren.
+Sollte ein Fehler auftreten wirft TeX sehr lange Fehlerbeschreibungen, der
+eigentliche Fehler ist immer die erste Zeite die mit einem Ausrufezeichen
+anfängt. Häufig auftretende Fehler sind zum Beispiel:
+
+@itemize
+@item ! LaTeX Error: File `eurosym.sty' not found.
+Die entsprechende LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem
+bei Vorlagen aus der Community auf. Installieren Sie die entsprechenden Pakete.
+@item ! Package inputenc Error: Unicode char \u8:æ¡\9c not set up for use with LaTeX.
+Dieser Fehler tritt auf, wenn sie versuchen mit einer Standardinstallation
+exotische utf8 Zeichen zu drucken. TeXLive unterstützt von Haus nur romanische
+Schriften und muss mit diversen Tricks dazu gebracht werden andere Zeichen zu
+akzeptieren. Adere TeX Systeme wie XeTeX schaffen hier Abhilfe.
+@end itemize
+
+Wird garkein Fehler angezeigt sondern nur der Name des Templates, heißt das
+normalerweise, dass das LaTeX Binary nicht gefunden wurde. Prüfen Sie den Namen
+in der Konfiguration (Standard: @code{pdflatex}), und stellen Sie sicher, dass
+pdflatex (oder das von Ihnen verwendete System) vom Webserver ausgeführt werden
+darf.
+
+@c ---------------------------------------------------------------
+
 @node OpenDocument-Vorlagen
 @chapter OpenDocument-Vorlagen
 
@@ -711,13 +850,14 @@ OpenDocument-Format, wie es OpenOffice.org ab Version 2
 erzeugt. Lx-Office kann dabei sowohl neue OpenDocument-Dokumente als
 auch aus diesen direkt PDF-Dateien erzeugen.  Um die Unterstützung von
 OpenDocument-Vorlagen zu aktivieren muss in der Datei
-@code{config/lx-erp.conf} die Variable @code{$opendocument_templates}
-auf @samp{1} stehen.  Dieses ist die Standardeinstellung.
+@file{config/lx_office.conf} die Variable @code{opendocument} im
+Abschnitt @code{print_templates} auf @samp{1} stehen.  Dieses ist die
+Standardeinstellung.
 
-Weiterhin muss in der Datei @code{config/lx-erp.conf} die Variable
-@code{$dbcharset} auf die Zeichenkodierung gesetzt werden, die auch
-bei der Speicherung der Daten in der Datenbank verwendet wird. Diese
-ist in den meisten Fällen "UTF-8".
+Weiterhin muss in der Datei @file{config/lx_office.conf} die Variable
+@code{dbcharset} im Abschnitt @code{system} auf die Zeichenkodierung
+gesetzt werden, die auch bei der Speicherung der Daten in der
+Datenbank verwendet wird. Diese ist in den meisten Fällen "UTF-8".
 
 Während die Erzeugung von reinen OpenDocument-Dateien keinerlei
 weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF
@@ -726,11 +866,11 @@ neben OpenOffice.org ab Version 2 auch der ``X virtual frame buffer''
 (xvfb) installiert werden.  Bei Debian ist er im Paket ``xvfb''
 enthalten. Andere Distributionen enthalten ihn in anderen Paketen.
 
-Nach der Installation müssen in der Datei @code{config/lx-erp.conf}
-zwei weitere Variablen angepasst werden:
-@code{$openofficeorg_writer_bin} muss den vollständigen Pfad zur
-OpenOffice.org Writer-Anwendung enthalten.  @code{$xvfb_bin} muss den
-Pfad zum ``X virtual frame buffer'' enthalten.
+Nach der Installation müssen in der Datei @file{config/lx_config.conf}
+zwei weitere Variablen angepasst werden: @code{openofficeorg_writer}
+muss den vollständigen Pfad zur OpenOffice.org Writer-Anwendung
+enthalten. @code{xvfb} muss den Pfad zum ``X virtual frame buffer''
+enthalten. Beide stehen im Abschnitt @code{applications}.
 
 Zusätzlich gibt es zwei verschiedene Arten, wie Lx-Office mit
 OpenOffice kommuniziert. Die erste Variante, die benutzt wird, wenn