# 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 /F # Linux/Mac lsof -i :8080 kill -9 ``` **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 # 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)