Das Image v1.4.0 wurde auf einem arm64-Runner gebaut und startet auf
amd64-Hosts nicht (exec format error). Ich baue jetzt per buildx mit
--platform linux/amd64 (QEMU als Fallback). docker-compose.yml zeigt auf
1.4.1.
Ich weise in der README auf den Umstieg auf PHP 8.4 hin und bitte darum,
auftretende Fehler als Issue zu melden. docker-compose.yml zeigt jetzt
auf das Image 1.4.0.
- tsstatus.php: ungefangene Exception bei fehlerhafter TS3-Query-Antwort
beendete XAseco (auch unter PHP 7, live 58x im Log); jetzt leere Antwort
- XAsecoHealthcheck.sh: Webaccess-/Dedimania-Verbindungsfehler nicht mehr
als XAseco-Fehler werten; das nicht erreichbare dedimania.net loeste
sonst alle ~30 Minuten einen Neustart aus
- folder.class.php: @array_slice(@stat()) brach unter PHP 8 mit TypeError
ab, wenn Map-Dateinamen Sonderzeichen enthalten (MatchSettings erstellen
-> HTTP 500)
- timedate.class.php: secToMillisec() auf int32 begrenzen; LapsTimeLimit
wird in ms angezeigt und beim Speichern erneut mit 1000 multipliziert,
der Server lehnte 2147483647000 ab (bestehender AdminServ-Bug)
Unter PHP 8 sind viele fruehere Notices (Undefined array key, Attempt to
read property ...) Warnings. Der RemoteCP-Errorhandler ignoriert diese
ohne Debug-Modus wie bisher unter PHP 7; im Test wuchs errors.log sonst
um rund 500 KB in 15 Minuten. Zusaetzlich rotiere ich remotecp/cache/*.log
per logrotate (10 MB, 5 Dateien).
- Php8Compat.php: nicht-statische Methoden, die als Klasse::methode()
aufgerufen werden und kein $this nutzen, als static markieren
(RemoteCP Core/Plugins, AdminServ Zip)
- web_access.inc.php: Response als array() statt '' initialisieren
(behebt Illegal string offset in web_access, xmlrpc_db, mania_karma)
- plugin.teamspeak3.php: count() auf null entschaerft
PHP 7.4 ist seit 2022 EOL und bekommt keine Fixes mehr (u. a. PHP2Shell,
CVE-2026-109618/109619). Ich stelle das Image deshalb auf debian:trixie-slim
mit PHP 8.4.27 um.
- Php8Compat.php: ergaenzt __construct() fuer PHP-4-Konstruktoren und stellt
String-Offsets $str{0} auf $str[0] um (AdminServ, RemoteCP, XAseco)
- RunTrackmaniaServer.sh: Patcher bei jedem Start auf die Volumes anwenden,
mysqli_report(MYSQLI_REPORT_OFF) fuer den mysql_*-Shim von XAseco
- Bullseye-Archive-Repositories entfernt
RemoteCP 4.0.3.5 hat nach jedem Neustart Deprecation-Meldungen oben auf der
Seite ausgegeben, obwohl PHP_DISPLAY_ERRORS=false gesetzt war.
Ich patche RemoteCP jetzt bei jedem Containerstart idempotent (greift auch
bei bestehenden Volumes):
- rcp_textparser.class.php: $hex{n} -> $hex[n], TMFColorParser-Konstruktor
auf __construct() umgestellt
- GbxRemote.inc.php: $f_v{n} -> $f_v[n]
- core.functions.php: display_errors/display_startup_errors an
PHP_DISPLAY_ERRORS gekoppelt statt hart auf 1; PHP-Warnings werden ohne
Debug-Modus nur noch in cache/errors.log geschrieben
AdminServ erfordert zwingend Schreibrechte auf ./logs/ (777) und die Konfigurationsdateien (666). Das fruehere automatische Zuruecksetzen auf 755 fuehrte nach Reboots oder Wiederherstellung von Backups zum Fehler 'path was not required rights: ./logs/'. Bei jedem Start werden nun 777 und www-data Ownership fuer ./logs/ sichergestellt.
Upgrade des ip-watcher Hilfscontainers von alpine:3.21 auf alpine:3.24. Zudem Web-Port auf 16080 umgestellt, P2P UDP 3450 hinzugefügt und lokales Subnetz aktualisiert.