Installationsanleitung für Administratoren
ℹ️Für wen ist diese Anleitung?
Diese Anleitung richtet sich an System-Administratoren, die beAV Pro auf einem Webserver installieren möchten. Grundkenntnisse in Webserver-Administration, PHP und MySQL/MariaDB werden vorausgesetzt.
beAV Pro wird als ZIP-Archiv ausgeliefert und muss manuell auf Ihrem Webserver installiert werden. Die Installation erfolgt in zwei Phasen:
- Manuelle Einrichtung: Dateien entpacken, Verzeichnisstruktur aufbauen, Datenbank vorbereiten
- Web-Installer: Konfiguration über den Browser (5 Schritte)
🗄️Ist auf dem Rechner bereits eine Datenbank eingerichtet?
Diese Anleitung setzt einen laufenden Datenbankserver voraus (MySQL 8.0+ oder MariaDB 10.6+) und erklärt seine Installation nicht.
Unter Windows ist noch keiner vorhanden? Dann arbeiten Sie zuerst die Anleitung MariaDB 11.4 unter Windows einrichten ab. Sie führt von der Installation bis zur fertig angelegten Datenbank samt Benutzer — also bis genau zu dem Punkt, an dem Schritt 3 dieser Anleitung endet. Anschließend kehren Sie hierher zurück und beginnen bei Schritt 1.
Vor der Installation
Systemanforderungen
⚠️Wichtig!
Stellen Sie sicher, dass Ihr System die Mindestanforderungen aus der folgenden Tabelle erfüllt, bevor Sie mit der Installation beginnen. Jede Zeile nennt den Befehl, mit dem sich die Anforderung prüfen lässt.
| Komponente | Anforderung | Prüfung |
|---|---|---|
| Webserver | Apache 2.4+ oder nginx Noch kein Webserver unter Windows? → Apache und PHP unter Windows einrichten |
apache2 -v oder nginx -v |
| PHP | Version 8.1 oder höher | php -v |
| PHP-Extensions | pdo_mysql, mbstring, json, curl | php -m | grep -E "pdo_mysql|mbstring|json|curl" |
| Datenbank | MySQL 8.0+ oder MariaDB 10.6+ Noch keine Datenbank vorhanden? → MariaDB 11.4 unter Windows einrichten |
mysql --version |
| HTTPS | SSL-Zertifikat (für PWA erforderlich) | Zertifikat installieren (z.B. Let's Encrypt) |
| Internet | Zugriff auf kunden.beav-web.de |
curl -I https://kunden.beav-web.de |
| CA-Bundle Wurzelzertifikate für PHP |
PHP muss gesicherte Verbindungen prüfen können. Bei Windows-Eigeninstallationen nicht automatisch vorhanden → siehe Kasten unten |
siehe Prüfung unten |
🔴Ohne CA-Bundle schlagen alle Updates fehl
PHP prüft unter Windows gesicherte Verbindungen über OpenSSL und nicht über die Zertifikatsverwaltung von Windows. OpenSSL braucht dafür eine eigene Liste vertrauenswürdiger Wurzelzertifikate. Fehlt sie, scheitert jede geprüfte Verbindung mit:
SSL certificate problem: unable to get local issuer certificate
Der Fehler bleibt leicht unbemerkt: Anmeldung, Datenbank und die gesamte tägliche Arbeit funktionieren einwandfrei. Nur die Update-Prüfung und der Update-Download scheitern — und das fällt erst auf, wenn das erste Update ansteht.
Prüfen — der Befehl muss OK ausgeben:
php -r "$c=curl_init('https://kunden.beav-web.de');curl_exec($c);echo curl_error($c)?:'OK';"
Bei Miet-Webspace ist das in aller Regel bereits eingerichtet — der Anbieter pflegt es. Erscheint dort ein Fehler, ist das ein Fall für dessen Support.
Bei eigenem Windows-Server ist es Ihre Aufgabe. Die Datei von https://curl.se/ca/cacert.pem laden, ablegen und in der php.ini eintragen:
[curl]
curl.cainfo = "C:\php\cacert.pem"
[openssl]
openssl.cafile = "C:\php\cacert.pem"
Danach den Webserver neu starten. Die vollständige Beschreibung mitsamt Fehlersuche steht in der Anleitung „Apache und PHP unter Windows einrichten".
Diese Datei altert und wird von niemandem für Sie erneuert. Sie steckt in keinem Paket — weder Apache noch PHP noch Windows-Update bringen sie mit, und auch ein PHP-Update tauscht sie nicht aus. Planen Sie den Austausch einmal jährlich ein: dieselbe Adresse, gleicher Ort, gleicher Dateiname, keine weitere Änderung nötig.
Installations-Checkliste
Bereiten Sie folgende Informationen vor:
- Lizenzdaten: E-Mail + Lizenzschlüssel (vom Kauf)
- Datenbank: Host, Name, Benutzer, Passwort
- Admin-Zugang: Benutzername + Passwort (min. 8 Zeichen)
- Dateispeicher: Entscheidung: None / Local / WebDAV / S3
- Server-Zugriff: SSH oder FTP/SFTP
- Schreibrechte: Berechtigung zum Erstellen von Verzeichnissen
Verzeichnisstruktur - Kritischer Sicherheitshinweis
🔴Sicherheitskritischer Hinweis - Unbedingt beachten
Die config.php Datei enthält Datenbank-Zugangsdaten und darf keinesfalls über das Web erreichbar sein.
Platzieren Sie das config/ Verzeichnis AUSSERHALB des Webroots.
Warum config/ außerhalb des Webroots?
Die config.php enthält hochsensible Informationen:
- Datenbank-Host, Benutzername, Passwort
- Storage-Zugangsdaten (bei WebDAV)
- Lizenz-Informationen
Wenn die config.php im Webroot liegt, besteht das Risiko, dass ein Angreifer:
- Bei Fehlkonfiguration des Webservers den Quellcode lesen kann
- Bei PHP-Parsing-Fehlern die Datei als Text herunterlädt
- Durch Directory-Traversal-Schwachstellen Zugriff erhält
✅Sichere Verzeichnisstruktur
Durch die Platzierung außerhalb des Webroots ist die Datei über HTTP/HTTPS niemals erreichbar, unabhängig von Fehlkonfigurationen.
Empfohlene Verzeichnisstruktur
Windows (XAMPP)
C:\xampp\htdocs\beav\
├── web\ ← WEBROOT (DocumentRoot zeigt hierhin)
│ ├── index.php
│ ├── install.php
│ ├── login.php
│ ├── includes\
│ ├── mobile\
│ └── ...
└── config\ ← AUSSERHALB des Webroots!
└── config.php ← Datenbank-Zugangsdaten (GESCHÜTZT!)
Linux (Debian/Ubuntu)
/var/www/beav/
├── web/ ← WEBROOT (DocumentRoot zeigt hierhin)
│ ├── index.php
│ ├── install.php
│ ├── login.php
│ ├── includes/
│ ├── mobile/
│ └── ...
└── config/ ← AUSSERHALB des Webroots!
└── config.php ← Datenbank-Zugangsdaten (GESCHÜTZT!)
Webhosting (Shared Hosting)
/home/username/
├── config/ ← MUSS "config" heißen (Code sucht ../config/)
│ └── config.php ← Geschützt, AUSSERHALB von public_html!
└── public_html/ ← WEBROOT (oder htdocs, www, html)
├── index.php
├── install.php
├── login.php
├── includes/
├── mobile/
└── ...
🔴Wichtiger Hinweis - Verzeichnisname ist vorgegeben
Der Code sucht zwingend nach ../config/config.php - das Verzeichnis muss exakt config heißen.
Bitte nicht umbenennen in: beav-config, configuration, cfg etc.
❌Nicht empfohlene Struktur - Bitte vermeiden
C:\xampp\htdocs\beav\ ← WEBROOT
├── index.php
├── install.php
├── config\ ← ❌ IM WEBROOT = GEFAHR!
│ └── config.php ← ❌ ÜBER WEB ERREICHBAR!
└── ...
Diese Struktur ist unsicher und sollte nicht verwendet werden.
Installation - Schritt für Schritt
1ZIP-Archiv entpacken
Entpacken Sie das beAV Pro ZIP-Archiv in ein temporäres Verzeichnis auf Ihrem Computer.
Windows
- Rechtsklick auf
beAV-Pro-v1.0.zip - "Alle extrahieren..." → Zielordner wählen
Linux/macOS
unzip beAV-Pro-v1.0.zip -d /tmp/beav-install
Inhalt des ZIP-Archivs:
beAV-Pro/
├── App/
│ ├── config/
│ │ └── config.php.example.php
│ └── web/
│ ├── index.php
│ ├── install.php
│ ├── includes/
│ ├── mobile/
│ ├── docs/
│ │ ├── dokumentation.html
│ │ ├── dokumentation_zeiterfassung.html
│ │ ├── mariadb_installation.html
│ │ ├── apache_php_installation.html
│ │ └── Installationsanleitung.html (diese Datei)
│ └── ...
2Verzeichnisse auf Server erstellen
Windows (XAMPP)
mkdir C:\xampp\htdocs\beav
mkdir C:\xampp\htdocs\beav\web
mkdir C:\xampp\htdocs\beav\config
Linux
sudo mkdir -p /var/www/beav/web
sudo mkdir -p /var/www/beav/config
# Rechte setzen
sudo chown -R www-data:www-data /var/www/beav
sudo chmod 755 /var/www/beav
sudo chmod 755 /var/www/beav/config
Dateien hochladen
Kopieren Sie nun die Dateien aus dem entpackten Archiv:
App/web/*→/var/www/beav/web/(WEBROOT)App/config/*→/var/www/beav/config/(AUSSERHALB)
Via FTP/SFTP: Verwenden Sie FileZilla, WinSCP oder Cyberduck
Via SSH: Nutzen Sie scp oder rsync
Schreibrechte prüfen
Das config/ Verzeichnis benötigt Schreibrechte für den Webserver:
# Linux - Test
sudo -u www-data touch /var/www/beav/config/test.txt
sudo -u www-data rm /var/www/beav/config/test.txt
# Kein Fehler = OK
# Windows - Rechte über Ordner-Eigenschaften → Sicherheit prüfen
3Datenbank vorbereiten
ℹ️Windows ohne vorhandene Datenbank?
Dieser Schritt setzt einen laufenden Datenbankserver voraus. Ist auf dem Rechner noch keiner installiert, führt Sie die Anleitung MariaDB 11.4 unter Windows einrichten von der Installation bis zu genau diesem Punkt — Datenbank und Benutzer sind danach fertig angelegt, und Sie fahren hier mit Schritt 4 fort.
Erstellen Sie eine leere MySQL/MariaDB-Datenbank:
Via phpMyAdmin
- phpMyAdmin öffnen
- "Neu" → Datenbankname eingeben (z.B.
beav_db) - Zeichensatz: utf8mb4_unicode_ci (WICHTIG!)
- "Anlegen" klicken
Via MySQL-Kommandozeile
mysql -u root -p
CREATE DATABASE beav_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'beav_user'@'localhost' IDENTIFIED BY 'sicheres_passwort';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX
ON beav_db.* TO 'beav_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
⚠️Character Set muss utf8mb4 sein
beAV Pro benötigt zwingend utf8mb4 für Emojis, Umlaute und Sonderzeichen. utf8 (ohne mb4) ist nicht ausreichend.
4Webserver konfigurieren
Konfigurieren Sie Ihren Webserver so, dass der DocumentRoot auf das web/ Verzeichnis zeigt.
Apache - VirtualHost (Empfohlen)
<VirtualHost *:80>
ServerName beav.example.com
DocumentRoot "C:/xampp/htdocs/beav/web"
# oder: /var/www/beav/web
<Directory "C:/xampp/htdocs/beav/web">
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog "logs/beav-error.log"
CustomLog "logs/beav-access.log" combined
</VirtualHost>
# HTTPS (für PWA erforderlich)
<VirtualHost *:443>
ServerName beav.example.com
DocumentRoot "C:/xampp/htdocs/beav/web"
SSLEngine on
SSLCertificateFile "/path/to/cert.pem"
SSLCertificateKeyFile "/path/to/privkey.pem"
<Directory "C:/xampp/htdocs/beav/web">
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
nginx
server {
listen 80;
listen [::]:80;
server_name beav.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name beav.example.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
root /var/www/beav/web;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Webserver neu starten
# Apache
sudo systemctl restart apache2
# nginx
sudo systemctl restart nginx
# Windows XAMPP - Apache Control Panel → Stop/Start
✅Test
Öffnen Sie im Browser: http://beav.example.com
Sie sollten automatisch zu install.php weitergeleitet werden.
5Web-Installer starten
Öffnen Sie Ihren Browser und navigieren Sie zu:
https://ihre-domain.de/install.php
Der Web-Installer führt Sie durch 5 Schritte. Details dazu finden Sie im nächsten Abschnitt.
Web-Installer - Die 5 Schritte im Detail
1Lizenzierung
Geben Sie die Lizenzdaten ein, die Sie beim Kauf erhalten haben:
- E-Mail-Adresse: Die beim Kauf angegebene E-Mail
- Lizenzschlüssel: Format
XXXX-XXXX-XXXX-XXXX
Klicken Sie auf "Lizenz prüfen". Der Installer verbindet sich mit dem Lizenzserver und validiert Ihre Daten.
⚠️Internetverbindung erforderlich!
Für die Lizenzprüfung wird eine Verbindung zu kunden.beav-web.de benötigt. Stellen Sie sicher, dass Ihr Server ausgehende HTTPS-Verbindungen (Port 443) erlaubt.
Mögliche Fehlermeldungen:
- "Lizenzschlüssel oder E-Mail nicht gefunden" → Daten prüfen
- "Diese Lizenz wurde gesperrt" → Support kontaktieren
- "Maximale Anzahl an Installationen erreicht" → Support kontaktieren
- "Lizenzserver nicht erreichbar" → Firewall/Internetverbindung prüfen
2Datenbank-Verbindung
Geben Sie die Zugangsdaten Ihrer MySQL/MariaDB-Datenbank ein:
| Host | localhost oder 127.0.0.1Bei externem DB-Server: IP oder Hostname |
| Datenbankname | z.B. beav_db (wie in Schritt 3 erstellt) |
| Benutzer | z.B. beav_user |
| Passwort | Das Datenbank-Passwort |
Klicken Sie auf "Verbindung testen". Der Installer prüft:
- Kann eine Verbindung zur Datenbank hergestellt werden?
- Sind die Zugangsdaten korrekt?
- Ist utf8mb4 verfügbar?
Mögliche Fehlermeldungen:
- "Zugriff verweigert" → Benutzername/Passwort falsch
- "Datenbank existiert nicht" → Datenbank in Schritt 3 erstellen
- "Verbindung abgelehnt" → MySQL läuft nicht oder Host falsch
3Admin-Zugang anlegen
Erstellen Sie den ersten Administrator-Benutzer:
| Benutzername | Mindestens 3 Zeichen z.B. admin oder administrator |
| Passwort | Mindestens 8 Zeichen Verwenden Sie ein sicheres Passwort! |
🔐Sicheres Passwort verwenden!
Verwenden Sie ein starkes, einzigartiges Passwort mit:
- Mindestens 12 Zeichen (empfohlen)
- Groß- und Kleinbuchstaben
- Zahlen und Sonderzeichen
- Kein Wörterbuch-Wort
Nutzen Sie einen Passwort-Manager!
4Dateispeicher konfigurieren
Wählen Sie, wo Dokumente gespeichert werden sollen:
Option 1: Kein Speicher
- ✅ Keine zusätzliche Konfiguration
- ✅ Geeignet für reine Zeiterfassung
- ❌ Keine Dokumentenverwaltung
Option 2: Lokaler Speicher (Empfohlen)
- ✅ Einfache Einrichtung
- ✅ Schneller Zugriff
- ✅ Einfaches Backup
Erforderlich: Schreibbares Verzeichnis auf dem Server
Beispiel:
- Windows:
E:/beav-storage - Linux:
/var/beav-storage
⚠️Storage außerhalb des Webroots
Aus Sicherheitsgründen sollte der Storage-Pfad nicht im Webroot liegen.
Klicken Sie auf "Speicher testen" - der Installer prüft Schreibrechte.
🔴Kritischer Hinweis - Datei- und Ordnerrechte
beAV legt Storage-Ordner dynamisch an (z.B. pro Benutzer, Auftrag, etc.). Die Ordnernamen und der Zeitpunkt der Erstellung sind im Voraus nicht bekannt.
Unterordner-Struktur:
Innerhalb jedes beAV-Objektordners existieren zwei Unterordner:
- intern/ → vertrauliche Dokumente (z.B. Personalakten)
- public/ → allgemein freigegebene Dokumente
Wichtig: Die Zugriffskontrolle bei direktem Dateisystem-Zugriff (z.B. im Notfall ohne beAV) erfolgt ausschließlich über System- bzw. Share-Rechte.
Der Systemadministrator muss sicherstellen, dass:
- ❗ Alle Ordner mit dem Namen
internsystemseitig restriktiv gesetzt sind - ❗ Normale Benutzer keine Leserechte auf "intern"-Ordner besitzen
- ❗ Nur explizit berechtigte Benutzer/Gruppen Zugriff auf "intern" haben
- ❗ Die Rechte auf Unterordner und Dateien vererbt werden
Wichtiger Hinweis: beAV setzt oder ändert keine Systemrechte.
Benutzer mit System-Leserechten auf "intern" können diese Dateien jederzeit lesen, unabhängig von den in beAV konfigurierten Zugriffsrechten.
Beispiel (Windows - NTFS):
- Ordner-Eigenschaften → Sicherheit
- Vererbung deaktivieren für "intern"-Ordner
- Nur Administratoren + spezielle Gruppe Zugriff gewähren
- Normale Benutzer explizit entfernen
Beispiel (Linux):
# Alle "intern"-Ordner finden und Rechte setzen
find /var/beav-storage -type d -name "intern" -exec chmod 750 {} \;
find /var/beav-storage -type d -name "intern" -exec chown root:beav-confidential {} \;
# Nur Gruppe "beav-confidential" kann lesen
Option 3: WebDAV (Enterprise)
- ✅ Zentrale Verwaltung
- ✅ Zugriff von mehreren Servern
- ✅ Externe Backups möglich
Erforderlich: WebDAV-Server (Nextcloud, Synology, etc.)
Konfiguration:
- WebDAV-URL (z.B.
https://cloud.example.com/webdav/) - Basispfad (optional, z.B.
beav-storage) - Authentifizierung (Basic/Digest/NTLM)
- Benutzername + Passwort
⚠️HTTPS/SSL erforderlich
Die WebDAV-Implementierung in beAV Pro erzwingt SSL-Verifikation. Verwenden Sie ausschließlich HTTPS-Verbindungen (z.B. https://cloud.example.com/webdav/). Unverschlüsselte HTTP-Verbindungen werden nicht unterstützt.
Option 4: Amazon S3 (Cloud)
- ✅ Unbegrenzte Skalierbarkeit
- ✅ Hochverfügbar und redundant
- ✅ Automatische Backups (je nach Anbieter)
- ✅ S3-kompatible Anbieter (AWS, MinIO, Wasabi, Backblaze, etc.)
- ❌ Erfordert Internetverbindung (bei Cloud-Anbietern)
Erforderlich: S3-kompatibler Storage-Service
Konfiguration:
- S3-Endpoint (z.B.
s3.amazonaws.comoderlocalhost:9000für MinIO) - Bucket-Name (z.B.
beav-storage) - Region (z.B.
eu-central-1oderus-east-1) - Access Key ID (AWS-Zugriffsschlüssel)
- Secret Access Key (AWS-Geheimschlüssel)
💡S3-kompatible Alternativen
Neben Amazon S3 können Sie auch andere S3-kompatible Services verwenden. Beispiele:
- MinIO: Self-hosted, Open Source (lokal oder auf eigenem Server)
- Impossible Cloud: Deutscher Anbieter, dezentralisierte Cloud-Infrastruktur, S3-kompatibel
- Hetzner Storage Box: Deutsche Server, S3-kompatibel, günstiger Speicher
- Ionos S3 Object Storage: Deutsche Rechenzentren, DSGVO-konform
- Contabo Object Storage: Europäische Server, günstiger S3-kompatibler Storage
- Wasabi: Günstiger Cloud-Storage ohne Egress-Gebühren
- Backblaze B2: Kosteneffiziente Alternative zu AWS S3
- DigitalOcean Spaces: Einfaches S3-kompatibles Storage
- ...und viele weitere S3-kompatible Anbieter
⚠️HTTPS/SSL erforderlich bei Cloud-Anbietern
Bei Verwendung von Cloud-Storage (AWS, Wasabi, etc.) werden Ihre Dokumente über das Internet übertragen. Die S3-Implementierung in beAV Pro erzwingt SSL-Verifikation - unverschlüsselte Verbindungen werden nicht unterstützt.
5Bestätigungen & Installation
Im letzten Schritt müssen Sie zwei wichtige Bestätigungen akzeptieren:
1️⃣ Betreiber-Pflichten
⚠️Wichtiger Hinweis - Ihre Verantwortung als Betreiber
Sie bestätigen die Verantwortung für:
- Installation, Betrieb, Wartung
- Datensicherung (Backups)
- Empfehlung: Täglich Datenbank sichern
- Empfehlung: Wöchentlich Storage sichern
- Wiederherstellung testen!
- IT-Sicherheit
- Firewall konfigurieren
- Starke Passwörter verwenden
- Betriebssystem, PHP, MySQL aktuell halten
- Sicherheitsupdates innerhalb 14 Tagen installieren
- Dateisystem-Rechte
- Alle Ordner mit Namen "intern" müssen systemseitig geschützt sein
- Nur berechtigte Benutzer dürfen auf "intern"-Ordner zugreifen
- beAV setzt keine Systemrechte automatisch
- Netzwerk-Sicherheit
- Bei Zugriff von außen: HTTPS erforderlich
- Optional: VPN für zusätzliche Sicherheit
2️⃣ AGB & DSGVO
⚠️Wichtige rechtliche Hinweise
Sie bestätigen:
- DSGVO-Verantwortlicher: Sie sind alleiniger Verantwortlicher für alle Daten in beAV
- Keine Gewähr: Alle Berechnungen/Auswertungen sind ohne Gewähr - eigenverantwortlich prüfen!
- Datensicherung: Der Anbieter haftet nicht für Datenverluste ohne ordnungsgemäße Backups
- Keine Rechtsberatung: Die Software ersetzt keine fachkundige Beratung (Steuer, Recht, Buchhaltung)
Lesen Sie die AGB und Datenschutzhinweise vollständig durch (Links im Installer)!
Installation starten
Nach Akzeptieren der Bestätigungen startet die automatische Installation:
config/config.phpwird erstellt- Datenbank-Tabellen werden angelegt (via
ensure_db.php) - Admin-Benutzer wird erstellt
- Storage-Unterordner werden angelegt (falls Local/WebDAV)
- Lizenz wird auf dem Server aktiviert
- HTTPS-Erzwingung wird aktiviert (falls über HTTPS installiert)
✅Installation erfolgreich!
Sie werden automatisch zu login.php weitergeleitet.
Melden Sie sich mit Ihren Admin-Zugangsdaten an.
Nach der Installation
Sicherheits-Checkliste
- HTTPS erzwingen: Prüfen Sie in den Einstellungen
- Backup-Strategie: Richten Sie automatische Backups ein
- Firewall: Nur notwendige Ports öffnen (80, 443)
- Updates: Prüfen Sie regelmäßig auf Updates
- Benutzer anlegen: Erstellen Sie weitere Benutzer (nicht nur Admin nutzen)
- Test: Testen Sie alle Funktionen gründlich
Erste Schritte
- Personal anlegen (Verwaltung → Personal)
- Baustellen anlegen (Wochenplaner)
- Zeiterfassung testen (Desktop + Mobile PWA)
- Dokumente hochladen (falls Storage aktiviert)
Mobile PWA installieren
Öffnen Sie auf dem Mobilgerät:
https://ihre-domain.de/mobile/app.php
Der Browser bietet dann die Installation als App an ("Zum Startbildschirm hinzufügen").
Troubleshooting - Häufige Probleme
Problem: "config.php konnte nicht geschrieben werden"
Ursache: Fehlende Schreibrechte auf config/ Verzeichnis
Lösung:
# Linux
sudo chown www-data:www-data /var/www/beav/config
sudo chmod 755 /var/www/beav/config
# Test
sudo -u www-data touch /var/www/beav/config/test.txt
Problem: "Extension pdo_mysql nicht gefunden"
Ursache: PHP MySQL-Extension nicht installiert
Lösung:
# Debian/Ubuntu
sudo apt-get install php8.1-mysql
sudo systemctl restart apache2
# RHEL/CentOS
sudo yum install php-mysqlnd
sudo systemctl restart httpd
Problem: "Datenbankverbindung fehlgeschlagen"
Mögliche Ursachen:
- MySQL-Server läuft nicht →
systemctl status mysql - Falsches Passwort → Daten prüfen
- Falsche Host →
localhostvs127.0.0.1 - Firewall blockiert Port 3306 → Firewall prüfen
Problem: Update-Prüfung meldet unable to get local issuer certificate
Ursache: Das CA-Bundle fehlt oder ist in der php.ini nicht eingetragen. PHP nutzt unter Windows OpenSSL und nicht die Zertifikatsverwaltung von Windows.
Typisches Bild: Anmeldung, Datenbank und der gesamte tägliche Betrieb funktionieren; nur Update-Prüfung und Update-Download scheitern.
Lösung: siehe Systemanforderungen → CA-Bundle
Problem: "Lizenzserver nicht erreichbar"
Ursache: Keine Internetverbindung oder Firewall blockiert
Lösung:
# Test
curl -I https://kunden.beav-web.de/license_api
# Firewall ausgehende HTTPS erlauben (Port 443)
Problem: "Service Worker registriert sich nicht" (PWA)
Ursache: Kein HTTPS oder Browser-Kompatibilität
Lösung:
- HTTPS-Zertifikat installieren und prüfen
- Browser-Konsole (F12) auf Fehler prüfen
- Cache löschen und neu laden
Problem: "Änderungen werden nicht angezeigt" (Mobile)
Ursache: Service Worker Cache
Lösung:
- App neu laden (Pull-to-Refresh)
- Service Worker deregistrieren:
- Browser → Entwicklertools (F12)
- Application → Service Workers
- "Unregister" klicken
- Seite neu laden
Support & Dokumentation
Weitere Dokumentation
- Systemanforderungen: weiter oben in dieser Anleitung
- Webserver unter Windows einrichten:
apache_php_installation.html - Datenbank unter Windows einrichten:
mariadb_installation.html - Benutzerhandbuch:
dokumentation.html - Zeiterfassung-Dokumentation:
dokumentation_zeiterfassung.html - AGB:
web/content/agb.html - Datenschutz:
web/content/datenschutz.html
Support kontaktieren
Bei Problemen wenden Sie sich an:
- E-Mail: info@beav-web.de
- Website: https://beav-web.de
💡Tipp
Bereiten Sie folgende Informationen vor:
- Ihre Lizenzdaten (E-Mail + Lizenzschlüssel)
- PHP-Version (
php -v) - MySQL-Version (
mysql --version) - Fehlermeldung (Screenshot oder Text)
- Betriebssystem (Windows, Linux, etc.)
© 2026 Bernd Eller - beAV Pro
Installationsanleitung Version 1.0 | Stand: 2026-02-22