Entwicklungsumgebung/Fehlerhandbuch: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Entwicklungsumgebung/Fehlerhandbuch (Quelltext anzeigen)
Version vom 30. März 2026, 06:06 Uhr
, 06:06Umsortierung und neu: yarn-Meldung
(docker-Meldungen als 'veraltet' markiert) |
(Umsortierung und neu: yarn-Meldung) |
||
| Zeile 18: | Zeile 18: | ||
Zum Beispiel ein mysql-Webserver kann gestoppt werden mit: | Zum Beispiel ein mysql-Webserver kann gestoppt werden mit: | ||
sudo mysqladmin -u root shutdown | sudo mysqladmin -u root shutdown | ||
==== Yarn Fehlermeldung “[DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.” ==== | |||
Diese Meldung hat keine funktionelle Einschränkung und kann aktuell ignoriert werden. | |||
Hintergrund: Seit nodejs Version 22 wird die Funktion url.parse() als veraltet markiert. Yarn 1.xx nutzt sie, wird wohl aber kein Update mehr erhalten. In Yarn 2+ ist das Problem behoben, allerdings ist ein Umstieg mit größeren Aufwänden verbunden und wird aktuell nicht forciert. | |||
| Zeile 27: | Zeile 33: | ||
== Fehlermeldungen beim Zugriff auf die Testserverdomain(s) == | == Fehlermeldungen beim Zugriff auf die Testserverdomain(s) == | ||
==== | ==== Beim 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. | |||
==== | ==== Ein neu angelegter 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. | 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. | ||
| Zeile 44: | Zeile 47: | ||
<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> | <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. | Abhilfe: (noch) keine Ahnung. Die Bilder wurden aber trotzdem hochgeladen. | ||
| Zeile 71: | Zeile 68: | ||
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. | 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> | <nowiki>ini_set('error_reporting', E_ALL & ~E_NOTICE);</nowiki> | ||
==== 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. | |||
== gelöste und veraltete Fehlermeldungen == | == gelöste und veraltete Fehlermeldungen == | ||
==== [veraltet] | ==== [veraltet] 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. | |||
Hierzu auf dem Testserver ein Listing anlegen. Dann für diesen Cache in der Datenbank in der Tabelle ''caches'' das Feld ''wp_oc'' auf einen initialen Wert ändern, z.B. ''OC1234''. | |||
==== [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]] | |||
Zuerst muss geschaut werden, ob eventuell der vorige Abschnitt ("Beim Anlegen des zweiten Cachelistings kommt eine Fehlermeldung") zutrifft. Wurden die dort beschriebenen Maßnahmen bereits umgesetzt, kommt es zwar trotzdem zur Fehlermeldung, das Listing wurde aber erfolgreich angelegt bzw. gespeichert. (Seite neu laden) | |||
==== [gelöst] Beim Löschen von Logs kommt eine Fehlermeldung "This log entry has been created on another Opencaching website. The cache can only be edited there." ==== | |||
Auf dem Testserver werden die Logs laut Datenbank (Tabelle ''cache_logs'', Spalte ''nodes'') als ''node=5'' gespeichert, obwohl es laut Tabelle ''nodes'' diese Ziffer gar nicht gibt. | |||
Um Logs wieder über die normale Loglöschenfunktion löschen zu können, gibt es mehrere Möglichkeiten: | |||
# In der Datenbanktabelle 'cache_logs' den Eintrag in Spalte 'nodes' auf 4 ändern. (Dies entspricht der 'Local Development'-Umgebung (siehe Tabelle 'nodes')). | |||
# In der Datei '/dev-ops/local.team-opencaching.de/templates/config2-settings.inc.tpl.php' den Eintrag '$opt['logic']['node']['id'] = 5;' ändern auf '$opt['logic']['node']['id'] = 4;' und das docker:init Script ausführen | |||
# Der Pull [[https://github.com/OpencachingDeutschland/oc-server3/pull/830|Pull Request #830 changed node information from 5 to 4]] behebt das Problem. | |||
==== [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. | |||
Das Vorgehen Unter Linux: | |||
<nowiki>./psh.phar docker:stop | |||
rm htdocs/var/cache2/*.inc.php | |||
./psh.phar docker:start</nowiki> | |||
==== [gelöst] Die Übersetzungen funktionieren nicht. Meist wird nur Englischer Text angezeigt. (betrifft Legacy-Testsystem) ==== | |||
Die vorhandenen Fremdsprachen werden auf dem Testsystem nicht korrekt dargestellt. Meistens wird nur der Englische Text oder ein Mischmasch aus Englisch und eingestellter Sprache angezeigt. | |||
Abhilfe: im docker:start Skript wurde eine fehlende Komponente ergänzt, welche nun automatisch mitinstalliert wird. Dadurch werden die Sprachdateien korrekt erzeugt und die Übersetzungen funktionieren. | |||
Siehe auch: [[https://opencaching.atlassian.net/browse/RED-1278|RED-1278: Die Übersetzungen funktionieren auf dem Testserver nicht]] | |||
Dieser Fehler sollte somit nicht mehr auftauchen. | |||
==== [veraltet] | ==== [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: | |||
docker-compose build --pull | docker-compose build --pull | ||
| Zeile 112: | Zeile 140: | ||
# In der Container-Shell chmod -R 777 /application/htdocs/var/logs/dev/ ausführen. | # In der Container-Shell chmod -R 777 /application/htdocs/var/logs/dev/ ausführen. | ||
# Die Container-Shell regulär mittels exit verlassen. | # Die Container-Shell regulär mittels exit verlassen. | ||
==== [veraltet] Fehler "starting opencaching-webserver .. error" oder "Starting webserver ... error" ==== | |||
Vermutlich läuft im Hintergrund bereits ein anderer Webservice auf Port 80. | |||
Prüfen kann man das mit: | |||
netstat -tanp | grep :80 | |||
Zum Beispiel ein apache2-Webserver kann gestoppt werden mit: | |||
sudo systemctl stop apache2 | |||
Damit der apache2 nach einem Rechnerneustart nicht erneut aktiviert wird, kann man ihn generell deaktivieren: | |||
sudo systemctl disable apache2 | |||
Alternativ lässt sich auch eine [[https://docs.docker.com/compose/extends/|Override-Datei]] für die betroffenen Ports verwenden, was allerdings weitere Komplikationen mit sich führen kann (wie beispielsweise eine nicht funktionierende OKAPI). Aus diesem Grund sollte nach Möglichkeit das Stoppen der Standard-Services für Apache und einen Datenbank-Server vorgezogen werden. | |||
==== [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. | |||
docker-compose build --pull | |||
Mit einen erneuten ./psh.phar docker:start läuft es wieder durch. | |||
| Zeile 123: | Zeile 173: | ||
==== [veraltet] Während docker:init kommt es im Abschnitt (3/31) zu einer Meldung | ==== [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]] | |||
==== [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. | |||
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]] | |||
==== [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. | ||
==== [veraltet] Während docker:init kommt es im Abschnitt (13/31) zu einer Meldung | ==== [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 133: | Zeile 193: | ||
Siehe auch Ticket: [[https://opencaching.atlassian.net/browse/OCC-90|OCC-90: Exception error during docker:init]] | Siehe auch Ticket: [[https://opencaching.atlassian.net/browse/OCC-90|OCC-90: Exception error during docker:init]] | ||
| Zeile 153: | Zeile 202: | ||
Allerdings muss dies zum richtigen Zeitpunkt passieren. Nachdem ''docker:start-clean'' aufgerufen wurde, kurz warten, bis die Pakete heruntergeladen wurden und noch bevor Abschnitt 13/32 anfängt, muss die Datei korrigiert und gespeichert worden sein. | Allerdings muss dies zum richtigen Zeitpunkt passieren. Nachdem ''docker:start-clean'' aufgerufen wurde, kurz warten, bis die Pakete heruntergeladen wurden und noch bevor Abschnitt 13/32 anfängt, muss die Datei korrigiert und gespeichert worden sein. | ||
==== [veraltet] Während docker:start-clean: ''"Browserslist: caniuse-lite is outdated."'' ==== | ==== [veraltet] Während docker:start-clean: ''"Browserslist: caniuse-lite is outdated."'' ==== | ||
Scheinbar wird die | Scheinbar wird die "browserslist" nicht automatisch aktualisiert. (Grund? k.A.) | ||
Zum manuellen Update im Docker:ssh eingeben: | Zum manuellen Update im Docker:ssh eingeben: | ||
| Zeile 174: | Zeile 213: | ||
==== [veraltet] | ==== [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 | |||
RUN mv /root/.symfony/bin/symfony /usr/local/bin/symfony | |||
auskommentieren und docker:start-clean erneut laufen lassen. | |||
[[Kategorie:Entwicklung|Fehlerhandbuch ]] | [[Kategorie:Entwicklung|Fehlerhandbuch ]] | ||