3 <title>Lx-Office Installationsanleitung</title>
 
   4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
   5 <meta name="description" content="Lx-Office Installationsanleitung">
 
   6 <meta name="generator" content="makeinfo 4.11">
 
   7 <link title="Top" rel="top" href="#Top">
 
   8 <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
 
   9 <meta http-equiv="Content-Style-Type" content="text/css">
 
  10 <style type="text/css"><!--
 
  11   pre.display { font-family:inherit }
 
  12   pre.format  { font-family:inherit }
 
  13   pre.smalldisplay { font-family:inherit; font-size:smaller }
 
  14   pre.smallformat  { font-family:inherit; font-size:smaller }
 
  15   pre.smallexample { font-size:smaller }
 
  16   pre.smalllisp    { font-size:smaller }
 
  17   span.sc    { font-variant:small-caps }
 
  18   span.roman { font-family:serif; font-weight:normal; } 
 
  19   span.sansserif { font-family:sans-serif; font-weight:normal; } 
 
  23 <h1 class="settitle">Lx-Office Installationsanleitung</h1>
 
  24    <div class="contents">
 
  25 <h2>Table of Contents</h2>
 
  27 <li><a name="toc_Top" href="#Top">Inhalt der Anleitung</a>
 
  28 <li><a name="toc_Aktuelle-Hinweise" href="#Aktuelle-Hinweise">1 Aktuelle Hinweise</a>
 
  29 <li><a name="toc_Ben_00c3_00b6tigte-Software-und-Pakete" href="#Ben_00c3_00b6tigte-Software-und-Pakete">2 Benötigte Software und Pakete</a>
 
  31 <li><a href="#Betriebssystem">2.1 Betriebssystem</a>
 
  32 <li><a href="#Pakete">2.2 Pakete</a>
 
  34 <li><a name="toc_Manuelle-Installation-des-Programmpaketes" href="#Manuelle-Installation-des-Programmpaketes">3 Manuelle Installation des Programmpaketes</a>
 
  35 <li><a name="toc_Anpassung-der-PostgreSQL_002dKonfiguration" href="#Anpassung-der-PostgreSQL_002dKonfiguration">4 Anpassung der PostgreSQL-Konfiguration</a>
 
  37 <li><a href="#Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8">4.1 Zeichensätze/die Verwendung von UTF-8</a>
 
  38 <li><a href="#_00c3_0084nderungen-an-Konfigurationsdateien">4.2 Änderungen an Konfigurationsdateien</a>
 
  39 <li><a href="#Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren">4.3 Erweiterung für servergespeicherte Prozeduren</a>
 
  40 <li><a href="#Datenbankbenutzer-anlegen">4.4 Datenbankbenutzer anlegen</a>
 
  42 <li><a name="toc_Apache_002dKonfiguration" href="#Apache_002dKonfiguration">5 Apache-Konfiguration</a>
 
  43 <li><a name="toc_Der-Task_002dServer" href="#Der-Task_002dServer">6 Der Task-Server</a>
 
  45 <li><a href="#Konfiguration-des-Task_002dServers">6.1 Verfügbare und notwendige Konfigurationsoptionen</a>
 
  46 <li><a href="#Einbinden-in-den-Boot_002dProzess">6.2 Automatisches Starten des Task-Servers beim Booten</a>
 
  48 <li><a href="#Einbinden-in-den-Boot_002dProzess">6.2.1 SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)</a>
 
  49 <li><a href="#Einbinden-in-den-Boot_002dProzess">6.2.2 Upstart-basierende Systeme (z.B. Ubuntu)</a>
 
  51 <li><a href="#Prozesskontrolle">6.3 Wie der Task-Server gestartet und beendet wird</a>
 
  53 <li><a name="toc_Benutzerauthentifizierung-und-Administratorpasswort" href="#Benutzerauthentifizierung-und-Administratorpasswort">7 Benutzerauthentifizierung und Administratorpasswort</a>
 
  55 <li><a href="#Grundlagen-zur-Benutzerauthentifizierung">7.1 Grundlagen zur Benutzerauthentifizierung</a>
 
  56 <li><a href="#Administratorpasswort">7.2 Administratorpasswort</a>
 
  57 <li><a href="#Authentifizierungsdatenbank">7.3 Authentifizierungsdatenbank</a>
 
  58 <li><a href="#Passwort_00c3_00bcberpr_00c3_00bcfung">7.4 Passwortüberprüfung</a>
 
  59 <li><a href="#Name-des-Session_002dCookies">7.5 Name des Session-Cookies</a>
 
  60 <li><a href="#Anlegen-der-Authentifizierungsdatenbank">7.6 Anlegen der Authentifizierungsdatenbank</a>
 
  62 <li><a name="toc_Benutzer_002d-und-Gruppenverwaltung" href="#Benutzer_002d-und-Gruppenverwaltung">8 Benutzer- und Gruppenverwaltung</a>
 
  64 <li><a href="#Zusammenh_00c3_00a4nge">8.1 Zusammenhänge</a>
 
  65 <li><a href="#Datenbanken-anlegen">8.2 Datenbanken anlegen</a>
 
  66 <li><a href="#Gruppen-anlegen">8.3 Gruppen anlegen</a>
 
  67 <li><a href="#Benutzer-anlegen">8.4 Benutzer anlegen</a>
 
  68 <li><a href="#Gruppenmitgliedschaften-verwalten">8.5 Gruppenmitgliedschaften verwalten</a>
 
  69 <li><a href="#Migration-alter-Installationen">8.6 Migration alter Installationen</a>
 
  71 <li><a name="toc_Drucken-mit-Lx_002dOffice" href="#Drucken-mit-Lx_002dOffice">9 Drucken mit Lx-Office</a>
 
  72 <li><a name="toc_OpenDocument_002dVorlagen" href="#OpenDocument_002dVorlagen">10 OpenDocument-Vorlagen</a>
 
  73 <li><a name="toc_Lx_002dOffice-ERP-verwenden" href="#Lx_002dOffice-ERP-verwenden">11 Lx-Office ERP verwenden</a>
 
  82 nächstes: <a rel="next" accesskey="n" href="#Aktuelle-Hinweise">Aktuelle Hinweise</a>,
 
  83 aufwärts: <a rel="up" accesskey="u" href="#dir">(dir)</a>
 
  87 <h2 class="unnumbered">Inhalt der Anleitung</h2>
 
  90 <li><a accesskey="1" href="#Aktuelle-Hinweise">Aktuelle Hinweise</a>:  Andere Informationsquellen als diese Anleitung
 
  91 <li><a accesskey="2" href="#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>:  Vorraussetzungen zum Betrieb von Lx-Office
 
  92 <li><a accesskey="3" href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>:  Installationsort, Berechtigungen
 
  93 <li><a accesskey="4" href="#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>:  Verschiedene Aspekte der Datenbankkonfiguration
 
  94 <li><a accesskey="5" href="#Apache_002dKonfiguration">Apache-Konfiguration</a>:  Einrichtung eines Aliases und Optionen für das Ausführen von CGI-Scripten
 
  95 <li><a accesskey="6" href="#Der-Task_002dServer">Der Task-Server</a>:  Konfiguration und Einrichtung des Task-Server-Dämonen
 
  96 <li><a accesskey="7" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>:  Einrichtung der Authentifizierungsdatenbank und der Passwortüberprüfung
 
  97 <li><a accesskey="8" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>:  Einrichten von Benutzern, Gruppen und Datenbanken
 
  98 <li><a accesskey="9" href="#Drucken-mit-Lx_002dOffice">Drucken mit Lx-Office</a>:  Voraussetzungen, Einrichtung und Fehlerdiagnose
 
  99 <li><a href="#OpenDocument_002dVorlagen">OpenDocument-Vorlagen</a>:  Wichtige Hinweise zum Erstellen und zur Verwendung von Dokumentenvorlagen
 
 100 <li><a href="#Lx_002dOffice-ERP-verwenden">Lx-Office ERP verwenden</a>:  Die URLs zur Anmeldung und Administration
 
 106 <a name="Aktuelle-Hinweise"></a>
 
 107 nächstes: <a rel="next" accesskey="n" href="#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>,
 
 108 voriges: <a rel="previous" accesskey="p" href="#Top">Top</a>,
 
 109 aufwärts: <a rel="up" accesskey="u" href="#Top">Top</a>
 
 113 <h2 class="chapter">1 Aktuelle Hinweise</h2>
 
 115 <p>Aktuelle Installations- und Konfigurationshinweise gibt es:
 
 118 <li>auf der Lx-Office Homepage unter <a href="http://lx-office.org/index.php?id=dokumentation">http://lx-office.org/index.php?id=dokumentation</a>
 
 120      <li>im Lx-Office-Wiki unter Dokumentation (<a href="http://wiki.lx-office.org/index.php/Lx-Office_ERP">http://wiki.lx-office.org/index.php/Lx-Office_ERP</a>)
 
 122      <li>im Lx-Office-Forum: <a href="http://www.lx-office.org/forum/">http://www.lx-office.org/forum/</a>
 
 128 <a name="Ben%c3%b6tigte-Software-und-Pakete"></a>
 
 129 <a name="Ben_00c3_00b6tigte-Software-und-Pakete"></a>
 
 130 nächstes: <a rel="next" accesskey="n" href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>,
 
 131 voriges: <a rel="previous" accesskey="p" href="#Aktuelle-Hinweise">Aktuelle Hinweise</a>,
 
 132 aufwärts: <a rel="up" accesskey="u" href="#Top">Top</a>
 
 136 <h2 class="chapter">2 Benötigte Software und Pakete</h2>
 
 139 <li><a accesskey="1" href="#Betriebssystem">Betriebssystem</a>:  Unterstützte Betriebsysteme und Hinweise für ältere Systeme
 
 140 <li><a accesskey="2" href="#Pakete">Pakete</a>:  Benötigte Software und Perlpakete sowie deren Quellen
 
 145 <a name="Betriebssystem"></a>
 
 146 nächstes: <a rel="next" accesskey="n" href="#Pakete">Pakete</a>,
 
 147 aufwärts: <a rel="up" accesskey="u" href="#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>
 
 151 <h3 class="section">2.1 Betriebssystem</h3>
 
 153 <p>Lx-Office ist für Linux konzipiert, und sollte auf jedem unixoiden
 
 154 Betriebssystem zum Laufen zu kriegen sein. Getestet ist diese Version im
 
 155 speziellen auf Debian und Ubuntu, grundsätzlich wurde bei der Auswahl der
 
 156 Pakete aber darauf Rücksicht genommen, dass es ohne große Probleme auf den
 
 157 derzeit aktuellen verbreiteten Distributionen läuft.
 
 159    <p>Anfang 2011 sind das folgende Systeme:
 
 162 <li>Ubuntu 8.04 LTS Hardy Heron
 
 163 <li>Ubuntu 9.10 Karmic Koala
 
 164 <li>Ubuntu 10.04 Lucid Lynx
 
 165 <li>Ubuntu 10.10 Maverick Meerkat
 
 167 <li>Debian 6.0 Squeeze
 
 170 <li>SuSE Linux Enterprice Server 11
 
 175    <p>Für die debianoiden Betriebssysteme existiert ein .deb, das deutlich einfacher
 
 178    <p>Ubuntu 8.04 LTS hat zusätzlich die Schwierigkeit, dass die Module im Archiv
 
 179 recht alt sind, und das viele der benötigten Module nicht einfach zu
 
 180 installieren sind. Dafür sollte es kurz nach dem Release ein eigenes .deb
 
 183    <p>Alternativ dazu kann die normale Installation durchgeführt werden
 
 184 (siehe <a href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>), wenn vorher ein
 
 185 Kompatibilitätspaket installiert wird, das die fehlenden Pakete bereitstellt. 
 
 186 Das Paket ist auf <a href="https://sourceforge.net/projects/lx-office/files/Lx-Office%20ERP/2.6.2/">Sourceforge</a> unter dem Namen <code>lx-erp-perl-libs-compat-v2.tar.gz</code> hinterlegt.
 
 188    <p>Zur Installation das Paket in das entpackte Lx-Office Verzeichnis entpacken:
 
 190    <p><code>tar xzf lx-erp-perl-libs-compat-v2.tar.gz /path/to/lx-office/</code>
 
 192    <p>Zusätzlich müssen dann noch die folgenden Pakete installiert weerden
 
 194    <p><code>libbit-vector-perl libsub-exporter-perl libclone-perl libclass-factory-util-perl</code>
 
 196    <p>Danach sollte der Installationscheck (siehe <a href="#Pakete">Pakete</a>) die enthaltenen Pakete erkennen.
 
 200 <a name="Pakete"></a>
 
 201 voriges: <a rel="previous" accesskey="p" href="#Betriebssystem">Betriebssystem</a>,
 
 202 aufwärts: <a rel="up" accesskey="u" href="#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>
 
 206 <h3 class="section">2.2 Pakete</h3>
 
 208 <p>Zum Betrieb von Lx-Office werden zwingend ein Webserver (meist Apache)
 
 209 und ein Datenbankserver (PostgreSQL, mindestens v8.2) benötigt.
 
 211    <p>Zusätzlich benötigt Lx-Office die folgenden Perl-Pakete, die nicht Bestandteil
 
 212 einer Standard-Perl-Installation sind:
 
 237    <p>Gegenüber Version 2.6.0 sind zu dieser Liste 2 Pakete hinzugekommen, <code>URI</code>
 
 238 und <code>XML::Writer</code> sind notwendig. Ohne startet Lx-Office nicht.
 
 240    <p>Gegenüber Version 2.6.1 sind <code>parent</code>, <code>DateTime</code>,
 
 241 <code>Rose::Object</code>, <code>Rose::DB</code> und <code>Rose::DB::Object</code> neu
 
 242 hinzugekommen. <code>IO::Wrap</code> wurde entfernt.
 
 244    <p>Gegenüber Version 2.6.3 ist <code>JSON</code> neu hinzugekommen.
 
 246    <p><code>Email::Address</code> und <code>List::MoreUtils</code> sind schon länger feste
 
 247 Abhängigkeiten, wurden aber bisher mit Lx-Office mitgeliefert.  Beide sind auch
 
 248 in 2.6.1 weiterhin mit ausgeliefert, wurden in einer zukünftigen Version aber
 
 249 aus dem Paket entfernt werden. Es wird empfohlen diese Module zusammen mit den
 
 250 anderen als Bibliotheken zu installieren.
 
 252    <p>Die zu installierenden Pakete können in den verschiedenen Distributionen unterschiedlich heißen.
 
 254    <p>Für Debian oder Ubuntu benötigen Sie diese Pakete:
 
 256    <p><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 libjson-perl</code>
 
 258    <p>Für Fedora Core benötigen Sie diese Pakete:
 
 260    <p><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</code>
 
 262    <p>Für OpenSuSE benötigen Sie diese Pakete:
 
 264    <p><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</code>
 
 266    <p>Bei openSuSE 11 ist <code>parent</code> bereits enthalten, und braucht nicht nachinstalliert werden. Die <code>Rose::*</code> Pakete sind derzeit nicht für SuSE gepackt, und müssen anderweitig nachinstalliert werden.
 
 268    <p>Lx-Office enthält ein Script, mit dem überprüft werden kann, ob alle
 
 269 benötigten Perl-Module installiert sind. Der Aufruf lautet wie folgt:
 
 271    <p><code>./scripts/installation_check.pl</code>
 
 276 <a name="Manuelle-Installation-des-Programmpaketes"></a>
 
 277 nächstes: <a rel="next" accesskey="n" href="#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>,
 
 278 voriges: <a rel="previous" accesskey="p" href="#Ben_00c3_00b6tigte-Software-und-Pakete">Benötigte Software und Pakete</a>,
 
 279 aufwärts: <a rel="up" accesskey="u" href="#Top">Top</a>
 
 283 <h2 class="chapter">3 Manuelle Installation des Programmpaketes</h2>
 
 285 <p>Die Lx-Office ERP Installationsdatei (lxoffice-erp-2.6.2.tgz) wird im
 
 286 Dokumentenverzeichnis des Webservers (z.B. <code>/var/www/html/</code>,
 
 287 <code>/srv/www/htdocs</code> oder <code>/var/www/</code>) entpackt:
 
 291 tar xvzf lxoffice-erp-2.6.2.tgz</code>
 
 293    <p>Verändern Sie evtl. noch den Namen des Verzeichnisses mit
 
 295    <p><code>mv lxoffice-erp/ lx-erp/</code>
 
 297    <p>Alternativ können Sie auch einen Alias in der Webserverkonfiguration
 
 298 benutzen, um auf das tatsächliche Installationsverzeichnis zu
 
 301    <p>Die Verzeichnisse <code>users</code>, <code>spool</code> und <code>webdav</code> müssen
 
 302 für den Benutzer beschreibbar sein, unter dem der Webserver läuft. Die
 
 303 restlichen Dateien müssen für diesen Benutzer lesbar sein. Der
 
 304 Benutzername ist bei verschiedenen Distributionen unterschiedlich
 
 305 (z.B. bei Debian/Ubuntu <code>www-data</code>, bei Fedora core <code>apache</code>
 
 306 oder bei OpenSuSE <code>wwwrun</code>).
 
 308    <p>Der folgende Befehl ändert den Besitzer für die oben genannten
 
 309 Verzeichnisse auf einem Debian/Ubuntu-System:
 
 311    <p><code>chown -R www-data lx-office-erp/users lx-office-erp/spool lx-office-erp/webdav</code>
 
 313    <p>Weiterhin muss der Webserver-Benutzer im Verzeichnis <code>templates</code> Verzeichnisse für
 
 314 jeden neuen Benutzer, der in lx-office angelegt wird, anlegen dürfen:
 
 316    <p><code>chgrp www-data lx-office-erp/templates; chmod g+w lx-office-erp/templates</code>
 
 321 <a name="Anpassung-der-PostgreSQL-Konfiguration"></a>
 
 322 <a name="Anpassung-der-PostgreSQL_002dKonfiguration"></a>
 
 323 nächstes: <a rel="next" accesskey="n" href="#Apache_002dKonfiguration">Apache-Konfiguration</a>,
 
 324 voriges: <a rel="previous" accesskey="p" href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>,
 
 325 aufwärts: <a rel="up" accesskey="u" href="#Top">Top</a>
 
 329 <h2 class="chapter">4 Anpassung der PostgreSQL-Konfiguration</h2>
 
 331 <p>PostgreSQL muss auf verschiedene Weisen angepasst werden.
 
 334 <li><a accesskey="1" href="#Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8">Zeichensätze/die Verwendung von UTF-8</a>:  Was bei der Verwendung von UTF-8 zu beachten ist
 
 335 <li><a accesskey="2" href="#g_t_00c3_0084nderungen-an-Konfigurationsdateien">Änderungen an Konfigurationsdateien</a>:  Anpassungen für Anmeldung am Server und Featureunterstützung
 
 336 <li><a accesskey="3" href="#Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren">Erweiterung für servergespeicherte Prozeduren</a>:  Lx-Office benutzt servergespeicherte Prozeduren
 
 337 <li><a accesskey="4" href="#Datenbankbenutzer-anlegen">Datenbankbenutzer anlegen</a>:  Um den Zugriff besser zu reglementieren
 
 342 <a name="Zeichens%c3%a4tze%2fdie-Verwendung-von-UTF-8"></a>
 
 343 <a name="Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8"></a>
 
 344 nächstes: <a rel="next" accesskey="n" href="#g_t_00c3_0084nderungen-an-Konfigurationsdateien">Änderungen an Konfigurationsdateien</a>,
 
 345 aufwärts: <a rel="up" accesskey="u" href="#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
 
 349 <h3 class="section">4.1 Zeichensätze/die Verwendung von UTF-8</h3>
 
 351 <p>Lx-Office kann komplett mit UTF-8 als Zeichensatz verwendet
 
 352 werden. Dabei gibt es zwei Punkte zu beachten: PostgreSQL muss in
 
 353 Version 8.0 oder neuer benutzt werden, und der
 
 354 PostgreSQL-Datenbankcluster muss ebenfalls mit UTF-8 als Locale
 
 355 angelegt worden sein.
 
 357    <p>Dieses ist kann überprüft werden: ist das Encoding der Datenbank
 
 358 “template1” “UTF8”, so kann auch Lx-Office mit UTF-8 betrieben
 
 359 werden. Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
 
 360 UTF-8-Encoding anzulegen und diesen zu verwenden. Unter Debian und
 
 361 Ubuntu kann dies z.B. mit dem folgenden Befehl getan werden:
 
 363    <p><code>pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 8.2 clustername</code>
 
 365    <p>Die Datenbankversionsnummer muss an die tatsächlich verwendete
 
 366 Versionsnummer angepasst werden.
 
 368    <p>Unter anderen Distributionen gibt es ähnliche Methoden.
 
 370    <p>Wurde PostgreSQL nicht mit UTF-8 als Encoding initialisiert und ist
 
 371 ein Neuanlegen eines weiteren Clusters nicht möglich, so kann
 
 372 Lx-Office mit ISO-8859-15 als Encoding betrieben werden.
 
 374    <p>Das Encoding einer Datenbank kann in <code>psql</code> mit <code>\l</code> geprüft werden.
 
 378 <a name="%c3%84nderungen-an-Konfigurationsdateien"></a>
 
 379 <a name="g_t_00c3_0084nderungen-an-Konfigurationsdateien"></a>
 
 380 nächstes: <a rel="next" accesskey="n" href="#Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren">Erweiterung für servergespeicherte Prozeduren</a>,
 
 381 voriges: <a rel="previous" accesskey="p" href="#Zeichens_00c3_00a4tze_002fdie-Verwendung-von-UTF_002d8">Zeichensätze/die Verwendung von UTF-8</a>,
 
 382 aufwärts: <a rel="up" accesskey="u" href="#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
 
 386 <h3 class="section">4.2 Änderungen an Konfigurationsdateien</h3>
 
 388 <p>In der Datei <code>postgresql.conf</code>, die je nach Distribution in
 
 389 verschiedenen Verzeichnissen liegen kann
 
 390 (z.B. <code>/var/lib/pgsql/data/</code> oder <code>/etc/postgresql/</code>, muss
 
 391 sichergestellt werden, dass TCP/IP-Verbindungen aktiviert sind. Das
 
 392 Verhalten wird über den Parameter <code>listen_address</code>
 
 393 gesteuert. Laufen PostgreSQL und Lx-Office auf demselben Rechner, so
 
 394 kann dort der Wert <code>localhost</code> verwendet werden. Andernfalls
 
 395 müssen Datenbankverbindungen auch von anderen Rechnern aus zugelassen
 
 396 werden, was mit dem Wert \<code>*</code> geschieht.
 
 398    <p>In der Datei <code>pg_hba.conf</code>, die im gleichen Verzeichnis wie die
 
 399 <code>postgresql.conf</code> zu finden sein sollte, müssen die
 
 400 Berichtigungen für den Zugriff geändert werden. Hier gibt es mehrere
 
 401 Möglichkeiten. Eine besteht darin, lokale Verbindungen immer
 
 404    <p><code>local all all trust
 
 406 host all all 127.0.0.1 255.0.0.0 trust</code>
 
 408    <p>Besser ist es, für eine bestimmte Datenbank Zugriff nur per Passwort
 
 409 zuzulassen. Beispielsweise:
 
 411    <p><code>local   all         lxoffice                                           password
 
 413 host    all         lxoffice      127.0.0.1         255.255.255.255    password</code>
 
 418 <a name="Erweiterung-f%c3%bcr-servergespeicherte-Prozeduren"></a>
 
 419 <a name="Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren"></a>
 
 420 nächstes: <a rel="next" accesskey="n" href="#Datenbankbenutzer-anlegen">Datenbankbenutzer anlegen</a>,
 
 421 voriges: <a rel="previous" accesskey="p" href="#g_t_00c3_0084nderungen-an-Konfigurationsdateien">Änderungen an Konfigurationsdateien</a>,
 
 422 aufwärts: <a rel="up" accesskey="u" href="#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
 
 426 <h3 class="section">4.3 Erweiterung für servergespeicherte Prozeduren</h3>
 
 428 <p>In der Datenbank <code>template1</code> muss die Unterstützung für servergespeicherte
 
 429 Prozeduren eingerichet werden. Melden Sie sich dafür als Benutzer “postgres”
 
 430 an der Datenbank an, und führen Sie die folgenden Kommandos aus:
 
 432    <p><code>create language 'plpgsql';</code>
 
 434    <p>Achtung: In älteren Postgresversionen (vor 8.0) muss der Handler für die
 
 435 Sprache manuell anlelegt werden, diese Versionen werden aber nicht mehr
 
 436 offiziell von Lx-Office unterstützt. Dafür dann die folgenden Kommandos:
 
 438    <p><code>create function plpgsql_call_handler () returns opaque as '/usr/lib/pgsql/plpgsql.so' language 'c';
 
 440 create language 'plpgsql' handler plpgsql_call_handler lancompiler 'pl/pgsql';</code>
 
 442    <p>Bitte beachten Sie, dass der Pfad zur Datei <code>plpgsql.so</code> von Distribution
 
 443 zu Distribution verschiedlich sein kann. Bei Debian/Ubuntu befindet sie sich
 
 444 unter <code>/usr/lib/postgresql/lib/plpgsql.so</code>.
 
 449 <a name="Datenbankbenutzer-anlegen"></a>
 
 450 voriges: <a rel="previous" accesskey="p" href="#Erweiterung-f_00c3_00bcr-servergespeicherte-Prozeduren">Erweiterung für servergespeicherte Prozeduren</a>,
 
 451 aufwärts: <a rel="up" accesskey="u" href="#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>
 
 455 <h3 class="section">4.4 Datenbankbenutzer anlegen</h3>
 
 457 <p>Wenn Sie nicht den Datenbanksuperuser “postgres” zum Zugriff
 
 458 benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer
 
 459 anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen können:
 
 461    <p><code>su - postgres
 
 463 createuser -d -P lxoffice</code>
 
 465    <p>Wenn Sie später einen Datenbankzugriff konfigurieren, verändern Sie
 
 466 den evtl. voreingestellten Benutzer “postgres” auf “lxoffice”
 
 467 bzw. den hier gewählten Benutzernamen.
 
 472 <a name="Apache-Konfiguration"></a>
 
 473 <a name="Apache_002dKonfiguration"></a>
 
 474 nächstes: <a rel="next" accesskey="n" href="#Der-Task_002dServer">Der Task-Server</a>,
 
 475 voriges: <a rel="previous" accesskey="p" href="#Anpassung-der-PostgreSQL_002dKonfiguration">Anpassung der PostgreSQL-Konfiguration</a>,
 
 476 aufwärts: <a rel="up" accesskey="u" href="#Top">Top</a>
 
 480 <h2 class="chapter">5 Apache-Konfiguration</h2>
 
 482 <p>Hinweis: Für einen deutlichen Performanceschub sorgt die Ausführung
 
 483 mittels FCGI. Die Einrichtung wird ausführlich in der Datei
 
 484 <code>INSTALL.fcgi</code> beschrieben.
 
 486    <p>Der Zugriff auf das Programmverzeichnis muss in der Apache
 
 487 Webserverkonfigurationsdatei <code>httpd.conf</code> eingestellt
 
 488 werden. Fügen Sie den folgenden Abschnitt dieser Datei oder einer
 
 489 anderen Datei hinzu, die beim Starten des Webservers eingelesen wird:
 
 492 AddHandler cgi-script .pl
 
 494 Alias /lx-erp/ /var/www/lx-erp/
 
 496 <Directory /var/www/lx-erp>
 
 498   Options ExecCGI Includes FollowSymlinks
 
 503 <Directory /var/www/lx-erp/users>
 
 513    <p>Ersetzen Sie dabei die Pfade durch diejenigen, in die Sie vorher das
 
 514 Lx-Office-Archiv entpacket haben.
 
 516    <p>Achtung: Vor den einzelnen Optionen muss bei einigen Distributionen ein
 
 517 Plus ‘<samp><span class="samp">+</span></samp>’ gesetzt werden.
 
 519    <p>Auf einigen Webservern werden manchmal die Grafiken und Style-Sheets
 
 520 nicht ausgeliefert. In solchen Fällen hat es oft geholfen, die
 
 521 folgende Option in die Konfiguration aufzunehmen:
 
 523    <p><code>EnableSendfile Off</code>
 
 528 <a name="Der-Task-Server"></a>
 
 529 <a name="Der-Task_002dServer"></a>
 
 530 nächstes: <a rel="next" accesskey="n" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>,
 
 531 voriges: <a rel="previous" accesskey="p" href="#Apache_002dKonfiguration">Apache-Konfiguration</a>,
 
 532 aufwärts: <a rel="up" accesskey="u" href="#Top">Top</a>
 
 536 <h2 class="chapter">6 Der Task-Server</h2>
 
 538 <p>Der Task-Server ist ein Prozess, der im Hintergrund läuft, in
 
 539 regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese
 
 540 zu festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser
 
 541 Prozess wird bisher nur für die Erzeugung der wiederkehrenden
 
 542 Rechnungen benutzt, wird aber in Zukunft deutlich mehr Aufgaben
 
 546 <li><a accesskey="1" href="#Konfiguration-des-Task_002dServers">Konfiguration des Task-Servers</a>:  Verfügbare und notwendige Konfigurationsoptionen
 
 547 <li><a accesskey="2" href="#Prozesskontrolle">Prozesskontrolle</a>:  Wie der Task-Server gestartet und beendet wird
 
 548 <li><a accesskey="3" href="#Einbinden-in-den-Boot_002dProzess">Einbinden in den Boot-Prozess</a>:  Automatisches Starten des Task-Servers beim Booten
 
 553 <a name="Konfiguration-des-Task-Servers"></a>
 
 554 <a name="Konfiguration-des-Task_002dServers"></a>
 
 555 nächstes: <a rel="next" accesskey="n" href="#Prozesskontrolle">Prozesskontrolle</a>,
 
 556 aufwärts: <a rel="up" accesskey="u" href="#Der-Task_002dServer">Der Task-Server</a>
 
 560 <h3 class="section">6.1 Verfügbare und notwendige Konfigurationsoptionen</h3>
 
 562 <p>Die Konfiguration erfolgt über den Abschnitt <code>[task_server]</code> in
 
 563 der Datei <samp><span class="file">config/lx_office.conf</span></samp>. Die dort verfügbaren Optionen
 
 567 <li><code>login</code>: 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. 
 
 568 <li><code>run_as</code>: Wird der Server vom Systembenutzer <code>root</code> gestartet, so wechselt er auf den mit <code>run_as</code> angegebenen Systembenutzer. Der Systembenutzer muss dieselben Lese- und Schreibrechte haben, wie auch der Webserverbenutzer (siehe siehe <a href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>). Daher ist es sinnvoll, hier denselben Systembenutzer einzutragen, unter dem auch der Webserver läuft. 
 
 569 <li><code>debug</code>: Schaltet Debug-Informationen an und aus. 
 
 574 <a name="Einbinden-in-den-Boot-Prozess"></a>
 
 575 <a name="Einbinden-in-den-Boot_002dProzess"></a>
 
 576 voriges: <a rel="previous" accesskey="p" href="#Prozesskontrolle">Prozesskontrolle</a>,
 
 577 aufwärts: <a rel="up" accesskey="u" href="#Der-Task_002dServer">Der Task-Server</a>
 
 581 <h3 class="section">6.2 Automatisches Starten des Task-Servers beim Booten</h3>
 
 583 <p>Der Task-Server verhält sich von seinen Optionen her wie ein reguläres
 
 584 SystemV-kompatibles Boot-Script. Außerdem wechselt er beim Starten
 
 585 automatisch in das Lx-Office-Installationsverzeichnis.
 
 587    <p>Deshalb ist es möglich, ihn durch Setzen eines symbolischen Links aus
 
 588 einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess
 
 589 einzubinden. Da das bei neueren Linux-Distributionen aber nicht
 
 590 zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die
 
 591 anstelle eines symbolischen Links verwendet werden können.
 
 593 <h4 class="subsection">6.2.1 SystemV-basierende Systeme (z.B. Debian, OpenSuSE, Fedora Core)</h4>
 
 595 <p>Kopieren Sie die Datei
 
 596 <samp><span class="file">scripts/boot/system-v/lx-office-task-server</span></samp> nach
 
 597 <samp><span class="file">/etc/init.d/lx-office-task-server</span></samp>. Passen Sie in der kopierten
 
 598 Datei den Pfad zum Task-Server an (Zeile <code>DAEMON=....</code>). Binden
 
 599 Sie das Script in den Boot-Prozess ein. Dies ist distributionsabhängig:
 
 602 <li>Debian-basierende Systeme:
 
 604 <code>update-rc.d lx-office-task-server defaults
 
 606 # Nur bei Debian Squeeze und neuer:
 
 608 insserv lx-office-task-server</code>
 
 609 <li>OpenSuSE und Fedora Core:
 
 611 <code>chkconfig --add lx-office-task-server</code>
 
 614    <p>Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
 
 615 <code>/etc/init.d/lx-office-task-server start</code>
 
 617 <h4 class="subsection">6.2.2 Upstart-basierende Systeme (z.B. Ubuntu)</h4>
 
 619 <p>Kopieren Sie die Datei
 
 620 <samp><span class="file">scripts/boot/upstart/lx-office-task-server.conf</span></samp> nach
 
 621 <samp><span class="file">/etc/init/lx-office-task-server.conf</span></samp>. Passen Sie in der kopierten
 
 622 Datei den Pfad zum Task-Server an (Zeile <code>exec ....</code>).
 
 624    <p>Danach kann der Task-Server mit dem folgenden Befehl gestartet werden:
 
 625 <code>service lx-office-task-server start</code>
 
 629 <a name="Prozesskontrolle"></a>
 
 630 nächstes: <a rel="next" accesskey="n" href="#Einbinden-in-den-Boot_002dProzess">Einbinden in den Boot-Prozess</a>,
 
 631 voriges: <a rel="previous" accesskey="p" href="#Konfiguration-des-Task_002dServers">Konfiguration des Task-Servers</a>,
 
 632 aufwärts: <a rel="up" accesskey="u" href="#Der-Task_002dServer">Der Task-Server</a>
 
 636 <h3 class="section">6.3 Wie der Task-Server gestartet und beendet wird</h3>
 
 638 <p>Der Task-Server wird wie folgt kontrolliert:
 
 640    <p><code>./scripts/task_server.pl Befehl</code>
 
 642    <p><code>Befehl</code> ist dabei eine der folgenden Optionen:
 
 645 <li><code>start</code> startet eine neue Instanz des Task-Servers. Die Prozess-ID wird innerhalb des <samp><span class="file">users</span></samp>-Verzeichnisses abgelegt. 
 
 646 <li><code>stop</code> beendet einen laufenden Task-Server. 
 
 647 <li><code>restart</code> beendet und startet ihn neu. 
 
 648 <li><code>status</code> berichtet, ob der Task-Server läuft. 
 
 651    <p>Der Task-Server wechselt beim Starten automatisch in das Lx-Office-Installationsverzeichnis.
 
 653    <p>Dieselben Optionen können auch für die SystemV-basierenden
 
 654 Runlevel-Scripte benutzt werden (siehe oben).
 
 659 <a name="Benutzerauthentifizierung-und-Administratorpasswort"></a>
 
 660 nächstes: <a rel="next" accesskey="n" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>,
 
 661 voriges: <a rel="previous" accesskey="p" href="#Der-Task_002dServer">Der Task-Server</a>,
 
 662 aufwärts: <a rel="up" accesskey="u" href="#Top">Top</a>
 
 666 <h2 class="chapter">7 Benutzerauthentifizierung und Administratorpasswort</h2>
 
 668 <p>Informationen über die Einrichtung der Benutzerauthentifizierung, über
 
 669 die Verwaltung von Gruppen und weitere Einstellungen
 
 672 <li><a accesskey="1" href="#Grundlagen-zur-Benutzerauthentifizierung">Grundlagen zur Benutzerauthentifizierung</a>:  Verfügbare Methoden, Name der Konfigurationsdatei
 
 673 <li><a accesskey="2" href="#Administratorpasswort">Administratorpasswort</a>:  Wo das Administratorpasswort gesetzt werden kann
 
 674 <li><a accesskey="3" href="#Authentifizierungsdatenbank">Authentifizierungsdatenbank</a>:  Verbindungseinstellungen zur Authentifizierungsdatenbank
 
 675 <li><a accesskey="4" href="#Passwort_00c3_00bcberpr_00c3_00bcfung">Passwortüberprüfung</a>:  Einstellungen zur Überprüfung der Benutzerpasswörter
 
 676 <li><a accesskey="5" href="#Name-des-Session_002dCookies">Name des Session-Cookies</a>:  Ändern des Cookie-Namens bei Verwendung mehrerer Lx-Office-Installationen auf einem Server
 
 677 <li><a accesskey="6" href="#Anlegen-der-Authentifizierungsdatenbank">Anlegen der Authentifizierungsdatenbank</a>:  Wie die Authentifizierungsdatenbank angelegt wird
 
 683 <a name="Grundlagen-zur-Benutzerauthentifizierung"></a>
 
 684 nächstes: <a rel="next" accesskey="n" href="#Administratorpasswort">Administratorpasswort</a>,
 
 685 aufwärts: <a rel="up" accesskey="u" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
 
 689 <h3 class="section">7.1 Grundlagen zur Benutzerauthentifizierung</h3>
 
 691 <p>Lx-Office verwaltet die Benutzerinformationen in einer Datenbank, die
 
 692 im folgenden “Authentifizierungsdatenbank” genannt wird. Für jeden
 
 693 Benutzer kann dort eine eigene Datenbank für die eigentlichen
 
 694 Finanzdaten hinterlegt sein. Diese beiden Datenbanken können, müssen
 
 695 aber nicht unterschiedlich sein.
 
 697    <p>Im einfachsten Fall gibt es für Lx-Office nur eine einzige Datenbank,
 
 698 in der sowohl die Benutzerinformationen als auch die Daten abgelegt
 
 701    <p>Zusätzlich ermöglicht es Lx-Office, dass die Benutzerpasswörter
 
 702 entweder gegen die Authentifizierungsdatenbank oder gegen einen
 
 703 LDAP-Server überprüft werden.
 
 705    <p>Welche Art der Passwortüberprüfung Lx-Office benutzt und wie Lx-Office
 
 706 die Authentifizierungsdatenbank erreichen kann, wird in der
 
 707 Konfigurationsdatei <samp><span class="file">config/lx_office.conf</span></samp> festgelegt. Diese
 
 708 muss bei der Installation und bei einem Upgrade von einer Version vor
 
 709 v2.6.0 angelegt werden. Eine Beispielkonfigurationsdatei
 
 710 <samp><span class="file">config/lx_office.conf.default</span></samp> existiert, die als Vorlage
 
 715 <a name="Administratorpasswort"></a>
 
 716 nächstes: <a rel="next" accesskey="n" href="#Authentifizierungsdatenbank">Authentifizierungsdatenbank</a>,
 
 717 voriges: <a rel="previous" accesskey="p" href="#Grundlagen-zur-Benutzerauthentifizierung">Grundlagen zur Benutzerauthentifizierung</a>,
 
 718 aufwärts: <a rel="up" accesskey="u" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
 
 722 <h3 class="section">7.2 Administratorpasswort</h3>
 
 724 <p>Das Passwort, das zum Zugriff auf das Aministrationsinterface benutzt wird,
 
 725 wird ebenfalls in dieser Datei gespeichert. Es kann auch nur dort und nicht
 
 726 mehr im Administrationsinterface selber geändert werden. Der Parameter dazu
 
 727 heißt <code>$self->{admin_password}</code>.
 
 731 <a name="Authentifizierungsdatenbank"></a>
 
 732 nächstes: <a rel="next" accesskey="n" href="#Passwort_00c3_00bcberpr_00c3_00bcfung">Passwortüberprüfung</a>,
 
 733 voriges: <a rel="previous" accesskey="p" href="#Administratorpasswort">Administratorpasswort</a>,
 
 734 aufwärts: <a rel="up" accesskey="u" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
 
 738 <h3 class="section">7.3 Authentifizierungsdatenbank</h3>
 
 740 <p>Die Verbindung zur Authentifizierungsdatenbank wird mit den Parametern
 
 741 in <code>$self->{DB_config}</code> konfiguriert. Hier sind die folgenden
 
 745 <li>‘<samp><span class="samp">host</span></samp>’ – Der Rechnername oder die IP-Adresse des Datenbankservers
 
 746 <li>‘<samp><span class="samp">port</span></samp>’ – Die Portnummer des Datenbankservers, meist 5432
 
 747 <li>‘<samp><span class="samp">db</span></samp>’ – Der Name der Authentifizierungsdatenbank
 
 748 <li>‘<samp><span class="samp">user</span></samp>’ – Der Benutzername, mit dem sich Lx-Office beim Datenbankserver anmeldet (z.B. “postgres”)
 
 749 <li>‘<samp><span class="samp">password</span></samp>’ – Das Passwort für den Datenbankbenutzer
 
 752    <p>Die Datenbank muss noch nicht existieren. Lx-Office kann sie
 
 753 automatisch anlegen (mehr dazu siehe unten).
 
 757 <a name="Passwort%c3%bcberpr%c3%bcfung"></a>
 
 758 <a name="Passwort_00c3_00bcberpr_00c3_00bcfung"></a>
 
 759 nächstes: <a rel="next" accesskey="n" href="#Name-des-Session_002dCookies">Name des Session-Cookies</a>,
 
 760 voriges: <a rel="previous" accesskey="p" href="#Authentifizierungsdatenbank">Authentifizierungsdatenbank</a>,
 
 761 aufwärts: <a rel="up" accesskey="u" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
 
 765 <h3 class="section">7.4 Passwortüberprüfung</h3>
 
 767 <p>Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen die
 
 768 Authentifizierungsdatenbank und gegen einen externen LDAP- oder
 
 769 Active-Directory-Server. Welche davon benutzt wird, regelt der
 
 770 Parameter <code>$self->{module}</code>.
 
 772    <p>Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank
 
 773 gespeichert werden, so muss der Parameter <code>$self->{module}</code> den
 
 774 Wert ‘<samp><span class="samp">DB</span></samp>’ enthalten. In diesem Fall können sowohl der
 
 775 Administrator als auch die Benutzer selber ihre Psaswörter in
 
 778    <p>Soll hingegen ein externer LDAP- oder Active-Directory-Server benutzt
 
 779 werden, so muss der Parameter <code>$self->{module}</code> auf ‘<samp><span class="samp">LDAP</span></samp>’
 
 780 gesetzt werden. In diesem Fall müssen zusätzliche Informationen über
 
 781 den LDAP-Server in <code>$self->{LDAP_config}</code> angegeben werden:
 
 784 <li>‘<samp><span class="samp">host</span></samp>’ – Der Rechnername oder die IP-Adresse des LDAP- oder Active-Directory-Servers. Diese Angabe ist zwingend erforderlich. 
 
 785 <li>‘<samp><span class="samp">port</span></samp>’ – Die Portnummer des LDAP-Servers; meist 389. 
 
 786 <li>‘<samp><span class="samp">tls</span></samp>’ – Wenn Verbindungsverschlüsselung gewünscht ist, so diesen Wert auf ‘<samp><span class="samp">1</span></samp>’ setzen, andernfalls auf ‘<samp><span class="samp">0</span></samp>’ belassen
 
 787 <li>‘<samp><span class="samp">attribute</span></samp>’ – Das LDAP-Attribut, in dem der Benutzername steht, den der Benutzer eingegeben hat. Für Active-Directory-Server
 
 788   ist dies meist ‘<samp><span class="samp">sAMAccountName</span></samp>’, für andere LDAP-Server hingegen ‘<samp><span class="samp">uid</span></samp>’. Diese Angabe ist zwingend erforderlich. 
 
 789 <li>‘<samp><span class="samp">base_dn</span></samp>’ – Der Abschnitt des LDAP-Baumes, der durchsucht werden soll. Diese Angabe ist zwingend erforderlich. 
 
 790 <li>‘<samp><span class="samp">filter</span></samp>’ – Ein optionaler LDAP-Filter. Enthält dieser Filter das Wort <code><%login%></code>, so wird dieses durch den vom Benutzer
 
 791   eingegebenen Benutzernamen ersetzt. Andernfalls wird der LDAP-Baum nach einem Element durchsucht, bei dem das oben angegebene Attribut
 
 792   mit dem Benutzernamen identisch ist. 
 
 793 <li>‘<samp><span class="samp">bind_dn</span></samp>’ und ‘<samp><span class="samp">bind_password</span></samp>’ – Wenn der LDAP-Server eine Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist dies bei
 
 794   Active-Directory-Servern der Fall), so kann diese hier angegeben werden. Für Active-Directory-Server kann als ‘<samp><span class="samp">bind_dn</span></samp>’ entweder eine
 
 795   komplette LDAP-DN wie z.B. ‘<samp><span class="samp">cn=Martin Mustermann,cn=Users,dc=firmendomain</span></samp>’ auch nur der volle Name des Benutzers
 
 796   eingegeben werden; in diesem Beispiel also ‘<samp><span class="samp">Martin Mustermann</span></samp>’. 
 
 801 <a name="Name-des-Session-Cookies"></a>
 
 802 <a name="Name-des-Session_002dCookies"></a>
 
 803 nächstes: <a rel="next" accesskey="n" href="#Anlegen-der-Authentifizierungsdatenbank">Anlegen der Authentifizierungsdatenbank</a>,
 
 804 voriges: <a rel="previous" accesskey="p" href="#Passwort_00c3_00bcberpr_00c3_00bcfung">Passwortüberprüfung</a>,
 
 805 aufwärts: <a rel="up" accesskey="u" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
 
 809 <h3 class="section">7.5 Name des Session-Cookies</h3>
 
 811 <p>Sollen auf einem Server mehrere Lx-Office-Installationen aufgesetzt
 
 812 werden, so müssen die Namen der Session-Cookies für alle
 
 813 Installationen unterschiedlich sein. Der Name des Cookies wird mit dem
 
 814 Parameter <code>$self->{cookie_name}</code> gesetzt.
 
 816    <p>Diese Angabe ist optional, wenn nur eine Installation auf dem Server
 
 821 <a name="Anlegen-der-Authentifizierungsdatenbank"></a>
 
 822 voriges: <a rel="previous" accesskey="p" href="#Name-des-Session_002dCookies">Name des Session-Cookies</a>,
 
 823 aufwärts: <a rel="up" accesskey="u" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>
 
 827 <h3 class="section">7.6 Anlegen der Authentifizierungsdatenbank</h3>
 
 829 <p>Nachdem alle Einstellungen in <samp><span class="file">config/lx_office.conf</span></samp>
 
 830 vorgenommen wurden, muss Lx-Office die Authentifizierungsdatenbank
 
 831 anlegen. Dieses geschieht automatisch, wenn Sie sich im
 
 832 Administrationsmodul anmelden, das unter der folgenden URL erreichbar
 
 835    <p><a href="http://localhost/lx-erp/admin.pl">http://localhost/lx-erp/admin.pl</a>
 
 840 <a name="Benutzer--und-Gruppenverwaltung"></a>
 
 841 <a name="Benutzer_002d-und-Gruppenverwaltung"></a>
 
 842 nächstes: <a rel="next" accesskey="n" href="#Drucken-mit-Lx_002dOffice">Drucken mit Lx-Office</a>,
 
 843 voriges: <a rel="previous" accesskey="p" href="#Benutzerauthentifizierung-und-Administratorpasswort">Benutzerauthentifizierung und Administratorpasswort</a>,
 
 844 aufwärts: <a rel="up" accesskey="u" href="#Top">Top</a>
 
 848 <h2 class="chapter">8 Benutzer- und Gruppenverwaltung</h2>
 
 850 <p>Nach der Installation müssen Benutzer, Gruppen und Datenbanken
 
 851 angelegt werden.  Dieses geschieht im Administrationsmenü, das Sie
 
 852 unter folgender URL finden:
 
 854    <p><a href="http://localhost/lx-erp/admin.pl">http://localhost/lx-erp/admin.pl</a>
 
 856    <p>Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
 
 857 <samp><span class="file">config/lx_office.conf</span></samp> eingetragen haben.
 
 860 <li><a accesskey="1" href="#Zusammenh_00c3_00a4nge">Zusammenhänge</a>:  Übersicht über Benutzer, Gruppen, Berechtigungen und Datenbanken
 
 861 <li><a accesskey="2" href="#Datenbanken-anlegen">Datenbanken anlegen</a>:  Hinweise zum Anlegen von Datenbanken
 
 862 <li><a accesskey="3" href="#Gruppen-anlegen">Gruppen anlegen</a>:  Hinweise zum Anlegen von Gruppen
 
 863 <li><a accesskey="4" href="#Benutzer-anlegen">Benutzer anlegen</a>:  Hinweise zum Anlegen von Benutzern
 
 864 <li><a accesskey="5" href="#Gruppenmitgliedschaften-verwalten">Gruppenmitgliedschaften verwalten</a>:  Wie man Gruppen Benutzer zuordnet
 
 865 <li><a accesskey="6" href="#Migration-alter-Installationen">Migration alter Installationen</a>:  Automatische Übernahme bei Update von einer älteren Version
 
 870 <a name="Zusammenh%c3%a4nge"></a>
 
 871 <a name="Zusammenh_00c3_00a4nge"></a>
 
 872 nächstes: <a rel="next" accesskey="n" href="#Datenbanken-anlegen">Datenbanken anlegen</a>,
 
 873 aufwärts: <a rel="up" accesskey="u" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
 
 877 <h3 class="section">8.1 Zusammenhänge</h3>
 
 879 <p>Lx-Office verwendet eine Datenbank zum Speichern all seiner
 
 880 Informationen wie Kundendaten, Artikel, Angebote, Rechnungen etc. Um
 
 881 mit Lx-Office arbeiten zu können, muss eine Person einen
 
 882 Benutzeraccount haben. Jedem Benutzeraccount wiederum wird genau eine
 
 883 Datenbank zugewiesen, mit der dieser Benutzer arbeiten kann. Es ist
 
 884 möglich und normal, dass mehreren Benutzern die selbe Datenbank
 
 885 zugewiesen wird, sodass sie alle mit den selben Daten arbeiten können.
 
 887    <p>Die Basisdaten der Benutzer, die in der Administration eingegeben
 
 888 werden können, werden in einer zweiten Datenbank gespeichert, der
 
 889 bereits erwähnten Authentifizierungsdatenbank. Diese ist also den
 
 890 Produktivdaten enthaltenden Datenbanken vorgeschaltet. Pro
 
 891 Lx-Office-Installation gibt es nur eine Authentifizierungsdatenbank,
 
 892 aber beliebig viele Datenbanken mit Firmendaten.
 
 894    <p>Lx-Office kann seinen Benutzern Zugriff auf bestimmte
 
 895 Funktionsbereiche erlauben oder verbieten. Wird der Zugriff nicht
 
 896 gestattet, so werden der entsprechenden Menüpunkte auch nicht
 
 897 angezeigt. Diese Rechte werden ebenfalls in der
 
 898 Authentifizierungsdatenbank gespeichert.
 
 900    <p>Um Rechte verteilen zu können, verwendet Lx-Office ein
 
 901 Gruppen-Prinzip. Einer Gruppe kann der Zugriff auf bestimmte Bereiche
 
 902 erlaubt werden. Ein Benutzer wiederum kann Mitglied in einer oder
 
 903 mehrerer Gruppen sein. Der Benutzer hat Zugriff auf alle diejenigen
 
 904 Funktionen, die mindestens einer Gruppe erlaubt sind, in der der
 
 905 Benutzer Mitglied ist.
 
 907    <p>Die allgemeine Reihenfolge, in der Datenbanken, Gruppen und Benutzer
 
 908 angelegt werden sollten, lautet:
 
 911 <li>Datenbank anlegen
 
 914 <li>Benutzer den Gruppen zuordnen
 
 919 <a name="Datenbanken-anlegen"></a>
 
 920 nächstes: <a rel="next" accesskey="n" href="#Gruppen-anlegen">Gruppen anlegen</a>,
 
 921 voriges: <a rel="previous" accesskey="p" href="#Zusammenh_00c3_00a4nge">Zusammenhänge</a>,
 
 922 aufwärts: <a rel="up" accesskey="u" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
 
 926 <h3 class="section">8.2 Datenbanken anlegen</h3>
 
 928 <p>Zuerst muss eine Datenbank angelegt werden. Verwenden Sie für den
 
 929 Datenbankzugriff den vorhin angelegten Benutzer (in unseren Beispielen
 
 930 ist dies ‘<samp><span class="samp">lxoffice</span></samp>’).
 
 932    <p>Wenn Sie für die Lx-Office-Installation nicht den europäischen
 
 933 Schriftsatz ISO-8859-15 sondern UTF-8 (Unicode) benutzen wollen, so
 
 934 müssen Sie vor dem Anlegen der Datenbank in der Datei
 
 935 <samp><span class="file">config/lx_office.conf</span></samp> die Variable <code>dbcharset</code> im
 
 936 Abschnitt <code>system</code> auf den Wert ‘<samp><span class="samp">UTF-8</span></samp>’ setzen. Zusätzlich
 
 937 muss beim Anlegen der Datenbank ‘<samp><span class="samp">UTF-8 Unicode</span></samp>’ als Schriftsatz
 
 940    <p>Bitte beachten Sie, dass alle Datenbanken den selben Zeichensatz
 
 941 verwenden müssen, da diese Einstellungen momentan global in Lx-Office
 
 942 vorgenommen wird und nicht nach Datenbank unterschieden werden
 
 943 kann. Auch die Authentifizierungsdatenbank muss mit diesem Zeichensatz
 
 944 angelegt worden sein.
 
 948 <a name="Gruppen-anlegen"></a>
 
 949 nächstes: <a rel="next" accesskey="n" href="#Benutzer-anlegen">Benutzer anlegen</a>,
 
 950 voriges: <a rel="previous" accesskey="p" href="#Datenbanken-anlegen">Datenbanken anlegen</a>,
 
 951 aufwärts: <a rel="up" accesskey="u" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
 
 955 <h3 class="section">8.3 Gruppen anlegen</h3>
 
 957 <p>Eine Gruppe wird in der Gruppenverwaltung angelegt. Ihr muss ein Name
 
 958 gegeben werden, eine Beschreibung ist hingegen optional. Nach dem
 
 959 Anlegen können Sie die verschiedenen Bereiche wählen, auf die
 
 960 Mitglieder dieser Gruppe Zugriff haben sollen.
 
 962    <p>Benutzergruppen sind unabhängig von Datenbanken, da sie in der
 
 963 Authentifizierungsdatenbank gespeichert werden. Sie gelten für alle
 
 964 Datenbanken, die in dieser Installation verwaltet werden.
 
 968 <a name="Benutzer-anlegen"></a>
 
 969 nächstes: <a rel="next" accesskey="n" href="#Gruppenmitgliedschaften-verwalten">Gruppenmitgliedschaften verwalten</a>,
 
 970 voriges: <a rel="previous" accesskey="p" href="#Gruppen-anlegen">Gruppen anlegen</a>,
 
 971 aufwärts: <a rel="up" accesskey="u" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
 
 975 <h3 class="section">8.4 Benutzer anlegen</h3>
 
 977 <p>Beim Anlegen von Benutzern werden für viele Parameter
 
 978 Standardeinstellungen vorgenommen, die den Gepflogenheiten des
 
 979 deutschen Raumes entsprechen.
 
 981    <p>Zwingend anzugeben sind der Loginname sowie die komplette
 
 982 Datenbankkonfiguration. Wenn die Passwortauthentifizierung über die
 
 983 Datenbank eingestellt ist, so kann hier auch das Benutzerpasswort
 
 984 gesetzt bzw. geändert werden. Ist hingegen die LDAP-Authentifizierung
 
 985 aktiv, so ist das Passwort-Feld deaktiviert.
 
 987    <p>In der Datenbankkonfiguration müssen die Zugriffsdaten einer der eben
 
 988 angelegten Datenbanken eingetragen werden.
 
 992 <a name="Gruppenmitgliedschaften-verwalten"></a>
 
 993 nächstes: <a rel="next" accesskey="n" href="#Migration-alter-Installationen">Migration alter Installationen</a>,
 
 994 voriges: <a rel="previous" accesskey="p" href="#Benutzer-anlegen">Benutzer anlegen</a>,
 
 995 aufwärts: <a rel="up" accesskey="u" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
 
 999 <h3 class="section">8.5 Gruppenmitgliedschaften verwalten</h3>
 
1001 <p>Nach dem Anlegen von Benutzern und Gruppen müssen Benutzer den Gruppen
 
1002 zugewiesen werden. Dazu gibt es zwei Möglichkeiten:
 
1005 <li>In der Gruppenverwaltung wählt man eine Gruppe aus. Im folgenden
 
1006 Dialog kann man dann einzeln die Benutzer der Gruppe hinzufügen. 
 
1007 <li>In der Gruppenverwaltung wählt man das Tool zur Verwaltung der
 
1008 Gruppenmitgliedschaft. Hier wird eine Matrix angezeigt, die alle im
 
1009 System angelegten Gruppen und Benutzer enthält. Durch Setzen der
 
1010 Häkchen wird der Benutzer in der ausgewählten Zeile der Gruppe in der
 
1011 ausgewählten Spalte hinzugefügt.
 
1016 <a name="Migration-alter-Installationen"></a>
 
1017 voriges: <a rel="previous" accesskey="p" href="#Gruppenmitgliedschaften-verwalten">Gruppenmitgliedschaften verwalten</a>,
 
1018 aufwärts: <a rel="up" accesskey="u" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>
 
1022 <h3 class="section">8.6 Migration alter Installationen</h3>
 
1024 <p>Wenn Lx-Office 2.6.2 über eine ältere Version installiert wird, in der
 
1025 die Benutzerdaten noch im Dateisystem im Verzeichnis <code>users</code>
 
1026 verwaltet wurden, so bietet Lx-Office die Möglichkeit, diese
 
1027 Benutzerdaten automatisch in die Authentifizierungsdatenbank zu
 
1028 übernehmen. Dies geschieht, wenn man sich nach dem Update der
 
1029 Installation das erste Mal im Administrationsbereich anmeldet. Findet
 
1030 Lx-Office die Datei <code>users/members</code>, so wird der
 
1031 Migrationsprozess gestartet.
 
1033    <p>Der Migrationsprozess ist nahezu vollautomatisch. Alle Benutzerdaten
 
1034 können übernommen werden. Nach den Benutzerdaten bietet Lx-Office noch
 
1035 die Möglichkeit an, dass automatisch eine Benutzergruppe angelegt
 
1036 wird. Dieser Gruppe wird Zugriff auf alle Funktionen von Lx-Office
 
1037 gewährt. Alle migrierten Benutzern werden Mitglied in dieser
 
1038 Gruppe. Damit wird das Verhalten von Lx-Office bis Version 2.4.3
 
1039 inklusive wiederhergestellt, und die Benutzer können sich sofort
 
1040 wieder anmelden und mit dem System arbeiten.
 
1045 <a name="Drucken-mit-Lx-Office"></a>
 
1046 <a name="Drucken-mit-Lx_002dOffice"></a>
 
1047 nächstes: <a rel="next" accesskey="n" href="#OpenDocument_002dVorlagen">OpenDocument-Vorlagen</a>,
 
1048 voriges: <a rel="previous" accesskey="p" href="#Benutzer_002d-und-Gruppenverwaltung">Benutzer- und Gruppenverwaltung</a>,
 
1049 aufwärts: <a rel="up" accesskey="u" href="#Top">Top</a>
 
1053 <h2 class="chapter">9 Drucken mit Lx-Office</h2>
 
1055 <p>Das Drucksystem von Lx-Office benutzt von Haus aus LaTeX Vorlagen. Um drucken
 
1056 zu können, braucht der Server ein geeignetes LaTeX System. Am einfachsten ist
 
1057 dazu eine <code>texlive</code> Installation. Unter Debianoiden Betriebssystemen sind
 
1060    <p><code>texlive-latex-base texlive-latex-extra texlive-fonts-recommended</code>
 
1062    <p>Diese hinteren beiden enthalten Bibliotheken und Schriftarten die von den
 
1063 Standardvorlagen verwendet werden.
 
1065    <p>TODO: rpm Pakete.
 
1067    <p>In den allermeisten Installationen sollte drucken jetzt schon funktionieren. 
 
1068 Sollte ein Fehler auftreten wirft TeX sehr lange Fehlerbeschreibungen, der
 
1069 eigentliche Fehler ist immer die erste Zeite die mit einem Ausrufezeichen
 
1070 anfängt. Häufig auftretende Fehler sind zum Beispiel:
 
1073 <li>! LaTeX Error: File `eurosym.sty' not found. 
 
1074 Die entsprechende LaTeX-Bibliothek wurde nicht gefunden. Das tritt vor allem
 
1075 bei Vorlagen aus der Community auf. Installieren Sie die entsprechenden Pakete. 
 
1076 <li>! Package inputenc Error: Unicode char \u8:æ¡
\9c not set up for use with LaTeX. 
 
1077 Dieser Fehler tritt auf, wenn sie versuchen mit einer Standardinstallation
 
1078 exotische utf8 Zeichen zu drucken. TeXLive unterstützt von Haus nur romanische
 
1079 Schriften und muss mit diversen Tricks dazu gebracht werden andere Zeichen zu
 
1080 akzeptieren. Adere TeX Systeme wie XeTeX schaffen hier Abhilfe. 
 
1083    <p>Wird garkein Fehler angezeigt sondern nur der Name des Templates, heißt das
 
1084 normalerweise, dass das LaTeX Binary nicht gefunden wurde. Prüfen Sie den Namen
 
1085 in der Konfiguration (Standard: <code>pdflatex</code>), und stellen Sie sicher, dass
 
1086 pdflatex (oder das von Ihnen verwendete System) vom Webserver ausgeführt werden
 
1092 <a name="OpenDocument-Vorlagen"></a>
 
1093 <a name="OpenDocument_002dVorlagen"></a>
 
1094 nächstes: <a rel="next" accesskey="n" href="#Lx_002dOffice-ERP-verwenden">Lx-Office ERP verwenden</a>,
 
1095 voriges: <a rel="previous" accesskey="p" href="#Drucken-mit-Lx_002dOffice">Drucken mit Lx-Office</a>,
 
1096 aufwärts: <a rel="up" accesskey="u" href="#Top">Top</a>
 
1100 <h2 class="chapter">10 OpenDocument-Vorlagen</h2>
 
1102 <p>Lx-Office unterstützt die Verwendung von Vorlagen im
 
1103 OpenDocument-Format, wie es OpenOffice.org ab Version 2
 
1104 erzeugt. Lx-Office kann dabei sowohl neue OpenDocument-Dokumente als
 
1105 auch aus diesen direkt PDF-Dateien erzeugen.  Um die Unterstützung von
 
1106 OpenDocument-Vorlagen zu aktivieren muss in der Datei
 
1107 <samp><span class="file">config/lx_office.conf</span></samp> die Variable <code>opendocument</code> im
 
1108 Abschnitt <code>print_templates</code> auf ‘<samp><span class="samp">1</span></samp>’ stehen.  Dieses ist die
 
1109 Standardeinstellung.
 
1111    <p>Weiterhin muss in der Datei <samp><span class="file">config/lx_office.conf</span></samp> die Variable
 
1112 <code>dbcharset</code> im Abschnitt <code>system</code> auf die Zeichenkodierung
 
1113 gesetzt werden, die auch bei der Speicherung der Daten in der
 
1114 Datenbank verwendet wird. Diese ist in den meisten Fällen "UTF-8".
 
1116    <p>Während die Erzeugung von reinen OpenDocument-Dateien keinerlei
 
1117 weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF
 
1118 OpenOffice.org benötigt. Soll dieses Feature genutzt werden, so muss
 
1119 neben OpenOffice.org ab Version 2 auch der “X virtual frame buffer”
 
1120 (xvfb) installiert werden.  Bei Debian ist er im Paket “xvfb”
 
1121 enthalten. Andere Distributionen enthalten ihn in anderen Paketen.
 
1123    <p>Nach der Installation müssen in der Datei <samp><span class="file">config/lx_config.conf</span></samp>
 
1124 zwei weitere Variablen angepasst werden: <code>openofficeorg_writer</code>
 
1125 muss den vollständigen Pfad zur OpenOffice.org Writer-Anwendung
 
1126 enthalten. <code>xvfb</code> muss den Pfad zum “X virtual frame buffer”
 
1127 enthalten. Beide stehen im Abschnitt <code>applications</code>.
 
1129    <p>Zusätzlich gibt es zwei verschiedene Arten, wie Lx-Office mit
 
1130 OpenOffice kommuniziert. Die erste Variante, die benutzt wird, wenn
 
1131 die Variable <code>$openofficeorg_daemon</code> gesetzt ist, startet ein
 
1132 OpenOffice, das auch nach der Umwandlung des Dokumentes gestartet
 
1133 bleibt. Bei weiteren Umwandlungen wird dann diese laufende Instanz
 
1134 benutzt. Der Vorteil ist, dass die Zeit zur Umwandlung deutlich
 
1135 reduziert wird, weil nicht für jedes Dokument ein OpenOffice gestartet
 
1136 werden muss. Der Nachteil ist, dass diese Methode Python und die
 
1137 Python-UNO-Bindings benötigt, die Bestandteil von OpenOffice 2 sind.
 
1139    <p>Ist <code>$openofficeorg_daemon</code> nicht gesetzt, so wird für jedes
 
1140 Dokument OpenOffice neu gestartet und die Konvertierung mit Hilfe
 
1141 eines Makros durchgeführt. Dieses Makro muss in der Dokumentenvorlage
 
1142 enthalten sein und “Standard.Conversion.ConvertSelfToPDF()”
 
1143 heißen. Die Beispielvorlage ‘<samp><span class="samp">templates/mastertemplates/German/invoice.odt</span></samp>’
 
1144 enthält ein solches Makro, das in jeder anderen Dokumentenvorlage
 
1145 ebenfalls enthalten sein muss.
 
1147    <p>Als letztes muss herausgefunden werden, welchen Namen OpenOffice.org
 
1148 Writer dem Verzeichnis mit den Benutzereinstellungen gibt. Unter
 
1149 Debian ist dies momentan <code>~/.openoffice.org2</code>. Sollte der Name
 
1150 bei Ihrer OpenOffice.org-Installation anders sein, so muss das
 
1151 Verzeichnis <code>users/.openoffice.org2</code> entsprechend umbenannt
 
1152 werden. Ist der Name z.B. einfach nur <code>.openoffice</code>, so wäre
 
1153 folgender Befehl auszuführen:
 
1155    <p><code>mv users/.openoffice.org2 users/.openoffice</code>
 
1157    <p>Dieses Verzeichnis, wie auch das komplette <code>users</code>-Verzeichnis, muss vom
 
1158 Webserver beschreibbar sein. Dieses wurde bereits erledigt
 
1159 (siehe <a href="#Manuelle-Installation-des-Programmpaketes">Manuelle Installation des Programmpaketes</a>), kann aber erneut überprüft
 
1160 werden, wenn die Konvertierung nach PDF fehlschlägt.
 
1165 <a name="Lx-Office-ERP-verwenden"></a>
 
1166 <a name="Lx_002dOffice-ERP-verwenden"></a>
 
1167 voriges: <a rel="previous" accesskey="p" href="#OpenDocument_002dVorlagen">OpenDocument-Vorlagen</a>,
 
1168 aufwärts: <a rel="up" accesskey="u" href="#Top">Top</a>
 
1172 <h2 class="chapter">11 Lx-Office ERP verwenden</h2>
 
1174 <p>Nach erfolgreicher Installation ist der Loginbildschirm unter
 
1175 folgender URL erreichbar:
 
1177    <p><a href="http://localhost/lx-office-erp/login.pl">http://localhost/lx-office-erp/login.pl</a>
 
1179    <p>Die Administrationsseite erreichen Sie unter:
 
1181    <p><a href="http://localhost/lx-office-erp/admin.pl">http://localhost/lx-office-erp/admin.pl</a>