feat(php8): Umstieg auf Debian Trixie mit PHP 8.4 (WIP)

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
This commit is contained in:
Patrick Asmus committed 2026-11-01 13:16:00 +01:00
1 parent 5ca2f1587f
commit b13b524ad5
3 files changed
+220 -6

No files matched your search

+17
View File
@@ -409,6 +409,23 @@ if [ "$XASECO_ENABLED" = "true" ]; then
fi
fi
# ============================================================
# PHP-8-Kompatibilitaet (bei jedem Start, auch fuer bestehende Volumes)
# ============================================================
# AdminServ, RemoteCP und XAseco stammen aus PHP-5-Zeiten. Php8Compat.php
# ergaenzt __construct() fuer PHP-4-Konstruktoren und stellt String-Offsets
# mit geschweiften Klammern ($str{0}) auf eckige Klammern um. Idempotent.
echo "==> Pruefe PHP-8-Kompatibilitaet..."
php /opt/tmserver/Php8Compat.php "$ADMINSERV_DIR" /opt/tmserver/xaseco | tail -n 1
# XAseco: mysql_*-Shim (modernizer.inc.php) erwartet false bei SQL-Fehlern.
# Seit PHP 8.1 wirft mysqli standardmaessig Exceptions -> abschalten.
XASECO_MODERNIZER="/opt/tmserver/xaseco/includes/modernizer.inc.php"
if [ -f "$XASECO_MODERNIZER" ] && ! grep -q 'mysqli_report' "$XASECO_MODERNIZER"; then
sed -i '0,/^<?php/s//<?php\nmysqli_report(MYSQLI_REPORT_OFF); \/\/ tmserver-docker: PHP 8.1+/' "$XASECO_MODERNIZER"
echo " modernizer.inc.php: mysqli_report(MYSQLI_REPORT_OFF) ergaenzt."
fi
# ============================================================
# XAseco: TeamSpeak3-Plugin Gateway aktualisieren (fuer bestehende Volumes)
# ============================================================