Kein Zugriff mehr durch PHP 7.4, wie kann ich das Forum noch aktualisieren?

  • Affected Version
    WoltLab Suite 3.1

    Hallo,


    ich hatte seit 2019 kein Update mehr an einem Forum vorgenommen (es soll im Grunde nur noch zu Archiv-Zwecken online bleiben), und deswegen kam es jetzt zu Problemen, als mein Webhoster auf PHP 7.4 umgestiegen ist. Ich hatte es vorher schon testweise umgestellt, allerdings war mir dabei nichts aufgefallen ( :rolleyes: ). Nach der Umstellung gab es zwischendurch Fehlermeldungen beim Erstellen neuer Beiträge, weswegen ich beschloss, die Lizenz doch noch einmal zu erneuern und ein aktuelles Update zu installieren. Man hängt halt doch daran. Als ich eine globale Benachrichtigung schreiben wollte, um das Update anzukündigen, fiel alles auseinander. Seitdem kann ich weder das Forum noch den Admin-Bereich betreten:


    https://www.planearium.de/wbb/wcf/


    In den Log Files steht unter anderem: "Array and string offset access syntax with curly braces is deprecated". Aber von Hand alle Klammern zu ersetzen ist wahrscheinlich keine Lösung.


    Nun bin ich mir nicht sicher, wie ich am besten vorgehen soll...

    • Eine komplette Neuinstallation in einen anderen Ordner und die alte Datenbank importieren?
    • Oder kann ich die Update-Dateien ohne Zugriff auf den Admin-Bereich einspielen?

    Ich könnte auch die Datenbank mit einem einige Tage alten Backup zurücksetzen, so dass das Forum zumindest noch teilweise geht, und dann ein normales Update versuchen... aber da mir der Admin-Bereich zuletzt schon mehrere Fehlermeldungen entgegengeschleudert hat, zweifle ich daran, dass das problemlos durchlaufen würde.


    Vielleicht sollte ich dazu sagen, dass ich leider völlig aus dem Thema raus bin. Die aktive Phase des Forums, als ich mich mehr mit der Technik dahinter beschäftigt habe, ist viele Jahre her. Deshalb wäre ich für Tipps auf Anfänger-Niveau dankbar. :)

  • Ich gehe davon aus, dass ein vollständiger Import aus der Datenbank und dem Dateisystem möglich sein dürfte. Das wäre spontan mein erster Versuch in dieser Angelegenheit.





    Gruß norse

    Zugang zu meinen Arbeiten und dem dazugehörigen Support bekommt Ihr bei Interesse hier.

  • Vielen Dank, dann werde ich morgen zuerst den Weg mit der Neuinstallation versuchen.


    Leider bietet Host Europe kein Zurücksetzen der PHP-Version an, ich habe schon beim Support deswegen nachgefragt. Das geht nicht mal gegen Aufpreis.

  • Wenn ich noch wüsste, wie ich eine lokale Kopie erstelle, wäre das wahrscheinlich die elegantere Lösung - aber leider habe ich das etwa 2005 zuletzt gemacht, und seitdem läuft das Forum nur auf dem Host Europe Server. Bis ich mich da wieder eingelesen habe, ist eine Neuinstallation in einen anderen Ordner wahrscheinlich sicherer und schneller.

  • Du kannst mal versuchen die Datei StyleCompiler.class.php durch eine neuere zu ersetzen:


    WCF/wcfsetup/install/files/lib/system/style at 3.1 · WoltLab/WCF
    WoltLab Suite Core (previously WoltLab Community Framework) - WCF/wcfsetup/install/files/lib/system/style at 3.1 · WoltLab/WCF
    github.com


    Die hat mal Probleme mit neuen PHP-Versionen gemacht.


    Sicherungskopie der alten Datei nicht vergessen oder einfach umbenennen.

    Luca heißt mein 🐶 👀 Den könnt ihr hier nicht besuchen 🤷‍♂️ Das ist mein 🐶 den ich nicht mit Fremden wie euch teile☝️

  • Hallo,


    Wenn ich noch wüsste, wie ich eine lokale Kopie erstelle, wäre das wahrscheinlich die elegantere Lösung - aber leider habe ich das etwa 2005 zuletzt gemacht,

    das ist eigentlich recht einfach: Du kannst mit entweder XAMPP oder WampServer einen lokalen Test-Server aufsetzen und dort unter einer lokalen Domain zunächst die Files des WoltLab kopieren/installieren, eine DB anlegen und anschließend einen Datenbank-Dump einspielen.


    Das empfiehlt sich auch später aus anderen Gründen der "Testerei", gerade auch wenn man in kleineren Hosting-Paketen keine Möglichkeit für eine zweite Installation samt zusätzlicher Datenbank hat.

    Idealerweise stellst Du lokal dieselbe Umgebung nach, die auch Dein Hoster benutzt, was aber (je nach Kenntnissen) etwas aufwendiger ist.

    Gruß

    Jörg

    (Jaydee)

  • Das problem löst du damit leider nur temporär. Sobald du ein Update machst sind noch einige andere Versionen betroffen.

    Es wäre daher am besten das System zu kopieren, und auf ein anderes System mit php7.3 zu kopieren dort das Update zu machen und anschließend die Daten wieder zurück zu kopieren.


    Solltest du dabei Hilfe benötigen, weil du dies nicht kannst, ist nicht zutrauen solltest oder warum auch immer, kannst du dich gerne bei mir per Konversation melden und dann kann ich das ganz für dich machen.

  • Vielen lieben Dank für die Tipps und Cyberghost für das Hilfsangebot!


    Die StyleCompiler.class.php hat es zwar nicht behoben, aber ich habe es dann mit einer Neusintallation in einen anderen Ordner und Datenbank-Import probiert. Das hat tatsächlich problemlos geklappt, anscheinend war also mit der Datenbank wirklich noch alles in Ordnung. Alle User, Beiträge, Konversationen, usw, sind da.


    Was nun fehlt ist nur das selber angepasste Design, bzw. die eigenen Templates. Gibt es bestimmte Ordner, die ich einfach rüberkopieren kann, falls ich es nicht hinbekomme, im alten Forum wieder Zugriff auf den Admin-Bereich zu bekommen? Exportieren geht ja so leider nicht.

  • Exportieren geht ja so leider nicht.

    Das hätte man zur Sicherung praktisch vorher schon tun müssen.


    Gibt es bestimmte Ordner, die ich einfach rüberkopieren kann, falls ich es nicht hinbekomme, im alten Forum wieder Zugriff auf den Admin-Bereich zu bekommen?

    Ich weiß nicht ob es nicht sinnvoller wäre, den gesamten FTP-Bereich 1:1 in die neue Installation zu kopieren (ggf. mit der Einstellung, nur fehlende und geänderte/neuere Dateien zu ergänzen/ersetzen, statt alles komplett zu überschreiben).

    Denn sonst könnte das Vorhaben manuell etwas "fummelig" werden. Gerade auch, wenn eigene Templates, CSS-Deklarationen und ähnliches im Spiel sind. Sonst könnte man ja einfach den Stil neu installieren und gut ist.

    Gruß

    Jörg

    (Jaydee)

    • Official Post

    Ich weiß nicht ob es nicht sinnvoller wäre, den gesamten FTP-Bereich 1:1 in die neue Installation zu kopieren (ggf. mit der Einstellung, nur fehlende und geänderte/neuere Dateien zu ergänzen/ersetzen, statt alles komplett zu überschreiben).

    Oh nein, niemals! Da kann man auch gleich einen Böller reinwerfen… Dazu kommt noch, dass ein Stil aus dem Zusammenspiel der Daten im Dateisystem und der Datenbank besteht. Selbst ich würde mich da nicht ran trauen (und das Stil-System stammt von mir!).

    Alexander Ebert
    Senior Developer WoltLab® GmbH

  • Danke für die Klarstellung, wollte gerade eine ähnliche Antwort verfassen, aber von Dir hat das natürlich mehr Gewicht.





    Gruß norse

    Zugang zu meinen Arbeiten und dem dazugehörigen Support bekommt Ihr bei Interesse hier.

  • Ok, das ist ein Argument. War auch nur eine (schnelle) Idee, um nicht alle betroffenen Ordner einzeln heraus picken zu müssen. Gut, dann vergessen wir das lieber schnell. :)

    Gruß

    Jörg

    (Jaydee)

  • Ich habe eine mögliche Lösung gefunden, scheitere aber leider am Backup...


    Wie oben schon kurz erwähnt war es ja so, dass das Forum direkt nach der PHP-Umstellung in den ersten beiden November-Wochen noch erreichbar war. Es gab zwar Fehler beim Posten, aber ich hätte in diesem Zustand das Design wohl noch sichern können (das habe ich gerade mit einer anderen Foreninstallation getestet). Erst nachdem ich die globale Ankündigung schreiben wollte, ging gar nichts mehr, und ich sehe seitdem das Forum nicht einmal mehr.


    Also dachte ich mir nun, dass ich einfach ein Backup (FTP & Datenbank) vom 14.11. einspiele und dann müsste das Forum ja wieder in dem Zustand sein, in dem ich das Design sichern kann.


    Aber seltsamerweise sieht es nach dem Backup genau so aus wie die letzten Tage. Mit meinem begrenzten Verständnis von Datenbanken kann ich mir das nicht erklären. Ich habe das FTP-Backup in den korrekten Ordner kopiert (vorher alles gelöscht) und die Datenbank von Host Europe auf den Stand vom 14.11. zurücksetzen lassen. Wie kann der Fehler, der erst danach zum ersten Mal aufgetreten ist, noch immer da sein? Gibt es noch einen dritten Schritt, den ich übersehe?


    Falls der Plan mit dem Backup nicht fruchtet würde ich aufgeben und ein neues Design bauen, das ist die letzte Frage. ;)

  • Aber seltsamerweise sieht es nach dem Backup genau so aus wie die letzten Tage.

    Das wäre dann (logischerweise) der Fall, wenn das Ganze nach wie vor auf demselben Server/derselben Domain und somit unter der "falschen" PHP-Version läuft. PHP-, MySQL- sowie Software- (Forum) Versionen müssen jeweils auf Augenhöhe sein.


    Eine aktuelle Software unter veralteter PHP läuft genauso wenig bzw. macht mindestens Probleme, wie auch umgekehrt eine veraltete Software (wie in diesem Fall) unter einer aktuellen PHP- und SQL-Version (egal ob jetzt MariaDB oder MySQL). Wobei letztere Situation fast noch schwieriger ist, da die meisten Hoster keine alten PHP-Versionen mehr zur Verfügung stellen und pflegen, man also nicht mal schnell per Handler "switchen" kann.

    Gruß

    Jörg

    (Jaydee)

  • Allerdings war die PHP-Version in den ersten beiden Novemberwochen bereits auf 7.4 umgestellt - was zu diesem Zeitpunkt nur kleine Fehler verursacht hat. Von daher sollte der Server jetzt eigentlich auf dem selben Stand sein, wie zu dem Zeitpunkt vom 14.11., als die Backups gesichert wurden. Trotzdem sind nun Fehlermeldungen da, die zum Zeitpunkt der Backups noch nicht da waren, und die den Zugriff komplett blockieren.


    Wenn sich am Server nichts geändert hat, FTP-Backup und Datenbank-Backup komplett kopiert wurden, frage ich mich, wo der Unterschied liegt, der nun die Fehler verursacht. :/

  • Ich würde dir ja empfehlen, dir via FTP eine vollständige Sicherung zu besorgen der Dateien, und die SQL Datenbank herunterzuladen.


    Dann machst du dir Lokal zB mit Laragon einen Server, mit PHP 7.3 (oder was auch vorher lieg!) Und updatest dort, wenn fertig, spielst du das einfach wieder auf den Server (Dateien, und Datenbank)

    Projekte:

    XIVDATA - Eorzea Database


    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...


  • Wenn sich am Server nichts geändert hat,

    Genau das ist der Punkt: hat sich wirklich in der Zwischenzeit nichts am Server geändert? Es geht ja nicht nur um die reine PHP-Version, vielleicht hat der Hoster ja nachträglich noch Erweiterungen installiert bzw. aktualisiert?


    Anders wäre ein abweichendes Verhalten ja kaum zu erklären. Ohne genaue Kenntnisse der Umgebung ("vorher / nachher") kann man natürlich nichts Konkretes dazu sagen.

    Gruß

    Jörg

    (Jaydee)

  • Das wird es dann wohl gewesen sein, denn ich hatte nur auf die Version 7.4 geachtet, und nicht auf den Rest.


    Dann werde ich mich Sonntag mal an Syntafins Tipp versuchen und Laragon installieren. Anleitungen habe ich mir schon rausgesucht, und ich bin vorsichtig optimistisch. :)


    Vielen Dank auf jeden Fall für die Hilfe!