ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Aufsetzen eines Gastro-Kassensystems mit OrderSprinter

Achtung!

Die Verwendung dieses Howto geschieht auf eigene Gefahr. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos.

Hinweis:

Diese Howto-Anleitung wurde zuletzt von Zauberfee am 11.05.2018 unter Ubuntu Bionic Beaver erfolgreich getestet.

Dieses Howto beschreibt die Installation und Ersteinrichtung der Software OrderSprinter zum Aufbau eines Gastro-POS auf einem aktuellen Ubuntu.

Zu Beginn wird eine Einordnung in den Kontext vorgenommen: Warum sollte man ein Kassensystem unter Linux aufsetzen, welche Anforderungen gelten an Kassensysteme und welche Programme sind dem Autor bekannt, die diese Anforderungen für Deutschland umsetzen?

Anforderungen an Kassensysteme

Ein Kassensystem (auch als POS abgekürzt: Point-of-Sales bzw. Point-of-Service) unterstützt im Handel und der Gastronomie den Verkäufer bei der Abwicklung eines Verkaufsvorgangs.

In der Gastronomie muss ein Kassensystem besondere Anforderungen erfüllen, die weit über die Funktionalität einer reinen elektronischen Registrierkasse hinausgehen:

  • Bestellungen müssen auf Tische buchbar sein, die Zuweisung muss jederzeit veränderbar sein (Tischwechsel)

  • Bestellungen müssen gegebenenfalls zusätzlich auf konkrete Kunden oder Zimmer buchbar sein (Hotelbetrieb)

  • Teilabrechnungen von Bestellvorgängen (Gäste eines Tisches zahlen einzeln)

  • Produktvariationen (Pommes mit Ketchup und/oder Majo) mit Preisen je nach gewählten Optionen

  • Ausgabe von Bewirtungsbelegen

  • Arbeitsbons oder digitale Workflowanzeigen (Produkte müssen schließlich zubereitet werden)

  • Verteilung von Bons (Arbeitsbons, Kassenbons) auf Bondrucker an unterschiedlichen Locations

Gastronomische Betriebe in Europa unterliegen vielen rechtlichen Auflagen, die von Land zu Land stark variieren. Neben Hygienevorschriften und baulichen Vorgaben (Fluchtwege, Toiletten usw.) sind es vor allem die steuerrechtlichen Regelungen, deren Umsetzung mitnichten trivial ist. In Deutschland gilt die GoBD (Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern, Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff), die aus der GdPdU (Grundsätze zum Datenzugriff und zur Prüfbarkeit digitaler Unterlagen) hervorgegangen ist.

Neben den harten Anforderungen gibt es verschiedene weiche Kriterien, die ein gutes Kassensystem ausmachen:

  • Skalierbarkeit: Je nach Wochentag und Uhrzeit wechselt das Gästeaufkommen. Insbesondere während der Spitzenzeiten muss ein System performant arbeiten.

  • mobile Bestellaufnahme: Kann eine Bestellung direkt beim Gast aufgenommen werden, bei der anschließend ein Arbeitsbon in der Küche gedruckt wird, spart das Zeit und Personalkosten.

  • Exportmöglichkeiten: Ein Gastronom ist verpflichtet, alle umsatzrelevanten Daten über einen Zeitraum von zehn Jahren aufzubewahren.

  • intuitive Benutzeroberfläche: In der Gastronomie wechseln die Bediener sehr häufig. Zeit für eine ausführliche Einarbeitung von Teilzeitkräften ist oft nicht vorhanden.

  • abgestuftes Rechtemanagement: GoBD und BMF-Schreiben fordern z.B. eine Dokumentation, welche Bediener Stornierungsvorgänge wann durchführen konnten.

Linux als Betriebssystem für ein Kassensystem

Ein Linux-System als Grundlage für ein Kassensystem bietet sich aus den oben genannten Gründen an:

  • Updates sind besser planbar: Kellner wollen nicht warten, wenn ein Windows 10 Kassensystem entschieden hat, nun erst einmal Updates zu installieren und vielleicht sogar neu gestartet werden möchte.

  • Ein Linux-System kann so aufgesetzt werden, dass nur die relevanten Komponenten installiert sind: Das macht das Gesamtsystem schneller und sicherer.

  • Im Gegensatz zu vielen Cloud-Diensten bleiben die sensiblen Umsatzdaten lokal beim Gastronomen.

  • Kosten: Da keine Lizenzkosten für ein kommerzielles Betriebssystem anfallen und auch ältere Hardware noch benutzt werden kann, fallen die TCO (Total Cost of Ownership) geringer aus.

Verfügbare Software

In Deutschland (nicht in Österreich, hier gilt die RKSV!) hat der Gastronom die Auswahl aus drei nicht-kommerziellen Kassensystemen, die die oben aufgeführten Anforderungen erfüllen:

  • OpenBravo POS: OpenBravo POS ist eine Rich-Client-Software und benötigt eine Java VM und eine Oracle-, PostgreSQL-, MySQL- oder HSQLDB-Datenbank. Die Integration mit OpenBravo ERP ist bei Betrieben von Vorteil, die alle Ressourcen (Personal, Lager, Betriebsmittel, Kapital) per Software verwalten wollen. Allerdings ist das System nicht für die Anbindung von mobilen Endgeräten konzipiert.

  • POSPer: POSper ist ebenso eine Rich-Client-Software und verwendet Java und Hibernate als Zwischenschicht zur Datenbank (MySql, PostGreSQL, Oracle, HSQLDB und andere). Die Oberfläche ist in viele Sprachen übersetzt worden, so dass sich der Einsatz des Programms besonders für Betriebe eignet, die ausländisches Bedienpersonal beschäftigen. POSper ist gut auf stationären großen Touchpanels bedienbar.

  • OrderSprinter: Die Kernkomponente ist eine Webapplikation mit PHP und einer Datenbank MySQL/MariaDB. Es werden bis zu 6 Kassenbon- und 4 Arbeitsbondrucker unterstützt, die auf Linux-Systemen mit den in der Software enthaltenen Java-Druckserver angebunden werden können. Die Bestelloberfläche ist sowohl in einer PC-geeigneten als auch mobilen Ansicht programmiert. Da es sich im Grunde um eine Webapplikation handelt, ist eine Bedienung mit handelsüblichen Smartphones möglich.

Installation

Dieser Artikel bezieht sich auf die Installation von OrderSprinter auf einem Ubuntu-System. Am Ende dieses HowTos steht ein Gesamtsystem bestehend aus einem OrderSprinter-Server und einem Druckerserver für einen lokal angeschlossenen Bondrucker.

Vorbereitung

Benötigte Hardware:

  • Computer mit frisch installiertem Ubuntu. Unter Ubuntu 18.04 reicht die Installationsvariante "Minimale Installation" (wurden bereits Änderungen am System vorgenommen, ist die Installation möglicherweise anzupassen)

  • WLAN-Router

  • mobiles Endgerät (Smartphone, Tablet etc.)

  • USB-Bondrucker (muss das ESC/POS-Protokoll beherrschen, aber das ist i.d.R. immer der Fall bei Bondruckern)

Installation

Die Installation besteht aus folgenden Schritte:

  1. Installation der richtigen Umgebung (Webserver, Datenbank, PHP mit den richtigen Extensions)

  2. Installation der Webapplikation

  3. Installation des Druckservers (Einbau als Service)

Installation der Umgebung

Beim hier vorgestellten Installationsweg soll ein LAMP-System (Linux-Apache-MariaDB-PHP) aufgesetzt werden. Alternativ zu Apache könnte man auch Nginx oder lighttpd verwenden. Als PHP-Version soll die Version 7 verwendet werden. Der OrderSprinter-Autor testet seine Software zwar mit PHP 5.6, aber PHP 7 ist neuer und schneller in der Abarbeitung. Als Datenbank kann man MariaDb den Vorzug vor MySql geben, weil der OrderSprinter-Entwickler MariaDb für seine Tests verwendet und beide Datenbanken funktionell gleichwertig sind. Je näher man die Umgebung nachbildet, in der eine Software programmiert wird, desto besser ist vermutlich die Kompatibilität gewährleistet. Zusätzlich sind einige php-Erweiterungen zu installieren, die von OrderSprinter später benötigt werden. Die Installation von Java wird für den Druckerserver benötigt:

sudo apt-get install apache2
sudo apt-get install libapache2-mod-php
sudo apt-get install php php-mysql
sudo apt-get install mariadb-server
sudo apt-get install php-gd php-curl php-zip php-xml
sudo service apache2 restart
sudo apt-get install openjdk-8-jre 

Die Installation des Datenbank-Servers installiert den Client automatisch mit. Das Datenbankadmin-Konto hat nun noch kein Passwort und es ist einfach möglich, als root in der Datenbank zu arbeiten. Daher sollte nun ein Passwort für den Root-Benutzer gesetzt werden:

sudo mysqladmin -u root password 123 

Anschließend meldet man sich als root mit dem Passwort "123" an:

sudo mysql -u root --password=123 

Wie man sieht, kann man nun als Administrator in der DB arbeiten, d.h. grundlegende Operationen in ihr durchführen.

OrderSprinter benötigt eine Datenbank, also soll sie nun vorbereitet werden:

CREATE DATABASE ordersprinter DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 

Anschließend wird ein Benutzer definiert, der alle Rechte in der Datenbank besitzt:

GRANT ALL ON ordersprinter.* TO os@localhost IDENTIFIED BY "secret"; 

Auch hier kann man sich überlegen, ob nicht alle Rechte vergeben werden sollen.

Installation der Webapplikation

OrderSprinter lässt sich von http://www.ordersprinter.de auf der Unterseite "Download" herunterladen.

Wenn man das Downloadpaket von OrderSprinter entpackt (unzip), so sieht man mehrere Unterverzeichnisse:

  • webapp: die Kernkomponente

  • printserver: der Windows-Printserver (für eine Installation auf Ubuntu nicht interessant)

  • javaprinter: der Java-Printserver, der später auf dem Ubuntu-System den Bondrucker bedienen soll

  • scripts: Beispiel-Skripte für eine Datensicherung auf einem Memory-Stick

Hat man Apache wie oben beschrieben installiert, so liefert er standardmäßig die Dateien unter /var/www/html an anfragende Webclients aus. Da die Kernkomponente eine Webapplikation ist, muss diese nun nach html verschoben werden. Dazu wechselt man in das Verzeichnis des entpackten OrderSprinter-Downloads und kopiert die Dateien des webapp-Verzeichnisses in den Webspace:

sudo mv webapp/* /var/www/html/ 

Damit die Installation funktioniert, müssen während der Installation das Unterverzeichnis php und die darin enthaltene Datei config.php vom Webserver beschreibbar sein. Der Account und die Gruppe, unter der Apache standardmäßig läuft, ist www-data. Daher sollte zunächst der Eigentümer der Dateien (rekursiv im Verzeichnis über das R-Flag) geschrieben werden:

sudo chown -R www-data:www-data /var/www/html 

Anschließend gibt man der Gruppe und dem Benutzer der Dateien Schreibrechte auf das Verzeichnis php und die darin enthaltene Datei config.php. Das Verzeichnis php muss dazu auch Execute-Rechte besitzen, damit das Installationsskript auf den Inhalt zugreifen kann:

sudo chmod 774 /var/www/html/php
sudo chmod 664 /var/www/html/php/config.php 

OrderSprinter beherrscht das vom Softwareautor sogenannte "Auto-Update". Dabei aktualisiert sich die Webapplikation auf Anforderung durch einen Button-Klick in der Verwaltungsansicht selbstständig, indem die veränderten Dateien von der Homepage des Anbieters heruntergeladen und im Webverzeichnis gespeichert werden. Damit dies funktionieren kann, muss der Account des Webservers (www-data) Schreibrechte auf alle Dateien im html- und seinen Unterverzeichnissen besitzen. Es ist eine Abwägungssache, ob man diese Möglichkeit nutzen möchte, oder die Schreibrechte einschränkt lässt und in der Konsequenz zükünftige Versionsupdates über den manuellen Weg vornehmen möchte.

Die Systemumgebung ist nun eingerichtet, so dass im nächsten Schritt die Installation von OrderSprinter vorgenommen werden kann.

Ersteinrichtung

Die Ersteinrichtung besteht aus folgenden Schritten:

  1. Aufruf der Installationsseite von OrderSprinter und Wahl geeigneter Startparameter

  2. Grundlegende Konfiguration, so dass der Druckerservice die Jobs beim OrderSprinter abholen kann.

  3. Beispielspeisekarte, Raumplan, Benutzer

Installation der Webapplikation

Öffnet man den Webbrowser (z.B. Firefox, denn damit testet auch der OrderSprinter-Autor) und ruft die URL http://localhost auf, sollte man die Installationsseite sehen. Erscheint stattdessen die Ubuntu-Informationsseite, wird Inhalt aus dem Cache dargestellt. In diesem Fall hilft ein Reload der Webseite.

Im ersten Schritt muss man sich für die Sprache entscheiden. Zur Auswahl stehen Deutsch, Englisch und Spanisch. Die gewählte Sprache wird nicht nur für die Installation verwendet, sondern auch den Beispielbenutzern automatisch zugewiesen (kann aber später geändert werden).

Anschließend wird die Zeitzone abgefragt. Die Zeitzone ist wichtig, damit die Zeitangaben auf den Kassenbons später korrekt sind.

Danach erreicht man die wichtigste Einstellungsseite:

installationsseite.png

Im Bereich Datenbank sind die Einstellungen für Datenbank-Name, -Benutzer und -Passwort vorzunehmen, die im vorangegangenen Abschnitt beim Anlegen der Datenbank festgelegt wurden (ordersprinter, os, secret). Ein Tabellenpräfix kann frei gewählt werden. Das Präfix ist nur dann interessant, wenn mehrere Applikationen die gleiche Datenbank verwenden sollen. Das ist für die Installation in kommerziellen Webpaketen interessant. In einem selbst verwalteten Ubuntu-System kann man sich beliebig viele Datenbanken anlegen, so dass die Einstellung hier irrelevant ist. Drückt man nun den Button Teste DB-Zugriff, sollte eine mögliche Fehlermeldung durch ein OK ersetzt werden.

Wurden die Schreibrechte richtig gesetzt, so wird auch dies angezeigt.

Fehlen php-Erweiterungen, so würden die fehlenden Erweiterungen hier angezeigt.

Bevor die Installation startet, muss man ein Administrator-Passwort festlegen.

Die Installation startet, wenn man den Button Starte Installation anklickt. Dabei werden die Tabellen in der Datenbank angelegt, gewisse Voreinstellungen vorgenommen und die Konfigurationsdatei config.php, die die Zugangsparameter für die Datenbank enthält, beschrieben. Dieser Vorgang kann einige Sekunden in Anspruch nehmen.

Anschließend muss man sich für einen Arbeitsablauf entscheiden:

  • Digital: Verzicht auf Arbeitsbons. Bestellungen werden in einer Küchen- und Baransicht aufgeführt.

  • Arbeitsbons: Bestellungen werden auf Arbeitsbons ausgedruckt (klassischer Ablauf in Gastronomiebetrieben)

  • Arbeitsbons und Digital: Der Kellner kann sich bei der Bestellaufnahme entscheiden, welchen Arbeitsablauf er für die jeweilige Bestellung wünscht.

Hat man noch keine Erfahrung mit der Software gemacht, bietet sich die letzte Einstellung an, da man alle Optionen austesten kann.

In einem abschließenden Schritt kann wählen, ob neben einem obligatorisch angelegten Admin-Benutzer weitere Benutzer, eine Beispielspeisekarte und ein Musterraumplan angelegt werden sollen. Auch hier sollte man zum Einstieg die letzte Option wählen, denn Löschen und Überschreiben von Einstellungen sind jederzeit möglich.

beispieldaten.png

Hat man sich entschieden, neben dem Admin weitere Benutzer anzulegen, bekommen diese Benutzer ebenso das im vorangegangenen Schritt eingegebene Passwort zugewiesen.

Die Installation ist abgeschlossen, wenn folgende Meldung erscheint:

installationfertig.png

Bestätigt man diese Meldung, so wird man zur Anmelde-Seite weitergeleitet.

In einem produktiven System sollte man das Unterverzeichnis install löschen.

Grundlegende Konfiguration

In der Grundkonfiguration müssen Basisdaten festgelegt werden, damit der Druckserver z.B. später die Druckjobs abrufen darf. Dazu wählt man den admin als Benutzer aus, gibt das während der Installation gewählte Passwort ein und drückt beherzt auf den Anmelden-Button:

einloggenadmin.png

Die erste Seite zeigt beim Erstmaligen Anmelden eines Benutzers stets die persönlichen Einstellungen an, so dass man hier die Möglichkeit hat, die Sprache gegebenenfalls zu ändern. Als Admin wählt man über das Hauptmenü nun die Ansicht Verwaltung aus.

Dort befinden sich viele aufklappbare Bereiche. Im Panel Konfiguration muss nun ein Printcode zugewiesen werden. Dieser dient später dazu, dass sich der Druckservice mit der Webapplikation über eine REST-Schnittstelle die Printjobs abholen darf. Als Beispiel sei hier der Printcode 123 eingegeben. Am Ende des Panels befindet sich ein Ändern-Button, nach dessen Anklicken die Einstellung übernommen wird.

printcode.png

Im Konfigurationsbereich können noch viele andere Einstellungen vorgenommen werden, die meisten sind jedoch erst für den produktiven Betrieb relevant (z.B. Betriebsinformation für den Kassenbon).

Neben den während der Installation angelegten Beispielbenutzern können im aufklappbaren Bereich Benutzer weitere Benutzer angelegt werden. Beim Anlegen kann man festlegen, welche Rechte der Benutzer haben soll. In den benutzerspezifischen Einstellungen kann jeder Benutzer das ihm zugewiesene Passwort ändern sowie weitere Präferenzen einstellen.

Im Bereich Datenbank kann man den Beispiel Raumplan überschreiben und ein oder mehrere Räume mit Tischen anlegen. Wird nur ein Raum angelegt, so wird später bei der Bestellaufnahme und in der Kassenansicht die Raumauswahl übersprungen.

Druckerserver

Der Javaprintserver ist speziell für den Einsatz auf einem Linux-System programmiert worden. Wenn man den OrderSprinter-Download entpackt, befindet er sich im Unterverzeichnis javaprinter. Der Programmautor empfiehlt, den javaprinter in ein Systemverzeichnis zu kopieren und entweder unter Root-Rechten zu starten oder mit einem Account, dem man Berechtigungen für einen Schreibzugriff auf den USB-Port gegeben hat:

sudo cp -Ra javaprinter/* /usr/local/bin 

Im nächsten Schritt sollte die VendorID und ProductID des Bondruckers ermittelt werden. Da möglicherweise viele weitere Geräte am USB-Port hängen, kann man sich die Arbeit erleichtern, wenn man das lsusb-Kommando vor und nach dem Anstecken des Druckers ausführt und die Differenz der Ausgaben betrachtet:

sudo lsusb -v > /tmp/ohne-drucker.txt
# nun schließt man den Drucker an und schaltet ihn ein
sudo lsusb -v > /tmp/mit-drucker.txt
diff /tmp/ohne-drucker.txt /tmp/mit-drucker.txt
rm /tmp/*-drucker.txt 

Die Werte für VendorID und ProductID sollte man sich notieren.

Damit der Druckserver eine Verbindung zum Drucker aufnehmen kann, muss die Konfigurationsdatei in /usr/local/bin/config.json bearbeitet werden.

  • printersize: Für einen 58mm-Drucker ist ein Wert von 32, für einen 80mm-Drucker von 40 optimal. Der Wert stellt die Anzahl der Zeichen pro Zeile dar und kann von Drucker zu Drucker leicht variieren.

  • printcode: Hier ist der Printcode einzugeben, der zuvor in der Konfiguration festgelegt wurde (im angegebenen Beispiel war es 123).

Die restlichen Eingaben sollen zunächst ignoriert werden. Damit sieht die Datei für einen 58mm-Drucker beispielsweise so aus:

{
   "instance" : 1,
   "vendorid" : "4348",
   "productid" : "5584",
   "printersize" : 32,
   "printcode" : "123",
   "baseurl":"http://localhost",
   "baseusername" : "",
   "basepass" : "",
   "escinits" : [ 27, 64, 27, 116, 0 ],
   "escposts" : [ 29, 86, 66, 10, 27, 64],
   "useeveryprintdevice" : 1,
   "verbose_closing_summary" : 1,
   "smallformat" : 0,
   "logoscale" : 1.0
}

Ein erster Test lässt sich so durchführen:

sudo java -jar /usr/local/bin/javaprinter.jar /usr/local/bin/config.json 

Wenn der Druckerserver sich mit der OrderSprinter-Webapplikation verbinden kann, sieht man folgende Ausgabe:

fee@feeserver:~$ sudo java -jar /usr/local/bin/javaprinter.jar /usr/local/bin/config.json 
Read: /usr/local/bin/config.json
Instance: 1
Config: Config [printersize=32, vendorid=4348, productid=5584, currency=Euro, decpoint=,, companyinfo=Musterrestaurant
Beispielstrasse 123
12345 Musterort, escinits=[27, 64, 27, 116, 0], escposts=[29, 86, 66, 10, 27, 64], printcode=123, baseurl=http://localhost, baseusername=, basepass=, verbose_closing_summary=1]
Scaled from 640 to width: 384 by scale 0.6 

Nun ist es an der Zeit, den ersten Druckjob zu generieren. In der Weboberfläche kann man sich als normaler Benutzer einloggen (ein Admin hat in der Standardeinstellung keinen Zugriff auf die Bestellansicht), ein Produkt in der Bestellansicht auswählen und auf den Button Arbeitsbon klicken.

Möglicherweise sieht man in der Ausgabe des Druckerservers nun eine Fehlermeldung, die sich über einen nicht gefundenen Drucker beschwert:

Print Work Job: 1
Cannot find a receipt printer - cannot print 

In diesem Fall hat sich der Drucker am USB-Port nicht als Drucker angemeldet. Zu diesem Zweck wurde die VendorId und ProductID vorher ermittelt. Die Werte müssen dann in die config.json eingetragen werden und zusätzlich der Parameter useeveryprintdevice auf 0 gesetzt werden.

Startet man den Druckerserver erneut, sollte die Fehlermeldung verschwinden und ein Arbeitsbon gedruckt werden.

Nun soll der Druckerserver jedoch bei jedem Systemstart automatisch starten. Ubuntu nutzt in 18.04 systemd. Dazu muss der javaprinter als Service konfiguriert werden.

Im ersten Schritt legt man eine Datei /usr/local/bin/javaprinter.bat mit folgendem Inhalt an:

#!/bin/sh 
/usr/bin/java -jar /usr/local/bin/javaprinter.jar /usr/local/bin/config.json &

Die Datei muss ausführbar sein:

chmod +x javaprinter 

Nun muss man eine Service-Beschreibung erstellen. Dazu wird eine Datei /etc/systemd/system/javaprinter.service mit folgendem Inhalt angelegt:

[Unit]
Description=OrderSprinter-Javaprinter

[Service]
Type=forking
ExecStart=/usr/local/bin/javaprinter.bat

[Install]
WantedBy=multi-user.target

Nachdem der Service beschrieben wurde, muss er aktiviert und gestartet werden:

sudo systemctl enable javaprinter.service
sudo systemctl start javaprinter 

Hiermit ist die Installation eines Grundsystems abgeschlossen. Wer mehr aus der Software herausholen möchte, sei auf die Dokumentation auf der Homepage des Programms verwiesen.

Test

Die Installation ist abgeschlossen. Meldet man sich mit der Option Desktop auf dem PC an, so sollte die Kellneransicht wie folgt aussehen:

kellneransicht.png

Ein wichtiger Test ist auch der Zugriff über ein Smartphone auf die Weboberfläche. Meldet man sich als Kellner an, wählt aber die Option Mobil, so sieht man eine für Mobilgeräte optimierte Webseite. Im Fall einer Installation mit Musterdaten sieht die Seite so aus:

mobilebestellansicht.png

Problembehebung

Dieses Howto sollte die Installation von OrderSprinter auf einem frischen Standard 18.04-Ubuntu beschreiben. Ist das System jedoch nicht frisch aufgesetzt worden, oder soll OrderSprinter auf einer anderen Ubuntu-Version installiert werden, mögen die Annahmen über die Umgebung nicht zutreffen. In diesem Fall sollen hier einige Hilfestellungen gegeben werden.

Bei Änderungen, die den Webserver oder die PHP-Konfiguration betreffen, muss im Anschluss der Webserver neu gestartet werden, damit die Änderungen wirksam werden (sudo apache2ctl restart).

Nicht vorhandenene PHP-Erweiterungen

Um alle Funktionen der Software nutzen zu können, muss PHP mit folgenden Extensions installiert sein:

  • gd

  • mysqli

  • openssl

  • pdo_mysql

  • PDO

  • session

  • zlib

  • curl

  • zip

  • ftp

  • xml

Eine Installation kann auch ohne alle diese Erweiterungen durchgeführt werden, jedoch können viele Funktionen dann zu Fehlern führen. Über den Aufruf http://localhost/install/phpinfo.php kann man sich die PHP-Konfiguration ausgeben lassen, wenn man das Install-Verzeichnis noch nicht gelöscht hat.

Überschreitung des Zeitlimits auf langsamen Servern

In der Datei php.ini (deren Speicherort man ebenso über einen Aufruf von http://localhost/install/phpinfo.php ermitteln kann, sind gewisse Vorgaben für die maximal erlaubte Ausführungszeit eines PHP-Skripts enthalten, die für die meisten Systemen passen. Ist der Rechner jedoch sehr langsam, ist eine Erhöhung der max_execution_time ratsam.

Zuweisung des Memory-Limits

Wenn nach ausgiebigem Test bestimmte Funktionen nicht mehr funktionieren (Backup, Restore, PDF-Reports), kann es sein, dass die Datenmenge so groß geworden ist, dass der für PHP zugewiesene Speicher nicht ausreicht. In diesem Fall sollte der Wert memory_limit in der php.ini vergrößert werden.

Upload von Dateien funktioniert nicht

In der php.ini lässt sich einstellen, wie groß die maximale Größe einer hochladbaren Datei sein darf. Die zu ändernde Variable lautet max_post_size.

Diese Revision wurde am 12. Mai 2018 17:09 von Zauberfee erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Howto