Entwicklungsumgebung/Fehlerhandbuch: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
docker-Meldungen als 'veraltet' markiert
(Update Fehlerüberschrift)
(docker-Meldungen als 'veraltet' markiert)
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 9: Zeile 9:




== Fehlermeldungen in Zusammenhang mit der Dockerumgebung ==
== 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:




==== 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” ====
==== [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) ====
Wenn beim docker:start diese Fehlermeldung kommt, läuft im Hintergrund bereits ein anderer Webservice (z.B. mysql) auf Port 3306.
==== [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) ====
Prüfen kann man das mit:
netstat -tanp | grep :3306
 
Zum Beispiel ein mysql-Webserver kann gestoppt werden mit:
sudo mysqladmin -u root shutdown
 
 
==== 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) ====
==== 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 59: Zeile 113:
# Die Container-Shell regulär mittels exit verlassen.
# Die Container-Shell regulär mittels exit verlassen.


==== 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 68: 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 80: 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 91: 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 100: 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 118: Zeile 174:




== Fehlermeldungen beim Zugriff auf die Datenbank ==
==== [veraltet] Beim Anlegen des ''zweiten'' Cachelistings kommt eine Fehlermeldung (betrifft Legacy-Testsystem) ====
==== 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 -hmariadb opencaching
 
 
== Fehlermeldungen beim Zugriff auf die Testserverdomain ==
==== Vorgehen zum Anlegen eines weiteren Benutzers (betrifft Legacy-Testsystem) ====
Zuerst via http://docker.team-opencaching.de/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 http://docker.team-opencaching.de/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.
 
 
==== 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 144: 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 150: Zeile 186:




==== Es kann kein Logbild hochgeladen werden (betrifft Legacy-Testsystem) ====
==== [veraltet] Das Länderauswahlfeld rechts oben auf der Seite ist leer und funktioniert nicht. (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.
 
 
==== 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 169: Zeile 193:
rm htdocs/var/cache2/*.inc.php
rm htdocs/var/cache2/*.inc.php
./psh.phar docker:start</nowiki>
./psh.phar docker:start</nowiki>
==== Es kann nicht auf die Domains docker.team-opencaching.de oder try.docker.team-opencaching.de 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 docker.team-opencaching.de
127.0.0.1 try.docker.team-opencaching.de</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 “./psh.phar docker:start-clean” 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>




185

Bearbeitungen

Navigationsmenü