Table of Contents | ||
---|---|---|
|
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:
Code Block |
---|
sudo dpkg-reconfigure libdvd-pkg |
Debian 12: bei der Einrichtung des PHP-Repositorys ppa:ondrej/php kommt es zu einem Fehler “AttributeError: 'NoneType' object has no attribute 'people'
“
Es muss vorab ein Pythonpaket installiert werden
Code Block |
---|
sudo apt install python3-launchpadlib |
...
Fehlermeldungen in Zusammenhang mit der Dockerumgebung
Fehler “starting opencaching-webserver .. error” oder “Starting webserver ... error”
Vermutlich läuft im Hintergrund bereits ein anderer Webservice auf Port 80.
...
Alternativ lässt sich auch eine 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.
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.
...
Mit einen erneuten ./psh.phar docker:start
läuft es wieder durch.
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 docker:start diese Fehlermeldung kommt, läuft im Hintergrund bereits ein anderer Webservice (z.B. mysql) auf Port 3306.
...
Code Block | ||
---|---|---|
| ||
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
Hier scheint der Webserver keine Zugriffsberechtigung auf bestimmte Pfade/Dateien zu haben.
...
Falls dies weiterhin keinen Erfolg bringt, können folgende Schritte zum Ändern der Zugriffsberechtigungen angewandt werden:
Ermitteln der ID des Containers
oc-server3_php-fpm
mittelssudo docker ps
.Öffnen einer Shell im Container:
sudo docker exec -it 45b6e4994fac /bin/bash
, wobei45b6e4994fac
die ID des Containers ist.In der Container-Shell
chmod -R 777 /application/htdocs/var/logs/dev/
ausführen.Die Container-Shell regulär mittels
exit
verlassen.
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:
Ermitteln der ID des Containers
oc-server3_php-fpm
mittelssudo docker ps
.Öffnen einer Shell im Container:
sudo docker exec -it 45b6e4994fac /bin/bash
, wobei45b6e4994fac
die ID des Containers ist.Im Container einen Editor installieren, beispielsweise
nano
. Da der Container auf Ubuntu basiert, funktioniert dies mittelsapt-get update && apt-get install nano
.Die passende Konfigurationsdatei mittels des Editors im Container öffnen, beispielsweise mittels
nano /application/htdocs/config2/settings.inc.php
.Setzen von
$dev_baseurl = 'http://docker.team-opencaching.de:2200';
und anschließendes Speichern der Datei. Hierbei ist 2200 der Port, der statt Port 80 für den Webserver in der Override-Datei konfiguriert worden ist.
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.
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.
...
Siehe auch:
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
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:
Code Block |
---|
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
"
In diesem Fall in der Datei docker/httpd/Dockerfile
die fehlerverursachende Zeile
...
auskommentieren und docker:start-clean erneut laufen lassen.
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:
...
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.
Meldung “DEPRECATED: The legacy builder is deprecated and will be removed in a future release. Install the buildx component to build images with BuildKit: https://docs.docker.com/go/buildx/ “
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
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/
Während docker:start-clean: "Browserslist: caniuse-lite is outdated."
Scheinbar wird die “browserslist” nicht automatisch aktualisiert. Grund?
Zum manuellen Update im Docker:ssh eingeben:
Code Block |
---|
npx browserslist@latest --update-db |
bzw.
Code Block |
---|
npx update-browserslist-db@latest |
...
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.
Code Block |
---|
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
.
...
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 User 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.
Es kann kein Logbild hochgeladen werden (betrifft Legacy-Testsystem)
Sobald man ein Logbild hochladen möchte, erscheint eine Fehlermeldung
...
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.
[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.
...
Dieser Fehler sollte somit nicht mehr auftauchen.
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.
...
Code Block |
---|
./psh.phar docker:stop rm htdocs/var/cache2/*.inc.php ./psh.phar docker:start |
[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ührender Pull Requesthttps://github.com/OpencachingDeutschland/oc-server3/pull/830behebt das Problem. Für bereits laufende Testserver einmalig das docker:init Script laufen lassen.
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:
Code Block |
---|
127.0.0.1 docker.team-opencaching.de 127.0.0.1 try.docker.team-opencaching.de |
Abschalten
...
von
...
“NOTICE”-Meldungen. (Legacy)
Aufgrund diverser Updates werden vormals ignorierte Probleme nun mit einer “NOTICE”-Meldung kenntlich gemacht. Um die Meldungen zu unterdrücken, kann in der Smarty-Klasse das error_reporting Level geändert werden.
Beispiele für Fehlermeldungen:
Code Block |
---|
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:reporting ändern auf den nachfolgenden Code. Die Änderung ist nicht git-relevant und geht nach jedem “./psh.phar docker:start-clean” verloren.
Code Block |
---|
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.
Code Block |
---|
ini_set('error_reporting', E_ALL & ~E_NOTICE); |