433 lines
8.6 KiB
Markdown
433 lines
8.6 KiB
Markdown
# 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)
|