Files
immorechner/docs/troubleshooting.md
2025-11-09 11:27:21 +01:00

8.6 KiB

Fehlerbehebung

← Zurück zur Hauptseite

Häufige Probleme

Frontend-Probleme

Seite lädt ohne CSS/JavaScript

Problem: Seite wird angezeigt, aber ohne Styling oder JavaScript-Funktionalität.

Lösung:

# Assets installieren
docker-compose exec web php bin/console assets:install public --symlink --relative

# Cache leeren
docker-compose exec web php bin/console cache:clear

# Browser-Cache leeren (Strg+F5)

Live-Berechnungen funktionieren nicht

Problem: Formular-Eingaben triggern keine Berechnungen.

Lösung:

# Browser-Konsole öffnen (F12)
# Nach JavaScript-Fehlern suchen

# Prüfen ob jQuery geladen wurde
# Sollte in Netzwerk-Tab sichtbar sein: jquery-3.7.1.min.js

# calculator.js prüfen
curl http://localhost:8080/js/calculator.js

Login funktioniert nicht

Problem: Login-Formular gibt Fehler oder leitet nicht weiter.

Lösung:

# Cache leeren
docker-compose exec web php bin/console cache:clear

# Prüfen ob User existiert
docker-compose exec db mariadb -u root -proot -e "SELECT email FROM users" immorechner

# Session-Verzeichnis prüfen
docker-compose exec web ls -la /var/www/html/var/cache/dev/sessions

API-Probleme

Swagger UI lädt ohne CSS

Problem: http://localhost:8080/api/docs.html lädt, aber ohne Formatierung.

Lösung:

# Bundle-Assets installieren
docker-compose exec web php bin/console assets:install public --symlink --relative

# Cache leeren
docker-compose exec web php bin/console cache:clear

# Prüfen ob Assets existieren
docker-compose exec web ls -la /var/www/html/public/bundles/apiplatform

API gibt 401 Unauthorized

Problem: API-Anfrage mit API-Key schlägt fehl.

Lösung:

# API-Key prüfen
docker-compose exec db mariadb -u root -proot -e "SELECT id, email, api_key FROM users" immorechner

# Korrekten Header verwenden
curl -H "X-API-KEY: ihr-api-key" http://localhost:8080/api/immobilies

# Nicht "Authorization" Header!

API gibt 500 Internal Server Error

Problem: API-Anfrage schlägt mit Server-Fehler fehl.

Lösung:

# Logs prüfen
docker-compose logs web

# Symfony Logs prüfen
docker-compose exec web tail -f /var/www/html/var/log/dev.log

# Datenbank-Verbindung testen
docker-compose exec web php bin/console doctrine:query:sql "SELECT 1"

Datenbank-Probleme

Connection refused

Problem: Kann nicht zur Datenbank verbinden.

Lösung:

# DB-Container läuft?
docker ps | grep db

# DB-Container-Logs
docker-compose logs db

# Warten (DB braucht ~30-60 Sekunden)
sleep 60

# DB-Verbindung testen
docker-compose exec db mariadb -u root -proot -e "SELECT 1"

# Neustart
docker-compose restart db

Migrations schlagen fehl

Problem: doctrine:migrations:migrate gibt Fehler.

Lösung:

# Migration-Status prüfen
docker-compose exec web php bin/console doctrine:migrations:status

# Datenbank droppen und neu erstellen
docker-compose exec web php bin/console doctrine:database:drop --force
docker-compose exec web php bin/console doctrine:database:create
docker-compose exec web php bin/console doctrine:migrations:migrate --no-interaction

# Oder: Container komplett neu aufsetzen
docker-compose down -v
docker-compose up -d --build
docker-compose exec web composer install
docker-compose exec web php bin/console doctrine:migrations:migrate --no-interaction

Tabellen fehlen

Problem: "Table 'immorechner.users' doesn't exist"

Lösung:

# Migrations ausführen
docker-compose exec web php bin/console doctrine:migrations:migrate --no-interaction

# Tabellen prüfen
docker-compose exec db mariadb -u root -proot -e "SHOW TABLES" immorechner

# Falls leer: Migration erneut ausführen
docker-compose exec web php bin/console doctrine:migrations:migrate --no-interaction

Docker-Probleme

Container starten nicht

Problem: docker-compose up schlägt fehl.

Lösung:

# Logs prüfen
docker-compose logs

# Alte Container stoppen
docker-compose down

# Neu starten mit Build
docker-compose up -d --build

# Docker neu starten
# Windows: Docker Desktop neu starten
# Linux: sudo systemctl restart docker

Port bereits belegt

Problem: "Port 8080 is already allocated"

Lösung 1 - Port freigeben:

# Windows
netstat -ano | findstr :8080
taskkill /PID <prozess-id> /F

# Linux/Mac
lsof -i :8080
kill -9 <prozess-id>

Lösung 2 - Port ändern:

# In docker-compose.yml
services:
  web:
    ports:
      - "8090:80"  # Statt 8080:80

Volumes löschen nicht möglich

Problem: "Volume is in use"

Lösung:

# Alle Container stoppen
docker-compose down

# Volume prüfen
docker volume ls

# Container mit Volume finden
docker ps -a --filter volume=immorechner_db_data

# Container löschen
docker rm <container-id>

# Volume löschen
docker volume rm immorechner_db_data

Composer-Probleme

"Class not found" Fehler

Problem: PHP kann Klasse nicht finden.

Lösung:

# Autoloader neu generieren
docker-compose exec web composer dump-autoload

# Cache leeren
docker-compose exec web php bin/console cache:clear

# Dependencies neu installieren
docker-compose exec web rm -rf vendor
docker-compose exec web composer install

Composer sehr langsam

Problem: composer install braucht ewig.

Lösung:

# Im Container ausführen (schneller als via Volume)
docker-compose exec web composer install

# Cache leeren
docker-compose exec web composer clear-cache

# Parallel Downloads aktivieren
docker-compose exec web composer config --global process-timeout 2000
docker-compose exec web composer config --global repos.packagist composer https://packagist.org

Berechtigungs-Probleme

"Permission denied" in var/

Problem: Kann nicht in var/cache oder var/log schreiben.

Lösung:

# Berechtigungen setzen
docker-compose exec -u root web chown -R www-data:www-data /var/www/html/var

# Oder: 777 Rechte (nur Development!)
docker-compose exec -u root web chmod -R 777 /var/www/html/var

# Cache neu erstellen
docker-compose exec web php bin/console cache:clear

Performance-Probleme

Seite lädt sehr langsam

Problem: Frontend/API antwortet langsam.

Lösung:

# Opcache Status prüfen
docker-compose exec web php -i | grep opcache

# Cache warmup
docker-compose exec web php bin/console cache:warmup

# Für Produktion: APP_ENV=prod setzen in .env
# Opcache aktiviert sich automatisch

# Docker-Resources erhöhen
# Docker Desktop -> Settings -> Resources -> Memory: 4GB+

Datenbank-Queries langsam

Problem: API-Anfragen langsam bei vielen Datensätzen.

Lösung:

# Indizes prüfen
docker-compose exec web php bin/console doctrine:schema:validate

# Query-Log aktivieren (temporär)
# In config/packages/doctrine.yaml:
logging: true
profiling: true

# Slow Query Log in MariaDB aktivieren
docker-compose exec db mariadb -u root -proot -e "SET GLOBAL slow_query_log = 'ON'"

Browser-Probleme

Alte Daten werden angezeigt

Problem: Änderungen werden nicht sichtbar.

Lösung:

# Browser-Cache leeren
# Chrome/Firefox: Strg+Shift+Delete

# Hard Reload
# Chrome/Firefox: Strg+F5
# Mac: Cmd+Shift+R

# Server-Cache leeren
docker-compose exec web php bin/console cache:clear

Debug-Modus aktivieren

# .env
APP_ENV=dev
APP_DEBUG=true

# Cache leeren
docker-compose exec web php bin/console cache:clear

# Symfony Profiler in Browser verwenden
# Unten auf der Seite erscheint Toolbar

Komplett-Reset (Letzter Ausweg)

WARNUNG: Löscht alle Daten!

# Alles stoppen und löschen
docker-compose down -v

# Docker-Images löschen
docker rmi immorechner-web

# Neu aufbauen
docker-compose up -d --build

# Dependencies installieren
docker-compose exec web composer install

# Datenbank initialisieren
docker-compose exec web php bin/console doctrine:migrations:migrate --no-interaction

# Cache leeren
docker-compose exec web php bin/console cache:clear

Support

Wenn das Problem weiterhin besteht:

  1. Logs sammeln:
docker-compose logs > debug_logs.txt
  1. Systeminfo sammeln:
docker version > system_info.txt
docker-compose version >> system_info.txt
php -v >> system_info.txt
  1. Issue erstellen mit:
    • Problembeschreibung
    • Fehlermeldung
    • Logs (debug_logs.txt)
    • Systeminfo (system_info.txt)
    • Schritte zum Reproduzieren

Siehe auch:

← Zurück zur Hauptseite