API updadte

This commit is contained in:
2025-11-09 11:27:21 +01:00
parent 77206224a2
commit 4953d192c0
8 changed files with 2343 additions and 784 deletions

432
docs/troubleshooting.md Normal file
View File

@@ -0,0 +1,432 @@
# Fehlerbehebung
[← Zurück zur Hauptseite](../README.md)
## Häufige Probleme
### Frontend-Probleme
#### Seite lädt ohne CSS/JavaScript
**Problem:** Seite wird angezeigt, aber ohne Styling oder JavaScript-Funktionalität.
**Lösung:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# Windows
netstat -ano | findstr :8080
taskkill /PID <prozess-id> /F
# Linux/Mac
lsof -i :8080
kill -9 <prozess-id>
```
**Lösung 2 - Port ändern:**
```yaml
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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
```bash
# .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!
```bash
# 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:**
```bash
docker-compose logs > debug_logs.txt
```
2. **Systeminfo sammeln:**
```bash
docker version > system_info.txt
docker-compose version >> system_info.txt
php -v >> system_info.txt
```
3. **Issue erstellen** mit:
- Problembeschreibung
- Fehlermeldung
- Logs (debug_logs.txt)
- Systeminfo (system_info.txt)
- Schritte zum Reproduzieren
---
**Siehe auch:**
- [Docker](docker.md) - Container-Management
- [Development](development.md) - Entwickler-Workflow
- [Installation](installation.md) - Setup-Anleitung
[← Zurück zur Hauptseite](../README.md)