PHPBB 3.2.9 updaten

  • Hallo...


    Ich möchte gern mein PHPBB welches aktuell in der Version 3.2.9 perfekt läuft auf die aktuellste Version 3.3.3 updaten. Egal ob ich direkt den Sprung auf die aktuelle Version wage, oder in kleinen Schritten zunächst auf 3.3.0 updaten möchte. Ich erhalte bevor sich überhaupt etwas tut folgende Fehlermeldung:


    Die Installations-Routine hat eine Zeitüberschreitung festgestellt

    Die Installations-Routine hat festgestellt, dass eine Zeitüberschreitung aufgetreten ist. Du kannst versuchen, die Seite neu zu laden — dies kann aber zu einer Daten-Korruption führen. Wir empfehlen dir, entweder das Limit für eine Zeitüberschreitung (Timeout) zu erhöhen oder die Kommandozeile (CLI) zu verwenden.



    Woran liegt das? Wie kann ich das Problem beheben?

  • Die Installations-Routine hat eine Zeitüberschreitung festgestellt

    Die Installations-Routine hat festgestellt, dass eine Zeitüberschreitung aufgetreten ist. Du kannst versuchen, die Seite neu zu laden — dies kann aber zu einer Daten-Korruption führen. Wir empfehlen dir, entweder das Limit für eine Zeitüberschreitung (Timeout) zu erhöhen oder die Kommandozeile (CLI) zu verwenden.



    Woran liegt das? Wie kann ich das Problem beheben?

    Wie von DerRené geschrieben, per SSH-Zugang in der Konsole das Update ausführen. Da hast du ein höheres Zeiltlimit (ich nehme an die meinen max_execution_time). Mit etwas Glück reicht es dann.

  • Achte unbedingt darauf, dass Du über SSH die richtige PHP-Version verwendest! Siehe Ausgabe von php -v ;)


    Welche Versionen zur Verfügung stehen und wie der genaue Pfad lautet, siehst Du so: ls -ld /usr/local/php*/bin/php


    Das gewünschte Script führst Du mit PHP 7.3 z.B. so aus: /usr/local/php73/bin/php /pfad/zum/script.php


    (Die Standard PHP-CLI-Version lässt sich auch dauerhaft einstellen. Siehe /conf/phpversion.readme!)


  • Also über die Weboberfläche sehe ich das PHP v7.2.34 für das Board läuft.


    Wenn ich oben genannte Befehle im SSH-Clienten eingebe erhalte ich folgendes:


  • macOS hat doch schon ein hübsches Terminal und einen eingebauten SSH-Client. Einfach Cmd-Leertaste drücken, Terminal eingeben, und im Terminal dann „ssh user@serveradresse“ eingeben.


    Wegen des Fehlers: du hast versucht PHP an PHP als PHP-Datei zu übergeben. Dass das nicht klappt verwundert mich nicht so :D

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.mfnalex.de

    Discord: discord.jeff-media.com

  • Also über die Weboberfläche sehe ich das PHP v7.2.34 für das Board läuft.


    Wenn ich oben genannte Befehle im SSH-Clienten eingebe erhalte ich folgendes:


    Code
    1. bash-4.4$ /usr/local/php72/bin/php /usr/local/php72/bin/php

    Fast richtig.


    Es müsste in etwa so aussehen:/usr/local/php73/bin/php /httpdocs/Forum/upgrade.php

    Den relativen Pfad zu deinem gewünschten Script muss du natürlich an deine vorhande Umgebung anpassen.


    Du solltest dir vorab unbedingt die Update/Upgrade Schritte in der jeweiligen phpbb Dokumentation bzw. deren Forum anschauen. Zudem sollte du vorab auch unbedingt ein Daten sowie Datenbank Backup erstellen, falls doch mal etwas daneben gehen sollte ;)

  • Du solltest dir vorab unbedingt die Update/Upgrade Schritte in der jeweiligen phpbb Dokumentation bzw. deren Forum anschauen. Zudem sollte du vorab auch unbedingt ein Daten sowie Datenbank Backup erstellen, falls doch mal etwas daneben gehen sollte ;)


    Backup der Datenbank ist vorhanden. Hab ich sowohl eins über die Funktion im Administrationsbereich gemacht, als auch über den mysqldumper. Hab ja schon manuelles Update per Komplettpaket, automatisches Update usw. versucht und mir mehrmals das Forum zerschossen und danach nochmal wiederhergestellt.


    Aber diese SSH Sache ist neu für mich... Bin da wie in der folgenden Anleitung (aus dem PHPBB-Forum) beschrieben vorgegangen:


    https://www.phpbb.de/kb/viewarticle?a=108

  • Es ist für mich nich ganz klar, welche Befehle du genau verwendet hast.


    Weil:

    bash-4.4$ /usr/local/php72/bin/php /usr/local/php72/bin/php

    nicht ganz korrekt ist. Wie bereits erläutert wurde, versuchst du hier mit PHP sich selbst aufzurufen, das ist nicht ganz Sinn der Sache. :)


    Laut Anleitung müsstest du in etwa folgendes machen:


    Shell-Script
    1. cd /in/dein/install/verzeichnis
    2. /usr/local/php72/bin/php ./phpbbcli.php update config.yml


    Oder kommt hier der von dir genannte Yaml-Fehler in #5? Dann wäre dies hier ggf. interessant.

  • Laut Anleitung müsstest du in etwa folgendes machen:


    Shell-Script
    1. cd /in/dein/install/verzeichnis
    2. /usr/local/php72/bin/php ./phpbbcli.php update config.yml


    Oder kommt hier der von dir genannte Yaml-Fehler in #5? Dann wäre dies hier ggf. interessant.


    Neue Fehlermeldung:


    Code
    1. bash-4.4$ /usr/local/php72/bin/php ./phpbbcli.php update config.yml
    2. Could not open input file: ./phpbbcli.php


    Hab auch ehrlich gesagt null Plan davon was die einzelnen Befehle da auswirken bzw. machen sollen. Ich geh hier komplett nach Anleitung und bin was das angeht echt überfordert...

  • Dann bist du nicht im korrekten Verzeichnis oder die Datei phpbbcli.php gibt es dort schlicht nicht.

    Bist du denn vorher, wie geschrieben, mit cd in das korrekte Verzeichnis gewechselt? Ich kenne phpbb nicht, aber laut Anleitung müsste es offenbar ein Verzeichnis namens install geben, in das musst du mit cd wechseln musst.


    Beispielaufbau deiner Ordner:

    "/httpdocs/phpbb/install"

    Dann kannst du mit cd /httpdocs/phpbb/install in das Install-Verzeichnis wechseln, dann mit ls prüfen, ob eine phpbbcli.php angezeigt wird und in Folge das Script wie o.g. starten. Die genaue Struktur deiner Ordner kannst du dir mit ls -lah anzeigen lassen oder eben grafisch mit dem Dateiexplorer im WCP. Danach ist nur noch Transferleistung gefragt und du kannst entsprechend deiner Ordnerstruktur ins korrekte Verzeichnis wechseln. :)


    Komplett ohne Kenntnisse einer CLI ist es anfangs in der Tat etwas knifflig sich dort zu bewegen, aber wenn man administrativ in dem Bereich unterwegs ist, schadet es nie sich damit mal ein wenig auseinander zu setzen. Unter Windows gibt es ja beispielsweise die Powershell oder mit weit geringerem Umfang die schlichte Eingabeaufforderung, die ähnliches ermöglicht. (ich hoffe ich werde für den plumpen Vergleich bash und Eingabeaufforderung hier nicht direkt geköpft ^^)


    cd-Beispiele

  • Ok, ich war dann wohl nicht im Verzeichnis... Nun erhalte ich folgende Fehlermeldung:


  • Ok, ich war dann wohl nicht im Verzeichnis... Nun erhalte ich folgende Fehlermeldung:


    Code
    1. [WARNING] [phpBB Debug]
    2. "require(/var/www/vhosts/******.a2fa0.netcup.net/httpdocs/phpb
    3. b/adm/config.php): failed to open stream: No such file or directory"
    4. in file /httpdocs/phpbb/config.php on line 2

    Welchen Befehl hast du genau ausgeführt.


    Was genau steht in Zeile 2 deiner config.php?


    Könnte mir auch vorstellen daß du dich einfach nur mit der Pfadangabe vertan hast:


    /httpdocs/phpbb/config.php

    /httpdocs/phpbb/adm/config.php

  • Ich bin in das Install-Verzeichnis gewechselt mit folgendem Befehl:


    Code
    1. cd /httpdocs/phpbb/install


    Ich bin auch sicher drin gewesen da ich mir den Inhalt anzeigen gelassen habe und dort die entsprechenden Files zu sehen waren.


    Anschließend habe ich folgenden Befehl ausgeführt:


    Code
    1. /usr/local/php72/bin/php ./phpbbcli.php update config.yml


    Die config.yml habe ich gemäß der Update-Anleitung vom PHPBB erstellt und vorher an die entsprechende Stelle hochgeladen.





    Inhalt der Config im Hauptverzeichnis:


    PHP
    1. <?php
    2. require('/var/www/vhosts/******.a2fa0.netcup.net/httpdocs/phpbb/adm/config.php');
    3. ?>


    Inhalt der Config im ADM-Verzeichnis sind die IP des Servers, Zugangsdaten zur Datenbank, Name der Datenbank usw.

  • Das klingt nach dem üblichen Problem, dass die Ordnerpfade über HTTP anders als über SSH sind. Probier es mal so:

    PHP: config.php
    1. <?php require(__dir__ . '/adm/config.php');

    Ungetestet, aber damit sollte es klappen, egal worüber es aufgerufen wird. Ist z.B. bei Nextcloud inhaltlich identisch.


    (Warum zum Teufel meinen Entwickler immer wieder, dass absolute Pfade eine tolle Idee sind? :wacko:)

  • (Warum zum Teufel meinen Entwickler immer wieder, dass absolute Pfade eine tolle Idee sind? :wacko:)

    Gute Frage :rolleyes:


    Ist __DIR__ denn immer das Verzeichnis in dem die Datei liegt, oder das Arbeitsverzeichnis? Bzw. wenn ich in /b/b.php eine Datei "require" die in /a/ liegt, liefert das in /a/a.php vorhandene "__DIR__" dann /a/ oder /b/?

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.mfnalex.de

    Discord: discord.jeff-media.com