phpBBDumper ehemals MyOOSDumper

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Jarl Nobbyson
Mitglied
Beiträge: 21
Registriert: 22.08.2025 12:08

Re: phpBBDumper ehemals MyOOSDumper

Beitrag von Jarl Nobbyson »

Die einzige Einstellungen nach der Installation war unter Konfiguration-Allgemein-Speichergrenze einmal den Link "automatisch ermitteln" zu klicken, mehr soweit ich weiss nicht.

Die Seite läuft seit der Installation des Forums mit PHP8.4.11, seitdem (ca. 07/25) gab es diesbezüglich auch keine Änderungen, abgesehen von den normalen Serverupdates.
Der Server läuft mit Debian 13.2, der SQL-Server ist MariaDB 11.8.3.

Ich habe vor ein paar Minuhten nochmals die .20 hochgeladen, jetzt erhalte ich nach dem Anlegen einer DB-Sicherung einen SQL-Fehler:

Code: Alles auswählen

Fatal error: Uncaught Error: mysqli object is already closed in /home/users/mydomain/www/_unterordner/inc/mysqli.php:550 Stack trace: #0 /home/users/mydomain/www/_unterordner/inc/mysqli.php(550): mysqli_query() #1 /home/users/mydomain/www/_unterordner/dump.php(234): getDBInfos() #2 {main} thrown in /home/users/mydomain/www/_unterordner/inc/mysqli.php on line 550
*Domain und Unterordner für die Subdomain entfernt*

Jetzt gerade die .19 wieder hochgeladen, läuft.

Edit:

was noch seltsam ist dass auf dem gleichen Server mit den gleichen Einstellungen PHP und SQL eine andere Seite (kein phpBB!) läuft wo ich den Dumper nutze, die zeigt keinerlei Probleme.
Ich mag testweise dort die .20 auch nicht löschen und es da versuchen, könnte ich aber mal machen wenn ihr wollt.
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12336
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: phpBBDumper ehemals MyOOSDumper

Beitrag von Mahony »

Hallo

Problem: Seit PHP 8 ist ein mysqli‑Objekt kein Resource mehr, sondern ein Objekt der Klasse mysqli.

is_resource($config['dbconnection']) liefert also immer false, auch wenn die Verbindung gültig ist.

Dadurch wird die bestehende Verbindung nie wiederverwendet, sondern jedes Mal neu aufgebaut.

Wenn der Aufbau fehlschlägt oder das Objekt intern „closed“ ist, bekommst du genau den Fehlermysqli object is already closed“.

Teste dazu mal bitte folgendes:

Suche in der Datei inc/mysqli.php folgenden Code (Zeile 277 bis 279 )

Code: Alles auswählen

if (isset($config['dbconnection']) && is_resource($config['dbconnection'])) {
    return $config['dbconnection'];
}
und änder ihn nach

Code: Alles auswählen

if (isset($config['dbconnection']) && $config['dbconnection'] instanceof mysqli) {
    return $config['dbconnection'];
}
Danach sollte der Fehler mysqli object is already closed nicht mehr auftreten.

Edit: Die Änderung betrifft die Version 1.0.19 (in der Version 1.0.20 wurde das bereits geändert <-- dort die Zeile 290 bis 292).

Grüße Mahony
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Antworten

Zurück zu „Coding & Technik“