Skip to content

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:

bash
sudo apt-get update
sudo apt-get install mysql-client

CentOS/RHEL:

bash
sudo yum install mysql

Shared Hosting: Kontaktieren Sie Ihren Hoster.

Installation überprüfen:

bash
which mysqldump
# Sollte ausgeben: /usr/bin/mysqldump

"Permission denied" beim Erstellen des Backups

Problem: Das Backup-Verzeichnis ist nicht beschreibbar.

Lösung:

bash
# 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-data

Alternative: Ä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:

  1. Verfügbaren Speicherplatz prüfen:
bash
df -h
  1. Speicherplatz freigeben:

    • Alte Backups manuell löschen
    • Aufbewahrungsrichtlinie reduzieren
    • Externen Speicher verwenden (S3, FTP)
  2. 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:

  1. Logs prüfen:
bash
tail -f var/log/dev.log
  1. Prozess prüfen:
bash
ps aux | grep mysqldump
ps aux | grep tar
  1. Hängenden Prozess beenden:
bash
# Prozess-ID finden
ps aux | grep mysqldump
# Beenden
sudo kill -9 <PID>
  1. Message Queue Consumer neu starten:
bash
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:

  1. php.ini bearbeiten:
bash
sudo nano /etc/php/8.0/fpm/php.ini
  1. disable_functions finden und exec entfernen:
ini
; Vorher:
disable_functions = exec,shell_exec,system

; Nachher:
disable_functions = system
  1. PHP-FPM neu starten:
bash
sudo systemctl restart php8.0-fpm

Shared 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:

  1. Prüfen, ob die Datei existiert:
bash
ls -la /var/backups
  1. Dateiberechtigungen prüfen:
bash
ls -la /var/backups/backup_*.tar.gz
  1. 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:

  1. Verschlüsselungsschlüssel in der Plugin-Konfiguration überprüfen
  2. Mit dem ursprünglichen Schlüssel versuchen, falls Sie ihn geändert haben
  3. Backup-Integrität prüfen:
bash
# 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
  1. 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:

  1. .env-Datei prüfen:
bash
cat .env | grep DATABASE
  1. Anmeldeinformationen überprüfen:
bash
mysql -u username -p -h localhost
  1. Berechtigungen erteilen:
sql
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:

  1. Cache leeren:
bash
bin/console cache:clear
rm -rf var/cache/*
  1. Dateiberechtigungen korrigieren:
bash
chmod -R 755 .
chmod -R 775 var/ public/media/ public/thumbnail/ files/
chown -R www-data:www-data .
  1. Theme neu kompilieren:
bash
bin/console theme:compile
  1. Thumbnails neu generieren:
bash
bin/console media:generate-thumbnails

Performance-Probleme

Backup dauert sehr lange (> 1 Stunde)

Problem: Große Datenbank oder viele Dateien.

Lösung:

  1. Nur-Datenbank-Backups häufiger verwenden (schneller)
  2. Nur-Dateien-Backups seltener verwenden
  3. Datenbank optimieren:
bash
bin/console database:optimize
  1. PHP-Limits erhöhen:
ini
; php.ini
max_execution_time = 7200
memory_limit = 512M

Message Queue Consumer stürzt ab

Problem: Speicherlimit oder Timeout.

Lösung:

  1. Speicherlimit erhöhen:
bash
bin/console messenger:consume async --memory-limit=512M --time-limit=3600
  1. Als systemd-Dienst ausführen:
ini
# /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.target

Verschlüsselungsprobleme

Backup kann nicht entschlüsselt werden

Problem: Verschlüsselungsschlüssel verloren oder falsch.

Lösung:

Wenn Sie den Schlüssel haben:

  1. Schlüssel in der Plugin-Konfiguration überprüfen
  2. Manuelle Entschlüsselung versuchen:
bash
# Das Plugin verwendet XChaCha20-Poly1305, nicht OpenSSL CLI
# Verwenden Sie das Standalone Decrypt Script
php decrypt.php backup.tar.gz.enc YOUR_KEY

Wenn 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:

  1. Prüfen, ob die Tabelle existiert:
bash
bin/console dbal:run-sql "SHOW TABLES LIKE 'ecomsec_backup_audit_log'"
  1. Plugin neu installieren:
bash
bin/console plugin:uninstall EcomSecBackupProfessional
bin/console plugin:install EcomSecBackupProfessional
bin/console plugin:activate EcomSecBackupProfessional

Hilfe erhalten

Wenn Ihr Problem hier nicht aufgeführt ist:

  1. Logs prüfen:

    • var/log/dev.log
    • var/log/prod.log
    • Audit-Log im Plugin
  2. GitHub Issues durchsuchen:

  3. Neues Issue erstellen:

    • Fehlermeldungen einfügen
    • Relevante Logs einfügen
    • Schritte zur Reproduktion beschreiben
  4. Support kontaktieren:


Nützliche Befehle

Systemanforderungen prüfen

bash
# 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

bash
# 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 -vv

Manuelles Backup (Notfall)

bash
# 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

Siehe auch

Released under the MIT License.