f9ca5227cd4c034281df6f783368d07f0514cb30
[kivitendo-erp.git] / doc / INSTALL.texi
1 \input texinfo   @c -*-texinfo-*-
2 @c %**start of header
3 @documentencoding ISO-8859-15
4 @setfilename INSTALL.info
5 @settitle Lx-Office Installationsanleitung
6 @c %**end of header
7
8 @c @copying
9 @c Die Lx-Office Installationsanleitung kann beliebig weiter verwendet
10 @c werden.
11 @c @end copying
12
13 @titlepage
14 @title Lx-Office Installationsanleitung
15 @end titlepage
16
17 @contents
18
19 @ifnottex
20 @node Top
21 @top Inhalt der Anleitung
22 @end ifnottex
23
24 @menu
25 * Aktuelle Hinweise:: Andere Informationsquellen als diese Anleitung
26 * Benötigte Software und Pakete:: Vorraussetzungen zum Betrieb von Lx-Office
27 * Installation des Programmpaketes:: Installationsort, Berechtigungen
28 * Anpassung der PostgreSQL-Konfiguration:: Verschiedene Aspekte der Datenbankkonfiguration
29 * Apache-Konfiguration:: Einrichtung eines Aliases und Optionen für das Ausführen von CGI-Scripten
30 * Benutzer und Datenbanken anlegen:: Letzte Schritte vor der Anmeldung
31 * OpenDocument-Vorlagen:: Wichtige Hinweise zum Erstellen und zur Verwendung von Dokumentenvorlagen
32 * Lx-Office ERP verwenden:: Die URLs zur Anmeldung und Administration
33 @end menu
34
35 @c ---------------------------------------------------------------
36
37 @node Aktuelle Hinweise
38 @chapter Aktuelle Hinweise
39
40 Aktuelle Installations- und Konfigurationshinweise gibt es:
41
42 @itemize
43 @item
44 auf der Lx-Office Homepage unter @uref{http://lx-office.org/index.php?id=dokumentation}
45
46 @item
47 im Lx-Office-Wiki unter Dokumentation (@uref{http://wiki.lx-office.org/index.php/Lx-Office_ERP})
48
49 @item
50 im Lx-Office-Forum: @uref{http://www.lx-office.org/forum/}
51 @end itemize
52
53 @c ---------------------------------------------------------------
54
55 @node Benötigte Software und Pakete
56 @chapter Benötigte Software und Pakete
57
58 Zum Betrieb von Lx-Office werden zwingend ein Webserver (meist Apache) und ein Datenbankserver (PostgreSQL) benötigt.
59
60 Zusätzlich benötigt Lx-Office die folgenden Perl-Pakete, die nicht Bestandteil einer Standard-Perl-Installation sind:
61
62 @itemize
63 @item
64 DBI
65 @item
66 DBD::Pg
67 @item
68 CGI::Ajax
69 @item
70 Class::Accessor
71 @item
72 Archive::Zip
73 @item
74 Text::Iconv
75 @item
76 Text::CSV_XS
77 @item
78 IO::Wrap (aus dem Paket IO::Stringy)
79 @item
80 YAML
81 @item
82 Template
83 @end itemize
84
85 Diese Pakete können bei den unterschiedlichen Distributionen anders heißen.
86
87 Für Debian oder Ubuntu benötigen Sie diese Pakete:
88
89 @code{apache postgresql libdbi-perl libdbd-pg-perl libpgperl libclass-accessor-perl libarchive-zip-perl libtext-iconv-perl libyaml-perl libtext-csv-perl libio-stringy-perl libtemplate-perl}
90
91 Für Fedora Core benötigen Sie unter anderem diese Pakete:
92
93 @code{httpd postgresql-server perl-DBI perl-DBD-Pg}
94
95 Für OpenSuSE benötigen Sie diese Pakete:
96
97 @code{apache2 postgresql-server perl-DBI perl-DBD-Pg perl-Archive-Zip perl-Class-Accessor perl-Text-Iconv perl-Text-CSV_XS perl-IO-stringy perl-Template-Toolkit}
98
99 Da Perl-CGI-Ajax nicht als Paket für Distributionen bereit steht, muß
100 es mit der CPAN-Shell installiert werden.  Leider gibt es Fälle, in
101 denen das nicht möglich oder praktikabel ist. Lx-Office liefert daher
102 das Paket im CGI-Verzeichnis mit. Das sollte als Fall-Back greifen.
103
104 @c ---------------------------------------------------------------
105
106 @node Installation des Programmpaketes
107 @chapter Installation des Programmpaketes
108
109 Die Lx-Office ERP Installationsdatei (lxoffice-erp-2.4.x.tgz) wird im
110 Dokumentenverzeichnis des Webservers (z.B. @code{/var/www/html/},
111 @code{/srv/www/htdocs} oder @code{/var/www/}) entpackt:
112
113 @code{cd /var/www
114 @*
115 tar xvzf lxoffice-erp-2.4.x.tgz}
116
117 Verändern Sie evtl. noch den Namen des Verzeichnisses mit
118
119 @code{mv lxoffice-erp/ lx-erp/}
120
121 Alternativ können Sie auch einen Alias in der Webserverkonfiguration
122 benutzen, um auf das tatsächliche Installationsverzeichnis zu
123 verweisen.
124
125 Das Verzeichnis muß für den Benutzer beschreibbar sein, unter dem der
126 Webserver läuft. Dieser ist bei verschiedenen Distributionen
127 unterschiedlich (z.B. bei Debian/Ubuntu @code{www-data}, bei Fedora
128 core @code{apache} oder bei OpenSuSE @code{wwwrun}).
129
130 @code{chown -R www-data: lx-office-erp/}
131
132 @c ---------------------------------------------------------------
133
134 @node Anpassung der PostgreSQL-Konfiguration
135 @chapter Anpassung der PostgreSQL-Konfiguration
136
137 PostgreSQL muss auf verschiedene Weisen angepasst werden.
138
139 @menu
140 * Änderungen an Konfigurationsdateien:: Anpassungen für Anmeldung am Server und Featureunterstützung
141 * Erweiterung für servergespeicherte Prozeduren:: Lx-Office benutzt servergespeicherte Prozeduren
142 * Datenbankbenutzer anlegen:: Um den Zugriff besser zu reglementieren
143 @end menu
144
145 @node Änderungen an Konfigurationsdateien
146 @section Änderungen an Konfigurationsdateien
147
148 In der Datei @code{postgresql.conf}, die je nach Distribution in
149 verschiedenen Verzeichnissen liegen kann
150 (z.B. @code{/var/lib/pgsql/data/} oder @code{/etc/postgresql/}, muss
151 sichergestellt werden, dass TCP/IP-Verbindungen aktiviert sind. Dieser
152 Parameter lautet
153
154 @code{TCPIP_SOCKET = 1}
155
156 Bei PostgreSQL-Versionen ab v8.0 und neuer muss zusätzlich der
157 folgende Parameter gesetzt werden:
158
159 @code{default_with_oids = on}
160
161 In der Datei @code{pg_hba.conf}, die im gleichen Verzeichnis wie die
162 @code{postgresql.conf} zu finden sein sollte, müssen die
163 Berichtigungen für den Zugriff geändert werden. Hier gibt es mehrere
164 Möglichkeiten. Eine besteht darin, lokale Verbindungen immer
165 zuzulassen
166
167 @code{local all all trust
168 @*
169 host all all 127.0.0.1 255.0.0.0 trust}
170
171 Besser ist es, für eine bestimmte Datenbank Zugriff nur per Passwort
172 zuzulassen. Beispielsweise:
173
174 @code{local   all         lxoffice                                           password
175 @*
176 host    all         lxoffice      127.0.0.1         255.255.255.255    password}
177
178 @c ---------------------------------------------------------------
179
180 @node Erweiterung für servergespeicherte Prozeduren
181 @section Erweiterung für servergespeicherte Prozeduren
182
183 In der Datenbank @code{template1} muss die Unterstützung für
184 servergespeicherte Prozeduren eingerichet werden. Melden Sie sich
185 dafür als Benutzer ``postgres'' an der Datenbank an, und führen Sie
186 die folgenden Kommandos aus:
187
188 @code{create function plpgsql_call_handler () returns opaque as '/usr/lib/pgsql/plpgsql.so' language 'c';
189 @*
190 create language 'plpgsql' handler plpgsql_call_handler
191 lancompiler 'pl/pgsql';}
192
193 Bitte beachten Sie, dass der Pfad zur Datei @code{plpgsql.so} von
194 Distribution zu Distribution verschiedlich sein kann. Bei
195 Debian/Ubuntu befindet sie sich unter
196 @code{/usr/lib/postgresql/lib/plpgsql.so}.
197
198
199 @c ---------------------------------------------------------------
200
201 @node Datenbankbenutzer anlegen
202 @section Datenbankbenutzer anlegen
203
204 Wenn Sie nicht den Datenbanksuperuser ``postgres'' zum Zugriff
205 benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer
206 anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen können:
207
208 @code{su - postgres
209 @*
210 createuser -d -P lxoffice}
211
212 Wenn Sie später einen Datenbankzugriff konfigurieren, verändern Sie
213 den evtl. voreingestellten Benutzer ``postgres'' auf ``lxoffice''
214 bzw. den hier gewählten Benutzernamen.
215
216 @c ---------------------------------------------------------------
217
218 @node Apache-Konfiguration
219 @chapter Apache-Konfiguration
220
221 Der Zugriff auf das Programmverzeichnis muss in der Apache
222 Webserverkonfigurationsdatei @code{httpd.conf} eingestellt
223 werden. Fügen Sie den folgenden Abschnitt dieser Datei oder einer
224 anderen Datei hinzu, die beim Starten des Webservers eingelesen wird:
225
226 @code{@*
227 AddHandler cgi-script .pl
228 @*
229 Alias /lx-erp/ /var/www/lx-erp/
230 @*
231 <Directory /var/www/lx-erp>
232 @*
233   Options ExecCGI Includes FollowSymlinks
234 @*
235 </Directory>
236 @*
237 @*
238 <Directory /var/www/lx-erp/users>
239 @*
240   Order Deny,Allow
241 @*
242   Deny from All
243 @*
244 </Directory>
245 @*
246 }
247
248 Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher das
249 Lx-Office-Archiv entpacket haben.
250
251 Achtung: Vor den einzelnen Optionen muss bei einigen Distributionen ein
252 Plus @samp{+} gesetzt werden.
253
254 Auf einigen Webservern werden manchmal die Grafiken und Style-Sheets
255 nicht ausgeliefert. In solchen Fällen hat es oft geholfen, die
256 folgende Option in die Konfiguration aufzunehmen:
257
258 @code{EnableSendfile Off}
259
260 @c ---------------------------------------------------------------
261
262 @node Benutzer und Datenbanken anlegen
263 @chapter Benutzer und Datenbanken anlegen
264
265 Nach der Installation müssen Benutzer und Datenbanken angelegt werden.
266 Dieses geschieht im Administrationsmenü, dass Sie unter folgender URL
267 finden:
268
269 @code{http://localhost/lx-erp/admin.pl}
270
271 Zuerst muss eine Datenbank angelegt werden, anschließend ein
272 Benutzer. Verwenden Sie für den Datenbankzugriff den eben angelegten
273 Benutzer ``lxoffice''.
274
275 Wenn Sie für die Lx-Office-Installation nicht den europäischen
276 Schriftsatz ISO-8859-15 sondern UTF-8 (Unicode) benutzen wollen, so
277 müssen Sie vor dem Anlegen der Datenbank in der Datei ``lx-erp.conf''
278 die Variable @code{$dbcharset} auf den Wert ``UTF-8''
279 setzen. Zusätzlich muss beim Anlegen der Datenbank ``UTF-8 Unicode''
280 als Schriftsatz ausgewählt werden.
281
282 @c ---------------------------------------------------------------
283
284 @node OpenDocument-Vorlagen
285 @chapter OpenDocument-Vorlagen
286
287 Lx-Office unterstützt die Verwendung von Vorlagen im
288 OpenDocument-Format, wie es OpenOffice.org ab Version 2
289 erzeugt. Lx-Office kann dabei sowohl neue OpenDocument-Dokumente als
290 auch aus diesen direkt PDF-Dateien erzeugen.  Um die Unterstützung von
291 OpenDocument-Vorlagen zu aktivieren muss in der Datei ``lx-erp.conf''
292 die Variable @code{$opendocument_templates} auf ``1'' stehen.  Dieses
293 ist die Standardeinstellung.
294
295 Weiterhin muss in der Datei ``lx-erp.conf'' die Variable
296 @code{$dbcharset} auf die Zeichenkodierung gesetzt werden, die auch
297 bei der Speicherung der Daten in der Datenbank verwendet wird. Diese
298 ist in den meisten Fällen "ISO-8859-15".
299
300 Während die Erzeugung von reinen OpenDocument-Dateien keinerlei
301 weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF
302 OpenOffice.org benötigt. Soll dieses Feature genutzt werden, so muss
303 neben OpenOffice.org ab Version 2 auch der ``X virtual frame buffer''
304 (xvfb) installiert werden.  Bei Debian ist er im Paket ``xvfb''
305 enthalten. Andere Distributionen enthalten ihn in anderen Paketen.
306
307 Nach der Installation müssen in der Datei ``lx-erp.conf'' zwei weitere
308 Variablen angepasst werden: @code{$openofficeorg_writer_bin} muss den
309 vollständigen Pfad zur OpenOffice.org Writer-Anwendung enthalten.
310 @code{$xvfb_bin} muss den Pfad zum ``X virtual frame buffer''
311 enthalten.
312
313 Zusätzlich gibt es zwei verschiedene Arten, wie Lx-Office mit
314 OpenOffice kommuniziert. Die erste Variante, die benutzt wird, wenn
315 die Variable @code{$openofficeorg_daemon} gesetzt ist, startet ein
316 OpenOffice, das auch nach der Umwandlung des Dokumentes gestartet
317 bleibt. Bei weiteren Umwandlungen wird dann diese laufende Instanz
318 benutzt. Der Vorteil ist, dass die Zeit zur Umwandlung deutlich
319 reduziert wird, weil nicht für jedes Dokument ein OpenOffice gestartet
320 werden muss. Der Nachteil ist, dass diese Methode Python und die
321 Python-UNO-Bindings benötigt, die Bestandteil von OpenOffice 2 sind.
322
323 Ist @code{$openofficeorg_daemon} nicht gesetzt, so wird für jedes
324 Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe
325 eines Makros durchgeführt. Dieses Makro muss in der Dokumentenvorlage
326 enthalten sein und ``Standard.Conversion.ConvertSelfToPDF()''
327 heißen. Die Beispielvorlage @samp{templates/German-invoice.odt}
328 enthält ein solches Makro, das in jeder anderen Dokumentenvorlage
329 ebenfalls enthalten sein muss.
330
331 Als letztes muss herausgefunden werden, welchen Namen OpenOffice.org
332 Writer dem Verzeichnis mit den Benutzereinstellungen gibt. Unter
333 Debian ist dies momentan @code{~/.openoffice.org2}. Sollte der Name
334 bei Ihrer OpenOffice.org-Installation anders sein, so muss das
335 Verzeichnis @code{users/.openoffice.org2} entsprechend umbenannt
336 werden. Ist der Name z.B. einfach nur @code{.openoffice}, so wäre
337 folgender Befehl auszuführen:
338
339 @code{mv users/.openoffice.org2 users/.openoffice}
340
341 Dieses Verzeichnis, wie auch das komplette @code{users}-Verzeichnis,
342 muss vom Webserver beschreibbar sein. Dieses wurde in Schritt
343 @code{Installation des Programmpakets} oben bereits erledigt, kann
344 aber erneut überprüft werden, wenn die Konvertierung nach PDF
345 fehlschlägt.
346
347 @c ---------------------------------------------------------------
348
349 @node Lx-Office ERP verwenden
350 @chapter Lx-Office ERP verwenden
351
352 Nach erfolgreicher Installation ist der Loginbildschirm unter
353 folgender URL erreichbar:
354
355 @uref{http://localhost/lx-office-erp/login.pl}
356
357 Die Administrationsseite erreichen Sie unter:
358
359 @uref{http://localhost/lx-office-erp/admin.pl}
360
361 @bye