From ba41a21cfb86129ea7b5f93defa8c19ac44696df Mon Sep 17 00:00:00 2001
From: =?utf8?q?Jan=20B=C3=BCren?=
Mitte 2020 (ab Version 3.5.6) empfehlen wir:
Debian
10.0 "Buster"
11.0 "Bullseye"
20.04 "Focal Fossa" LTS -
openSUSE 15.0
Fedora 29
Zum Betrieb von kivitendo werden zwingend ein Webserver (meist +
openSUSE Leap 15.x und SUSE Linux Enterprise Server 15 GA
Fedora 29
Zum Betrieb von kivitendo werden zwingend ein Webserver (meist Apache) und ein Datenbankserver (PostgreSQL) in einer aktuellen Version (s.a. Liste der unterstützten Betriebssysteme) benötigt.
Zusätzlich benötigt kivitendo einige Perl-Pakete, die nicht @@ -175,8 +175,8 @@ perl-Params-Validate perl-Regexp-IPv6 perl-Rose-DB perl-Rose-DB-Object \ perl-Rose-Object perl-Sort-Naturally perl-String-ShellQuote \ perl-Template-Toolkit perl-Text-CSV_XS perl-Text-Iconv perl-URI perl-XML-Writer \ - perl-YAML perl-libwww-perl
Für openSUSE stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung.
Dies setzt voraus, das eben die erforderlichen Repositories dem System bekannt gemacht worden sind.
Um zusätzliche Repositories für die Installation zur Verfügung zu stellen, kann man diese mit YaST oder auch in einem Terminal auf der Konsole bekannt geben. Wir beschränken uns hier mit der Eingabe auf der Konsole. Da wahrscheinlich für die Administration eine SSH-Verbindung zum Server benutzt wird.
Dazu geben wir folgenden Befehl ein:
zypper addrepo -f \ - http://download.opensuse.org/repositories/devel:languages:perl/openSUSE_Leap_15.0/ \ + perl-YAML perl-libwww-perl
Für openSUSE Leap 15.x stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung.
Damit diese installiert werden können, muà das System die erforderlichen Repositories kennen und Zugriff über das Internet darauf haben.
Daher machen wir die Repositories dem System bekannt.
Um die zusätzlichen Repositories für die Installation zur Verfügung zu stellen, kann man diese mit YaST oder auch in einem Terminal auf der Konsole bekannt geben. Wir beschränken uns hier mit der Eingabe auf der Konsole. In den allermeisten Fällen verwenden die Administratoren eine sichere SSH-Verbindung zum zu administrierenden Server.
Dazu geben wir folgenden Befehl ein:
zypper addrepo -f \ + http://download.opensuse.org/repositories/devel:languages:perl/openSUSE_Leap_15.2/ \ "devel:languages:perl"
zypper addrepo -f \ https://download.opensuse.org/repositories/devel:languages:haskell:lts:13/\ @@ -184,7 +184,7 @@
zypper addrepo -f \ https://download.opensuse.org/repositories/devel:languages:haskell:lts:13/\ openSUSE_Leap_15.0/ "devel:languages:haskell:lts:13" -
Danach geben wir noch die beiden folgenden Befehle ein:
zypper clean
zypper refresh
Sollte zypper eine Meldung ausgeben, ob der Repositorie Key abgelehnt, nicht vertraut oder für immer akzeptiert werden soll, ist die Beantwortung durch drücken der "i" Taste am besten geeignet. Wer noch mehr über zypper erfahren möchte, kann sich einmal die zypper Hilfe anschauen.
zypper --help
Anmerkung | |
---|---|
Offiziell wird von openSUSE nur noch Versionen ab 15.0 unterstützt. Die SuSE Macher haben ab Version 15.0 einen gröÃen Umbau in der Verwaltung der Pakete vorgenommen, das heiÃt, der Paketumfang ist der SLES 15 als kleinsten Nenner angepasst. Dies gilt besonders der openSUE Distribution. Es gibt ja einmal die openSUSE Distri und die Professionelle SLES Version. Dadurch sind viele Pakete aus dem Repositorie enfernt worden, aber auch viele auf aktuellen Stand gehalten. |
Das überprüfen wir mit YaST. Sollte openSUSE bis zur Version 15.0 zum Einsatz kommen und der Administrator bei der Installation der Distribution die KDE Oberfläche aktiviert hat, loggen wir uns am Server direkt ein, starten das Verwaltungsprogram in einer Konsole wie folgt:
yast2 return.
Oder über die Menüführung wie folgt: Ein Klick auf das runde Icon, ganz links unten in der Menüleiste dann die Maus Verfahren auf System und YaST.
Sie können mit folgendem Befehl installiert werden:
zypper install Paketname
Es wird empfohlen zusätzliche Pakete nicht direkt mit CPAN zu installieren, da man diese auch über andere Repositories beziehen kann, die bei openSUSE zur Verfügung stehen. Dadurch hat man den Vorteil, dass die Pakete mit YaST verwaltet werden, also wieder deinstalliert oder durch neuere ersetzt werden können. Zudem kann man auch noch eventuelle Bugs an openSUSE senden und diese dem Maintainer melden.
zypper install perl-threads-shared ghc-pdfinfo apache2-mod_fcgid \ +
Danach geben wir noch die beiden folgenden Befehle ein:
zypper clean
zypper refresh
Sollte zypper eine Meldung ausgeben, ob der Repositorie Key abgelehnt, nicht vertraut oder für immer akzeptiert werden soll, ist die Beantwortung durch drücken der "i" Taste am besten geeignet. Wer noch mehr über zypper erfahren möchte, kann sich einmal die zypper Hilfe anschauen.
zypper --help
Anmerkung | |
---|---|
Offiziell wird von openSUSE nur noch Versionen ab 15.2 unterstützt. Die SuSE Macher haben ab Version 15.x einen groÃen Umbau in der Verwaltung der Pakete vorgenommen, das heiÃt, der Paketumfang ist der SLES 15 als Programmunterbau angepasst. Dies gilt besonders der openSUSE Distribution. Es gibt ja einmal die openSUSE Distri und die Professionelle SLES Version. Dadurch sind viele Pakete aus dem ursprünglich nur für die openSUSE geltenen Repositorie enfernt worden, aber auch viele auf aktuellem Stand gehalten. |
Ab openSUSE Leap 15.x kann man die Distribution auch als reine Text Version, also ohne KDE Oberfläche aufsetzen. Vorteil hierbei ist, dass weniger Balast und unnötige Pakte installiert werden.
Bei openSUSE Versionen bis 15.x, also 10.x, 11.x, 12.x, 13.x hatte der Administrator die Möglichkeit, bei der Installation der Distribution die KDE Oberfläche zu aktivieren. In dieser Konstellation hat man die Möglichkeit, eine VNC Verbindung vom administrativen Client zu verwenden. Ist das nicht eingerichtet, arbeitet der Admin dann direkt am Bildschirm des Servers. Nun loggen wir uns am Server direkt ein, starten Yast2 in einer Konsole wie folgt:
yast2 return.
Oder über die Menüführung wie folgt: Ein Klick auf das runde Icon, ganz links unten in der Menüleiste, dann die Maus verfahren auf System und YaST.
Im weiteren Verlauf der Installation, beschränken wir uns mit dem Installations Werkzeug zypper. Zypper ist ein Komandozeilen basiertes Installations Tool, welches bei openSUSE Standard ist. Zypper weist ein etwas eigenartiges Verhalten auf, dass sich in etwa wie folgt darstellt. Hat man die Repositories eingerichtet, kann man diese mit Yast als auch mit Zypper benutzen, setzt man einen Befehl wie etwa: zypper up ab, so findet zypper mehr neuere Programmversionen als Yast. Ich habe im allgemeinen noch keine Nachteile damit erlebt.
Programmpakete können mit folgendem Befehl installiert werden:
zypper install Paketname
Es wird empfohlen zusätzliche Pakete nicht direkt mit CPAN zu installieren, da man diese auch über andere Repositories beziehen kann, die bei openSUSE zur Verfügung stehen. Dadurch hat man den Vorteil, dass die Pakete mit YaST verwaltet werden, also wieder deinstalliert oder durch neuere ersetzt werden können. Zudem kann man auch noch eventuelle Bugs an openSUSE senden und diese dem Maintainer melden.
zypper install perl-threads-shared ghc-pdfinfo apache2-mod_fcgid \ yast2-http-server postgresql-server postgresql-contrib perl-Algorithm-CheckDigits \ perl-Archive-Zip perl-CGI perl-CGI-Ajax perl-Clone \ perl-Config-Std perl-Class-XSAccessor perl-Daemon-Generic perl-DateTime \ @@ -208,7 +208,7 @@ perl-Error-Pure perl-File-Object perl-Readonly perl-Test-Warnings \ perl-Test-NoWarnings perl-Test-Deep perl-Test-Output perl-Test-Strict \ perl-Test-LongString perl-File-Find-Rule -
Zusätzlich müssen einige Pakete für den Umgang mit Latex installiert werden. Die Latex Module barcodes sind nützliche Helfer um auch Barcodes im Dokument zu plazieren, der Vollständigkeit halber hier für die Installation mit angegeben. +
Zusätzlich müssen einige Pakete für den Umgang mit Latex installiert werden. Die Latex Module barcodes sind nützliche Helfer um auch Barcodes im Dokument zu platzieren, der Vollständigkeit halber hier für die Installation mit angegeben. Dazu können Sie die folgenden Befehle nutzen:
zypper install texlive-wallpaper texlive-colortbl \ texlive-scrlttr2copy texlive-eurosym \ texlive-geometry texlive-german texlive-graphbox texlive-hyperref \ @@ -219,8 +219,8 @@ texlive-GS1 texlive-ean texlive-makebarcode texlive-pst-barcode \ texlive-upca
Zusätzlich müssen einige Pakete aus dem CPAN installiert - werden. Dazu können Sie die folgenden Befehle nutzen:
cpan DateTime::event::Cron DateTime::Set FCGI \ - HTML::Restrict PBKDF2::Tiny Rose::Db::Object Set::Infinite
+ werden. Dazu können Sie die folgenden Befehle anwenden:
cpan DateTime::event::Cron DateTime::Set FCGI \ + HTML::Restrict PBKDF2::Tiny Rose::Db::Object Set::Infinite
aqbanking-tools
Für das Parsen des MT940 Bankformats (Version 6 oder höher)
poppler-utils
'pdfinfo' zum Erkennen der Seitenanzahl bei der PDF-Generierung
Postgres Trigram-Index
Für datenbankoptimierte Suchanfragen. Bspw. im Paket postgresql-contrib
enthalten
Debian und Ubuntu:
apt install aqbanking-tools postgresql-contrib poppler-utils
diff --git a/doc/html/ch02s06.html b/doc/html/ch02s06.html index 129a0b405..06498fa0e 100644 --- a/doc/html/ch02s06.html +++ b/doc/html/ch02s06.html @@ -1,6 +1,6 @@
-Anmerkung | ||||||
---|---|---|---|---|---|---|
Für einen deutlichen Performanceschub sorgt die Ausführung +
Der Zugriff auf das Programmverzeichnis muss in der Apache
Webserverkonfigurationsdatei Dann ist unter
Kivitendo unterstützt, dass Benutzerauthentifizierung über den Webserver mittels des »Basic«-HTTP-Authentifizierungs-Schema erfolgt
(siehe RFC 7617). Dazu ist es aber nötig, dass der dabei vom Client
mitgeschickte Header SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 + SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 Aufgrund von aktuellen (Mitte 2020) Sicherheitswarnungen für git basierte Webanwendungen ist die mitausgelieferte .htaccess restriktiver geworden und verhindert somit das Auslesen von git basierten Daten. Für debian/ubuntu muss das Modul mod_rewrite einmalig so aktiviert werden: @@ -125,7 +125,7 @@ Alias /url/for/kivitendo-erp-fcgid/ /path/to/kivitendo-erp/ Require all denied </DirectoryMatch> - Für einen deutlichen Sicherheitsmehrwert sorgt die Ausführung von kivitendo nur über https-verschlüsselten Verbindungen, sowie weiteren Zusatzmassnahmen, wie beispielsweise Basic Authenticate. Die Konfigurationsmöglichkeiten sprengen allerdings den Rahmen dieser diff --git a/doc/html/ch02s07.html b/doc/html/ch02s07.html index c6486b9f9..986d8a5db 100644 --- a/doc/html/ch02s07.html +++ b/doc/html/ch02s07.html @@ -44,7 +44,7 @@ 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. 2.7.3.1. SystemV-basierende Systeme (z.B. ältere Debian, ältere
+ anstelle eines symbolischen Links verwendet werden können.Kopieren Sie die Datei
Danach kann der Task-Server mit dem folgenden Befehl gestartet - werden: /etc/init.d/kivitendo-task-server start Kopieren Sie die Datei + werden: /etc/init.d/kivitendo-task-server start Kopieren Sie die Datei
Danach kann der Task-Server mit dem folgenden Befehl gestartet - werden: service kivitendo-task-server start 2.7.3.3. systemd-basierende Systeme (z.B. neure openSUSE, neuere
+ werden: |
Warnung | |
---|---|
Zugriff auf die Konfiguration erfolgt im Moment über - Hashkeys, sind also nicht gegen Tippfehler abgesichert. |
Objekt der Klasse
"SL::InstanceConfiguration
"
wird pro Request neu erstellt
Funktioniert wie $::lx_office_conf
,
speichert aber Daten die von der Instanz abhängig sind. Eine Instanz
ist hier eine Mandantendatenbank. Beispielsweise überprüft
$::instance_conf->get_inventory_system eq 'perpetual'
- ob die berüchtigte Bestandsmethode zur Anwendung kommt.
Objekt der Klasse + ob die berüchtigte Bestandsmethode zur Anwendung kommt.
Objekt der Klasse
"SL::Dispatcher
"
wird pro Serverprozess erstellt.
enthält Informationen über die technische Verbindung zum Server
Der dritte Punkt ist auch der einzige Grund warum das Objekt global gespeichert wird. Wird vermutlich irgendwann in einem anderen - Objekt untergebracht.
Hashref (evtl später Objekt)
Wird pro Request neu initialisiert.
Keine Unterstruktur garantiert.
+ Objekt untergebracht.
Hashref (evtl später Objekt)
Wird pro Request neu initialisiert.
Keine Unterstruktur garantiert.
$::request
ist ein generischer Platz um
Daten "für den aktuellen Request" abzulegen. Sollte nicht für action
at a distance benutzt werden, sondern um lokales memoizing zu
@@ -176,20 +176,20 @@ file_name = /tmp/kivitendo-debug.log
ist der Key f
$::request
Muss ich von anderen Teilen des Programms lesend drauf
zugreifen? Dann $::request
, aber Zugriff über
- Wrappermethode
Die folgenden Variablen waren einmal im Programm, und wurden - entfernt.
Die folgenden Variablen waren einmal im Programm, und wurden + entfernt.
war nötig, weil cookie Methoden nicht als Klassenfunktionen funktionieren
Aufruf als Klasse erzeugt Dummyobjekt was im Klassennamespace gehalten wird und über Requestgrenzen leaked
liegt jetzt unter
$::request->{cgi}
-
war nötig, weil einige Funktionen in Schleifen zum Teil ein paar hundert mal pro Request eine Liste der Einheiten brauchen, und de als Parameter durch einen Riesenstack von Funktionen geschleift werden müssten.
Liegt jetzt unter
$::request->{cache}{all_units}
Wird nur in
AM->retrieve_all_units()
gesetzt oder
- gelesen.
Inhaltsverzeichnis
Inhaltsverzeichnis
bp=}G_$(~4_g
z-G~H2xRq2Gh^L&hqhtNRoL6JKJWj(ThM7iTe#h>-Dnuv<7FjA?&Rbu=PZSv{Oax94
zJ=&n~*EBXh1Yda!UNV^*d%lqBUwFr%FG>?Y4KezRgh4&%6@5Ft?5!)22YYU`o$lFG
z8_aZUmG^K_CuK43zNM;HAQIPNOR&?QwF4*40*6-#XbhVN96daneb=@TfM!kHaFgdW
zQb-EM!GwDEsmLw%D0LiuAJy#zQYPdrX_ 1n88Tk^hrE}oDo
zg|89PttKx+Ztt>FOEf)wy7uZ)ETm=M`HWyJtK!nFePHv$j^knRV>NbSUifvEpGOnS
z)(Oaa&zr`0cK1Vna^-9nmqiZT!i>f8pvj#`Z}T&JHMgr6^7KW_41vGGip^ru#GfAD
z(>?B8z*)4%|6{AoDQZL0ShfGvfS`p%gR?NrY@7#@!8%_VoW)djEZ-^@>OPw5_IC9#
z^n?B ;V@*r5T&ZJc2sIpZiXCPF?Or&7&1VV8sf3-s7j5
z-?wh0VN3XN@wk7qk^0e}9>?||Ra)qWfg2JOZKm7t64*8QMNA$XgYUD*`767mH%#ZF
zDpp(c4`;zvkw+OPF}P3jRxqLxfkofv{dPrSwfne-dHy&J$B#z=1-rxOxm66n#GlV+
zTxXrc=R4<`#v