Entwicklungsumgebung/Fehlerhandbuch
Während der Installation der Programme oder Einrichtung der Testumgebung kann es zu diversen Fehlern und Meldungen kommen. Im Folgenden sind bereits bekannte Meldungen aufgelistet, die bei einer schnellen Behebung helfen sollen.
Fehlermeldungen während der Paketinstallation
Während der Installation der benötigten Pakete, kommt es zu einer Meldung, dass Abhängigkeiten mit dem ‘libdvd-pkg’ Paket nicht aufgelöst werden können
Eine Rekonfiguration des Pakets schafft Abhilfe:
sudo dpkg-reconfigure libdvd-pkg
Fehlermeldungen in Zusammenhang mit der Dockerumgebung
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 -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.
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.
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)
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)
Es kann kein Logbild hochgeladen werden (betrifft Legacy-Testsystem)
Sobald man ein Logbild hochladen möchte, erscheint eine Fehlermeldung
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
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.
Das Vorgehen Unter Linux:
./psh.phar docker:stop rm htdocs/var/cache2/*.inc.php ./psh.phar docker:start
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:
127.0.0.1 docker.team-opencaching.de 127.0.0.1 try.docker.team-opencaching.de
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:
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/..
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.
public $error_reporting = E_ALL & ~E_NOTICE;
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.
ini_set('error_reporting', E_ALL & ~E_NOTICE);
[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: [Die Übersetzungen funktionieren auf dem Testserver nicht] Dieser Fehler sollte somit nicht mehr auftauchen.
[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 [Request #830 changed node information from 5 to 4] behebt das Problem.