Update hängt: commonsubtotal.class.php nicht gefunden
Beim Update auf 22, 23 oder 24 bleibt der Assistent bei einer fehlenden subtotals-Datei stehen. Das ist kein externes Modul: Die Dateien wurden unvollständig kopiert.
Sie aktualisieren Dolibarr. Im Schritt der Datenmigration bleibt der Assistent bei dieser Meldung stehen:
Warning: require_once(../subtotals/class/commonsubtotal.class.php): Failed to open stream:
No such file or directory in …/compta/facture/class/facture.class.php on line 55
Darauf folgt ein schwerer Fehler „Failed opening required“. Die Zeilennummer ist 53 in Version 22, 54 in 23 und 55 in 24. Unter PHP 7 beginnt die Meldung mit „failed“, kleingeschrieben.
Zeigt Ihr Server keine Fehler an, sehen Sie nur eine weiße Seite (Fehler 500): Dieselbe Meldung steht dann im Fehlerprotokoll von PHP.
Es ist kein externes Modul
Man denkt zuerst an ein altes Zwischensummen-Modul. Es ist keines: Der Ordner subtotals/ gehört
seit Version 22 zu Dolibarr selbst. Externe Module werden dagegen in custom/ installiert.
Die Meldung sagt also zweierlei:
facture.class.phpstammt bereits aus der neuen Version. Diese Datei verlangt die andere.- Der Ordner
subtotals/ist nicht auf dem Server angekommen.
Das ../ am Anfang des Pfads ist normal: Während des Updates arbeitet Dolibarr aus dem Ordner
install/, in dem das Stammverzeichnis als „der Ordner darüber“ festgelegt ist.
Die Ursache: unvollständig kopierte Dateien
Die vorhandenen Dateien wurden ersetzt, aber der Ordner subtotals/, neu in Version 22, wurde
nicht angelegt. Das passiert zum Beispiel nach einer abgebrochenen Übertragung oder wenn nur die
geänderten Dateien kopiert wurden. Fehlt ein Ordner, können auch andere Dateien fehlen.
Die Lösung
- Prüfen Sie auf dem Server, ob der Ordner
subtotals/im Stammverzeichnis von Dolibarr existiert, nebencompta/,comm/undinstall/. - Fehlt er, kopieren Sie den gesamten Inhalt des Ordners
htdocsaus dem Archiv der Zielversion über Ihre Installation, ohne Ihreconf/conf.phpoder den Ordnercustom/zu löschen. - Starten Sie den Update-Assistenten erneut (
/install/).
Kopieren Sie nicht nur subtotals/: Fehlt ein Ordner, ist die ganze Kopie zweifelhaft.
Wie das geprüft wurde
- Echtes Update einer Instanz 21.0.4 auf 24.0.1 mit dem Assistenten, Ordner
subtotals/entfernt: Der Strukturschritt läuft durch, der Schritt der Datenmigration bleibt bei dieser Meldung stehen, Zeile 55 inklusive (weiße Seite, Meldung im PHP-Protokoll). Ordner zurückgelegt: „Migration finished“. - Dieselbe Meldung in 22.0.5 (Zeile 53) und in 23.0.4 (Zeile 54). „failed“ kleingeschrieben unter PHP 7.4.
- Im offiziellen Code fehlt der Ordner
subtotals/in den Versionen 20.0.4 und 21.0.4 und ist von 22.0.0 bis 24.0.2 vorhanden.
Das vollständige Vorgehen mit Sicherung und Rückweg steht in Dolibarr Update: Checkliste und Versionen 16 bis 24. Läuft das Update durch, bleibt danach aber eine Seite weiß, lesen Sie Dolibarr Fehler 500 oder weiße Seite.
Wenn das Update weiter hängt
Ist der Ordner vorhanden und bleibt der Assistent trotzdem stehen, ist genau das die Diagnose für 90 €: eine Stunde gemeinsam an Ihrer Installation, danach schriftlich die Ursache und was die Behebung kosten würde.