Entwicklungsumgebung/Fehlerhandbuch: Unterschied zwischen den Versionen
Entwicklungsumgebung/Fehlerhandbuch (Quelltext anzeigen)
Version vom 11. Februar 2026, 12:57 Uhr
, Mittwoch um 12:57docker-Meldungen als 'veraltet' markiert
(+Leerzeile) |
(docker-Meldungen als 'veraltet' markiert) |
||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 9: | Zeile 9: | ||
== Fehlermeldungen in Zusammenhang mit der | == Fehlermeldungen in Zusammenhang mit der DDEV-Testumgebung == | ||
==== Fehler “starting opencaching-webserver .. error” oder “Starting webserver ... error” ==== | ==== Fehler “ERROR: for opencaching-mariadb Cannot start service mariadb: driver failed programming external connectivity on endpoint opencaching-mariadb [..] Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use” ==== | ||
Wenn beim 'ddev start' diese Fehlermeldung kommt, läuft im Hintergrund bereits ein anderer Webservice (z.B. mysql) auf Port 3306. | |||
Prüfen kann man das mit: | |||
netstat -tanp | grep :3306 | |||
Zum Beispiel ein mysql-Webserver kann gestoppt werden mit: | |||
sudo mysqladmin -u root shutdown | |||
== Fehlermeldungen beim Zugriff auf die Datenbank == | |||
==== Fehlermeldung “ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)” ==== | |||
Es wurde vergessen, den Namen der Datenbank in der Kommandozeile zu übergeben. | |||
mysql -uroot -proot -hopencaching-db opencaching | |||
== Fehlermeldungen beim Zugriff auf die Testserverdomain(s) == | |||
==== Vorgehen zum Anlegen eines weiteren Benutzers (betrifft Legacy-Testsystem) ==== | |||
Zuerst via https://opencaching.ddev.site/register.php einen neuen Nutzer registrieren. Zwar kommt dann die Meldung, dass der Aktivierungscode per Mail zugsandt wurde, dies passiert aber nie. Der Aktivierungscode muss aus der Test-Datenbank ausgelesen werden. | |||
Der Code steht in Tabelle ''user'' im Feld ''activation_code''. | |||
Mit https://opencaching.ddev.site/activation.php gelangt man zur Account-Aktivierungsseite. Hier die E-Mail-Adresse und den aus der Datenbank kopierten Aktivierungscode eingeben. Der Account ist nun aktiviert, aber falls der Login nicht funktioniert: siehe andere Fehlermeldung hier auf der Seite weiter unten. | |||
Info: Eventuell wird in Zukunft der MailHog zum Laufen gebracht. Dann werden die vom Server verschickten Emails von diesem abgefangen und man kann die Informationen darin lesen. | |||
==== Der neu angelegte Benutzer kann sich nicht einloggen und wird immer wieder ohne Meldung auf die Login-Seite geleitet (betrifft Legacy-Testsystem) ==== | |||
Die exakte Ursache ist nicht bekannt. Abhilfe kann geschaffen werden, wenn beim entsprechenden Nutzer in der Datenbank in der Tabelle ''user'' das Feld ''permanent_login_flag'' auf ''1'' gesetzt wird. | |||
==== Es kann kein Logbild hochgeladen werden (betrifft Legacy-Testsystem) ==== | |||
Sobald man ein Logbild hochladen möchte, erscheint eine Fehlermeldung | |||
<nowiki>Warning: move_uploaded_file(): Unable to move '/tmp/phpGmSzpi' to '/application/htdocs/config2/../images/uploads/700770A6-C101-11EA-BA77-0242AC120005.jpg' in /application/htdocs/lib2/logic/picture.class.php on line 856</nowiki> | |||
Abhilfe: (noch) keine Ahnung. Die Bilder wurden aber trotzdem hochgeladen. | |||
==== Bei Anlegen/Editieren eines Listings funktioniert die Attributeauswahl nicht (betrifft Legacy-Testsystem) ==== | |||
Editiert man ein Listing, stehen nicht alle Attribute zur Verfügung bzw. es können nicht alle Attribute ausgewählt werden. | |||
Abhilfe: (noch) keine Ahnung. | |||
==== Es kann nicht auf die Domains opencaching.ddev.site oder try-opencaching.ddev.site zugegriffen werden. ==== | |||
Normalerweise sollte der Zugriff nach Installation der Testumgebung automatisch funktionieren. Sollte das nicht der Fall sein, kann mittels Anpassung der hosts-Datei ein Workaround geschaffen werden: | |||
<nowiki>127.0.0.1 opencaching.ddev.site | |||
127.0.0.1 try-opencaching.ddev.site</nowiki> | |||
==== Abschalten von “NOTICE”-Meldungen. (betrifft Legacy-Testsystem) ==== | |||
Aufgrund diverser (Smarty- und PHP-)Updates werden vormals ignorierte Probleme nun mit einer “NOTICE”-Meldung kenntlich gemacht. Um die Meldungen zu unterdrücken, kann in das error_reporting Level geändert werden. | |||
Beispiele für Fehlermeldungen: | |||
<nowiki>Notice: Undefined index: error_password_not_ok in /app/htdocs/var/cache2/smarty/compiled/.. | |||
Notice: Trying to get property 'value' of non-object in /app/..</nowiki> | |||
Abhilfe: | |||
Bis Smarty 3.x: In der Datei /htdocs/vendor/smarty/smarty/libs/Smarty.class.php die Zeile mit $error_reporting ändern auf den nachfolgenden Code. Die Änderung ist nicht git-relevant und geht nach jedem “ddev init” verloren. | |||
<nowiki>public $error_reporting = E_ALL & ~E_NOTICE;</nowiki> | |||
Ab Smarty 3.x und 4.x: In der Datei /htdocs/lib2/common.inc.php die obere Zeile (PHP_DEBUG_ON) mit $error_reporting ändern auf den nachfolgenden Code. Die Änderung ist permanent und muss vor einem Commit rückgängig gemacht werden, da sie sonst im github Repository landet. | |||
<nowiki>ini_set('error_reporting', E_ALL & ~E_NOTICE);</nowiki> | |||
== gelöste und veraltete Fehlermeldungen == | |||
==== [veraltet] Fehler “starting opencaching-webserver .. error” oder “Starting webserver ... error” ==== | |||
Vermutlich läuft im Hintergrund bereits ein anderer Webservice auf Port 80. | Vermutlich läuft im Hintergrund bereits ein anderer Webservice auf Port 80. | ||
| Zeile 25: | Zeile 89: | ||
==== Fehler “W: GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures were invalid: EXPKEYSIG“ ==== | ==== [veraltet] Fehler “W: GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures were invalid: EXPKEYSIG“ ==== | ||
Nach dem Ausführen von ./psh.phar docker:start kommt der Fehler. Hier ist das Zertifikat veraltet. Folgender Befehl löscht das Docker-Image. | Nach dem Ausführen von ./psh.phar docker:start kommt der Fehler. Hier ist das Zertifikat veraltet. Folgender Befehl löscht das Docker-Image. | ||
docker-compose build --pull | docker-compose build --pull | ||
| Zeile 32: | Zeile 96: | ||
==== | ==== [veraltet] Fehler "The stream or file "/application/htdocs/var/logs/dev/dev.log" could not be opened: failed to open stream: Permission denied" oder ähnlich (betrifft Legacy-Testsystem) ==== | ||
==== [veraltet] Oder: Fehler "Permission denied" beim Zugriff auf /htdocs/var/cache (betrifft Legacy-Testsystem) ==== | |||
==== [veraltet] Oder: Fehler 500 (ohne weitere Angaben, warum) (betrifft Legacy-Testsystem) ==== | |||
==== Oder: Fehler "Permission denied" beim Zugriff auf /htdocs/var/cache (betrifft Legacy-Testsystem) ==== | |||
==== Oder: Fehler 500 (ohne weitere Angaben, warum) (betrifft Legacy-Testsystem) ==== | |||
Hier scheint der Webserver keine Zugriffsberechtigung auf bestimmte Pfade/Dateien zu haben. Von einem Ändern der Zugriffsberechtigungen, z. B. mittels sudo chmod -R 777 ./var/log, sollte aus Sicherheitsgründen aber Abstand genommen werden. | Hier scheint der Webserver keine Zugriffsberechtigung auf bestimmte Pfade/Dateien zu haben. Von einem Ändern der Zugriffsberechtigungen, z. B. mittels sudo chmod -R 777 ./var/log, sollte aus Sicherheitsgründen aber Abstand genommen werden. | ||
| Zeile 60: | Zeile 114: | ||
==== Host-Mismatch bei Aufruf der OKAPI mit Port-Override ==== | ==== [veraltet] Host-Mismatch bei Aufruf der OKAPI mit Port-Override ==== | ||
Falls in einer Override-Datei Ports überschrieben werden (siehe oben), funktioniert die OKAPI möglicherweise nicht richtig - stattdessen erscheint ein Hinweis auf einen Port-Mismatch. Dies kann auf folgende Art und Weise behoben werden: | Falls in einer Override-Datei Ports überschrieben werden (siehe oben), funktioniert die OKAPI möglicherweise nicht richtig - stattdessen erscheint ein Hinweis auf einen Port-Mismatch. Dies kann auf folgende Art und Weise behoben werden: | ||
# Ermitteln der ID des Containers ''oc-server3_php-fpm'' mittels ''sudo docker ps''. | # Ermitteln der ID des Containers ''oc-server3_php-fpm'' mittels ''sudo docker ps''. | ||
| Zeile 69: | Zeile 123: | ||
==== Während docker:init kommt es im Abschnitt (3/31) zu einer Meldung “> mysql -uroot -proot -hmariadb -e "DROP DATABASE IF EXISTS opencaching" ERROR 2005 (HY000): Unknown MySQL server host 'mariadb' (-3).“ ==== | ==== [veraltet] Während docker:init kommt es im Abschnitt (3/31) zu einer Meldung “> mysql -uroot -proot -hmariadb -e "DROP DATABASE IF EXISTS opencaching" ERROR 2005 (HY000): Unknown MySQL server host 'mariadb' (-3).“ ==== | ||
Abhilfe: ''./psh.phar docker:init'' darf nicht außerhalb des Dockercontainers aufgerufen werden. | Abhilfe: ''./psh.phar docker:init'' darf nicht außerhalb des Dockercontainers aufgerufen werden. | ||
==== Während docker:init kommt es im Abschnitt (13/31) zu einer Meldung “PHP Fatal error: .. __toString() must not throw an exception ..“ ==== | ==== [veraltet] Während docker:init kommt es im Abschnitt (13/31) zu einer Meldung “PHP Fatal error: .. __toString() must not throw an exception ..“ ==== | ||
Die Ursache ist nicht bekannt. Hier hilft aktuell nur ein Workaround, in dem die Exception im Script auskommentiert wird. | Die Ursache ist nicht bekannt. Hier hilft aktuell nur ein Workaround, in dem die Exception im Script auskommentiert wird. | ||
| Zeile 81: | Zeile 135: | ||
==== Docker Services neu initialisieren, z.B. bei “''W: GPG error: stable InRelease: The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>''“ ==== | ==== [veraltet] Docker Services neu initialisieren, z.B. bei “''W: GPG error: stable InRelease: The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>''“ ==== | ||
Treten während eines docker:init neue, merkwürdige und nicht näher spezifizierbare Fehler auf, kann es helfen, die Dockercontainer neu zu initialisieren mittels: | Treten während eines docker:init neue, merkwürdige und nicht näher spezifizierbare Fehler auf, kann es helfen, die Dockercontainer neu zu initialisieren mittels: | ||
docker-compose build --pull | docker-compose build --pull | ||
==== z.B. bei Update auf Symfony 5.2 kommt während docker:start-clean der Fehler ''”mv: cannot stat '/root/.symfony/bin/symfony': No such file or directory Service 'webserver' failed to build: The command '/bin/sh -c mv /root/.symfony/bin/symfony /usr/local/bin/symfony' returned a non-zero code: 1"'' ==== | ==== [veraltet] z.B. bei Update auf Symfony 5.2 kommt während docker:start-clean der Fehler ''”mv: cannot stat '/root/.symfony/bin/symfony': No such file or directory Service 'webserver' failed to build: The command '/bin/sh -c mv /root/.symfony/bin/symfony /usr/local/bin/symfony' returned a non-zero code: 1"'' ==== | ||
In diesem Fall in der Datei ''docker/httpd/Dockerfile'' die fehlerverursachende Zeile | In diesem Fall in der Datei ''docker/httpd/Dockerfile'' die fehlerverursachende Zeile | ||
RUN mv /root/.symfony/bin/symfony /usr/local/bin/symfony | RUN mv /root/.symfony/bin/symfony /usr/local/bin/symfony | ||
| Zeile 92: | Zeile 146: | ||
==== Während docker:start-clean: ''"\Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain()" not found'' ==== | ==== [veraltet] Während docker:start-clean: ''"\Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain()" not found'' ==== | ||
Dies ist ein Fehler in einem der ''doctrine/*'' Pakete (vermutlich ''doctrine/persistence'') in bestimmten Paketversionen. Hier hilft, die Datei ''/htdocs/vendor/doctrine/doctrine-bundle/Resources/config/orm.xml'' Zeile 32 zu editieren: | Dies ist ein Fehler in einem der ''doctrine/*'' Pakete (vermutlich ''doctrine/persistence'') in bestimmten Paketversionen. Hier hilft, die Datei ''/htdocs/vendor/doctrine/doctrine-bundle/Resources/config/orm.xml'' Zeile 32 zu editieren: | ||
<parameter key="doctrine.orm.metadata.driver_chain.class">Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain</parameter> | <parameter key="doctrine.orm.metadata.driver_chain.class">Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain</parameter> | ||
| Zeile 101: | Zeile 155: | ||
==== Meldung “DEPRECATED: The legacy builder is deprecated and will be removed in a future release. Install the buildx component to build images with [[https://docs.docker.com/go/buildx/|BuildKit]] ==== | ==== [veraltet] Meldung “DEPRECATED: The legacy builder is deprecated and will be removed in a future release. Install the buildx component to build images with [[https://docs.docker.com/go/buildx/|BuildKit]] ==== | ||
Der Docker build Prozess wurde geändert. Die bisherige Methode wurde ab Dockerversion 23 als “deprecated” markiert und wird in einer zukünftigen Version entfernt. Siehe [[https://docs.docker.com/engine/deprecated/#legacy-builder-for-linux-images|Deprecated Engine Features]] | Der Docker build Prozess wurde geändert. Die bisherige Methode wurde ab Dockerversion 23 als “deprecated” markiert und wird in einer zukünftigen Version entfernt. Siehe [[https://docs.docker.com/engine/deprecated/#legacy-builder-for-linux-images|Deprecated Engine Features]] | ||
==== Meldung “ERROR: BuildKit is enabled but the buildx component is missing or broken.“ ==== | ==== [veraltet] Meldung “ERROR: BuildKit is enabled but the buildx component is missing or broken.“ ==== | ||
Docker Buildkit/buildx soll verwendet werden (DOCKER_BUILDKIT=1), wurde aber nicht installiert. | Docker Buildkit/buildx soll verwendet werden (DOCKER_BUILDKIT=1), wurde aber nicht installiert. | ||
Abhilfe: Buildkit/buildx Komponente installieren. Vorher müssen aber einige bereits installierte Pakete entfernt werden. Je nach OS gibt es unterschiedliche Anweisungen und Installationswege, siehe hier: [[https://docs.docker.com/engine/install/|Install Docker Engine]] | Abhilfe: Buildkit/buildx Komponente installieren. Vorher müssen aber einige bereits installierte Pakete entfernt werden. Je nach OS gibt es unterschiedliche Anweisungen und Installationswege, siehe hier: [[https://docs.docker.com/engine/install/|Install Docker Engine]] | ||
==== Während docker:start-clean: ''"Browserslist: caniuse-lite is outdated."'' ==== | |||
==== [veraltet] Während docker:start-clean: ''"Browserslist: caniuse-lite is outdated."'' ==== | |||
Scheinbar wird die “browserslist” nicht automatisch aktualisiert. (Grund? k.A.) | Scheinbar wird die “browserslist” nicht automatisch aktualisiert. (Grund? k.A.) | ||
| Zeile 119: | Zeile 174: | ||
==== [veraltet] Beim Anlegen des ''zweiten'' Cachelistings kommt eine Fehlermeldung (betrifft Legacy-Testsystem) ==== | |||
==== Beim Anlegen des ''zweiten'' Cachelistings kommt eine Fehlermeldung (betrifft Legacy-Testsystem) ==== | |||
Bei einer ''leeren'' Datenbank funktioniert das Setzen und Hochzählen der OC-Codes nicht. Es muss einmal ein OC-Code von Hand gesetzt werden. | Bei einer ''leeren'' Datenbank funktioniert das Setzen und Hochzählen der OC-Codes nicht. Es muss einmal ein OC-Code von Hand gesetzt werden. | ||
| Zeile 145: | Zeile 180: | ||
==== Beim Erstellen/Speichern eines Cachelistings kommen mehrere Fehlermeldungen, u.a. “Warning: A non-numeric value encountered in /app/htdocs/newcache.php on line 1025” (betrifft Legacy-Testsystem) ==== | ==== [veraltet] Beim Erstellen/Speichern eines Cachelistings kommen mehrere Fehlermeldungen, u.a. “Warning: A non-numeric value encountered in /app/htdocs/newcache.php on line 1025” (betrifft Legacy-Testsystem) ==== | ||
[[Image:Fehlerhandbuch Domain 01.png|500px]] | [[Image:Fehlerhandbuch Domain 01.png|500px]] | ||
| Zeile 151: | Zeile 186: | ||
==== | ==== [veraltet] Das Länderauswahlfeld rechts oben auf der Seite ist leer und funktioniert nicht. (betrifft Legacy-Testsystem) ==== | ||
Alle php-Dateien im Cacheverzeichnis htdocs/var/cache2 müssen gelöscht werden. | Alle php-Dateien im Cacheverzeichnis htdocs/var/cache2 müssen gelöscht werden. | ||
| Zeile 170: | Zeile 193: | ||
rm htdocs/var/cache2/*.inc.php | rm htdocs/var/cache2/*.inc.php | ||
./psh.phar docker:start</nowiki> | ./psh.phar docker:start</nowiki> | ||