Fehlerbehebung (Troubleshooting)
Lösungen für häufige Probleme mit EcomSec Backup Professional.
Backup-Probleme
"mysqldump not found"
Problem: Der Befehl mysqldump ist auf Ihrem System nicht verfügbar.
Lösung:
Debian/Ubuntu:
sudo apt-get update
sudo apt-get install mysql-clientCentOS/RHEL:
sudo yum install mysqlShared Hosting: Kontaktieren Sie Ihren Hoster.
Installation überprüfen:
which mysqldump
# Sollte ausgeben: /usr/bin/mysqldump"Permission denied" beim Erstellen des Backups
Problem: Das Backup-Verzeichnis ist nicht beschreibbar.
Lösung:
# Korrekte Berechtigungen setzen
sudo chmod 700 /var/backups
sudo chown www-data:www-data /var/backups
# Überprüfen
ls -la /var/backups
# Sollte anzeigen: drwx------ www-data www-dataAlternative: Ändern Sie den Backup-Pfad in der Plugin-Konfiguration auf ein beschreibbares Verzeichnis.
Backup schlägt fehl mit "Disk quota exceeded"
Problem: Nicht genügend Speicherplatz.
Lösung:
- Verfügbaren Speicherplatz prüfen:
df -hSpeicherplatz freigeben:
- Alte Backups manuell löschen
- Aufbewahrungsrichtlinie reduzieren
- Externen Speicher verwenden (S3, FTP)
Benötigten Speicherplatz berechnen:
- Minimum: 2x (Datenbank + Mediendateien)
- Empfohlen: 3-5x für mehrere Backup-Versionen
Backup bleibt bei "In Bearbeitung" hängen
Problem: Der Backup-Prozess ist hängengeblieben oder abgestürzt.
Lösung:
- Logs prüfen:
tail -f var/log/dev.log- Prozess prüfen:
ps aux | grep mysqldump
ps aux | grep tar- Hängenden Prozess beenden:
# Prozess-ID finden
ps aux | grep mysqldump
# Beenden
sudo kill -9 <PID>- Message Queue Consumer neu starten:
bin/console messenger:consume async --time-limit=3600"exec() has been disabled for security reasons"
Problem: Die PHP-Funktion exec ist in der php.ini deaktiviert.
Lösung:
VPS/Dedicated:
php.inibearbeiten:
sudo nano /etc/php/8.0/fpm/php.inidisable_functionsfinden undexecentfernen:
; Vorher:
disable_functions = exec,shell_exec,system
; Nachher:
disable_functions = system- PHP-FPM neu starten:
sudo systemctl restart php8.0-fpmShared Hosting: Kontaktieren Sie Ihren Hoster, um exec zu aktivieren.
Restore-Probleme
Restore schlägt fehl mit "Backup file not found"
Problem: Die Backup-Datei wurde gelöscht oder verschoben.
Lösung:
- Prüfen, ob die Datei existiert:
ls -la /var/backups- Dateiberechtigungen prüfen:
ls -la /var/backups/backup_*.tar.gz- Wenn die Datei verschoben wurde: Aktualisieren Sie den Dateipfad in der Datenbank oder verschieben Sie sie zurück.
Restore schlägt fehl mit "Invalid encryption key"
Problem: Falscher Verschlüsselungsschlüssel oder beschädigtes Backup.
Lösung:
- Verschlüsselungsschlüssel in der Plugin-Konfiguration überprüfen
- Mit dem ursprünglichen Schlüssel versuchen, falls Sie ihn geändert haben
- Backup-Integrität prüfen:
# Für tar.gz
tar -tzf backup.tar.gz > /dev/null
echo $? # Sollte 0 ausgeben
# Für sql.gz
zcat backup.sql.gz | head -10- Wenn das Backup beschädigt ist: Verwenden Sie ein anderes Backup
Datenbank-Restore schlägt fehl mit "Access denied"
Problem: Datenbank-Anmeldeinformationen sind falsch oder der Benutzer hat keine Berechtigungen.
Lösung:
.env-Datei prüfen:
cat .env | grep DATABASE- Anmeldeinformationen überprüfen:
mysql -u username -p -h localhost- Berechtigungen erteilen:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES;Shop zeigt Fehler nach dem Restore
Problem: Cache nicht geleert oder falsche Dateiberechtigungen.
Lösung:
- Cache leeren:
bin/console cache:clear
rm -rf var/cache/*- Dateiberechtigungen korrigieren:
chmod -R 755 .
chmod -R 775 var/ public/media/ public/thumbnail/ files/
chown -R www-data:www-data .- Theme neu kompilieren:
bin/console theme:compile- Thumbnails neu generieren:
bin/console media:generate-thumbnailsPerformance-Probleme
Backup dauert sehr lange (> 1 Stunde)
Problem: Große Datenbank oder viele Dateien.
Lösung:
- Nur-Datenbank-Backups häufiger verwenden (schneller)
- Nur-Dateien-Backups seltener verwenden
- Datenbank optimieren:
bin/console database:optimize- PHP-Limits erhöhen:
; php.ini
max_execution_time = 7200
memory_limit = 512MMessage Queue Consumer stürzt ab
Problem: Speicherlimit oder Timeout.
Lösung:
- Speicherlimit erhöhen:
bin/console messenger:consume async --memory-limit=512M --time-limit=3600- Als systemd-Dienst ausführen:
# /etc/systemd/system/shopware-messenger.service
[Unit]
Description=Shopware Messenger Consumer
[Service]
Type=simple
User=www-data
Restart=always
RestartSec=10
ExecStart=/usr/bin/php /var/www/html/bin/console messenger:consume async --time-limit=3600
[Install]
WantedBy=multi-user.targetVerschlüsselungsprobleme
Backup kann nicht entschlüsselt werden
Problem: Verschlüsselungsschlüssel verloren oder falsch.
Lösung:
Wenn Sie den Schlüssel haben:
- Schlüssel in der Plugin-Konfiguration überprüfen
- Manuelle Entschlüsselung versuchen:
# Das Plugin verwendet XChaCha20-Poly1305, nicht OpenSSL CLI
# Verwenden Sie das Standalone Decrypt Script
php decrypt.php backup.tar.gz.enc YOUR_KEYWenn Sie den Schlüssel verloren haben:
- Verschlüsselte Backups können nicht wiederhergestellt werden
- Verwenden Sie ein älteres unverschlüsseltes Backup
- Prävention: Speichern Sie den Verschlüsselungsschlüssel immer sicher!
Audit-Log-Probleme
Audit-Log-Einträge fehlen
Problem: Datenbankproblem oder Plugin nicht richtig installiert.
Lösung:
- Prüfen, ob die Tabelle existiert:
bin/console dbal:run-sql "SHOW TABLES LIKE 'ecomsec_backup_audit_log'"- Plugin neu installieren:
bin/console plugin:uninstall EcomSecBackupProfessional
bin/console plugin:install EcomSecBackupProfessional
bin/console plugin:activate EcomSecBackupProfessionalHilfe erhalten
Wenn Ihr Problem hier nicht aufgeführt ist:
Logs prüfen:
var/log/dev.logvar/log/prod.log- Audit-Log im Plugin
GitHub Issues durchsuchen:
Neues Issue erstellen:
- Fehlermeldungen einfügen
- Relevante Logs einfügen
- Schritte zur Reproduktion beschreiben
Support kontaktieren:
- E-Mail: support@reimchen.de
Nützliche Befehle
Systemanforderungen prüfen
# PHP-Version prüfen
php -v
# mysqldump prüfen
which mysqldump
mysqldump --version
# tar/gzip prüfen
which tar
which gzip
# Speicherplatz prüfen
df -h
# PHP-Funktionen prüfen
php -r "echo (function_exists('exec') ? 'exec: enabled' : 'exec: disabled') . PHP_EOL;"Backup debuggen
# Logs in Echtzeit beobachten
tail -f var/log/dev.log
# Message Queue prüfen
bin/console messenger:stats
# Nachrichten manuell konsumieren
bin/console messenger:consume async -vvManuelles Backup (Notfall)
# Datenbank
mysqldump -u user -p database > backup.sql
gzip backup.sql
# Dateien
tar -czf backup_files.tar.gz \
--exclude='var/cache' \
--exclude='var/log' \
config custom files public/media public/theme