Update von 3.10.6 auf 4.1 Problem: Failed opening required '/www/htdocs/xxxx/components/com_content/router.php' (include_path='.:/usr/share/php:..')

  • Habe ca. 8 Seiten. Bei der ersten ging der Umzug leicht. Sie wurde als Joomla drei installiert unbd läuft nun auf Joomla 4.1.

    Die zweite Seite (keine wichtige, deshalb gut zum Üben) ist bereits aus Joomla 2.5 Zeiten. Hier ging das Update schief!


    Vor dem Update habe ich ziemlich viel entfernt, da ne Menge als "updatestatus unbekannt" gekennzeichnet wurde.

    Habe nach diesen hier Aussschau gehalten.

    plg_content_geshi

    Bluestork Administrator Template

    Beez_20

    Beez5

    Atomic


    Allerdings mein Template "Jomlike" gelassen.

    Dazu habe ich alles mit "german" deinstalliert, da es ebenfalls bemängelt wurde.


    Nun kann ich im Backend auf viele Bereiche nicht zugreifen, es kommt die Meldung


    Code
    Failed opening required '/www/htdocs/xxxxxx/components/com_content/router.php' (include_path='.:/usr/share/php:..')


    Die Seite selbst ist auch offline


    Code
    Sorry, there was a problem we could not recover from.
    The server returned a "500 - Whoops, looks like something went wrong."



    Mein Anbieter ist all-inkl und ich habe php 8 am Laufen.

    Welche weiteren Infos braucht ihr noch?


    Muss das dringend lösen, da meine großen Seiten sehr wichtig sind und nicht offline sein dürfen.


    Dank Euch

  • Hast du die Seite von 2.5 auf 3 und auf 4 upgedatet?

    Kamen beim Update noch Fehlermeldungen?

    Ich würde das Update erstmal mit PHP 7.4 machen.

    Vorher auf Protostar umschalten.


    Ggf. auch mal den Debugmodus einschalten:



    Zitat

    Muss das dringend lösen, da meine großen Seiten sehr wichtig sind und nicht offline sein dürfen.


    Dann erstmal wieder das Backup einspielen.



    Ich würde auch Updates nie an Life-Seiten durchführen.


    Entweder Offline oder mit einer Subdomain.


    Und schauen, was alles angemeckert wird.


    Nach einspielen des Backups auch mal ein Link zur Seite vor dem Update.


    Zitat

    Allerdings mein Template "Jomlike" gelassen

    Ist das Template J4-Ready?

    Kenne ich nicht.

  • Dank Dir für die schnelle ANtwort. genial:


    Meine Antworten:

    - Die Seite lief schon Jahrelang auf Joomla 3. Immer aktuellste Updates.

    - Beim UPdate kam keine Fehlermeldung. Im Gegenteil: Update erfolgreich!

    - der wechsel auf php 7.4 brachte keine Änderung

    - Kann nachträglich keine Templates mehr umschalten, es kommt jedes Mal diese Meldung


    Debugmodus mache ich gleich mal.


    Backup habe ich noch nie eingespielt. Vermutlich ist es einfacher das Problem in der aktuellen Version zu beheben, oder?


    Melde mich nochmal mit der Debuginformation

  • Wenn ich das richtig gegoogelt habe ist das Template Joomluke 3.3 aus 2014. 3.4 konnte ich nicht erkennen von wann es ist. Ich gehe mal davon aus, dass es nicht J4 kompatibel ist

    Die von dir aufgeschriebenen Templates werden beim Update auf J4 entfernt.

    Ich würde ein Backup einspielen. Template auf Protostar umstellen und erneut testen.

    Plg_content_geshi würde ich auch gerne wissen, warum es bemängelt wird. Gehört der ID nach zum Core.

    Php würde ich auch erstmal auf 7.4 einstellen.

  • Also hier ein paar Meldungen:


    im Backend finde ich folgenden Fehler:

    Code
    The PHP temporary folder is not set.
    
    
    This folder is the folder that PHP uses to store an uploaded file before Joomla can access this file. Whilst the folder not being set isn't always a problem, if you are having issues with manifest files not being detected or uploaded files not being detected, setting this in your php.ini file might fix the issue.


    Der Debugger zeigt auf der Seite:


    Code
    Notice: Undefined property: Joomla\CMS\Version::$RELEASE in /www/htdocs/xxxx/libraries/gjfields/gjfields.php on line 25
    
    
    Warning: require_once(/www/htdocs/xxxxxxx/components/com_content/router.php): failed to open stream: No such file or directory in /www/htdocs/xxxxx/plugins/content/autoreadmore/autoreadmore.php on line 66
    
    
    Fatal error: require_once(): Failed opening required '/www/htdocs/xxxxx/components/com_content/router.php' (include_path='.:/usr/share/php:..') in /www/htdocs/xxxxx/plugins/content/autoreadmore/autoreadmore.php on line 66

    Sorry, hatte etwas übersehen, was hilfreich ist:


    Code
    in https://freie-software.info/ (line 66)
    <span>    </span><span>$com_path </span><span>= </span><span>JPATH_SITE </span><span>. </span><span>'/components/com_content/'</span><span>;</span><span>    if (!</span><span>class_exists</span><span>(</span><span>'ContentRouter'</span><span>))</span><span>    {</span><span>        </span><span>// Require_once $com_path.'router.php';</span><span>        </span><span>require_once </span><span>$com_path </span><span>. </span><span>'router.php'</span><span>;</span><span>    }</span><span>    if (!</span><span>class_exists</span><span>(</span><span>'ContentHelperRoute'</span><span>) )</span><span>    {</span><span>        </span><span>// Require_once $com_path.'helpers/route.php';</span>


    Die Seite ist: https://freie-software.info/


    Sorry, hier: https://freie-software.info/


    Da liest sich die Meldung auch leichter. AUtoread more könnte es sein

  • Hast du die error.php umbenannt?


    GJFields ist 2 Jahre alt und vermutlich nicht J4 tauglich.

    Ggf in der Datenbank mal deaktivieren oder löschen


    Und autoreadmore gibt es auch nicht mehr.


    Auch mal löschen oder daktivieren.

  • nein nichts umbenannt.


    habe noch nie direkt an der Datenbank gearbeitet. Wie mache ich das?


    Da die Fehlermeldung der Seite Zeile 66 im Plugin autoreadmore bemängelt, frage ich mich, wie ich sehen, kann ob es noch installiert ist (also im Backend komme ich da nicht rein), kann ich es händisch löschen?= SOllte ich Zeile 66 mal auskommentieren?

  • Ich denke nicht.


    Vorab die Datenbank sichern.

    Machst du in deinem Kundenaccount bei Datenbanken/MySQL

    Dann gibt es Tabellen in der Datenbank.


    Aber wenn du das noch nie gemacht hast, wird es schwierig.


    Ich würde das Backup einspielen. Frag deinen Hoster. Der macht das auch.


    Dann nochmal vor der Migration alles prüfen und nichtkompatible Erweiterungen löschen.


    Oder jemanden beauftragen oder ein anderer hat noch einen Tipp.

  • okay.

    ich bin jetzt in der Datenbank. Schau mal, wie weit ich komme. Melde mich gleich


    WM-Loose. Nicht das ich wüsste.


    Mein Provider bietet mir phpMyAdmin an. Das ist soweit ganz übersichtlich, aber ich finde troitz Duche keine Einträge für GJFields oder "content auto read .more"


    vermutlich suche ich falsch. Tipps?

  • In der Tabelle _extensions wirst du den Eintrag für "Autoloadmore" wohl ziehmlich am Ende finden. Also auch mal auf die nächste oder übernächste Seite der Tabelle gehen!

    Dann enable von "1" auf "0" setzen!

    Genauso kannst du es auch mit den anderen problematischen Drittanbieter-Erweiterungen machen. Aber eins nach dem anderen.

  • prima. Es läuft. Hab vielen Dank für die geduld.
    habe was gelernt.


    Ich wollte jetzt das Plugin Auto read more deinstallieren, Aber die Option scheint es unter System-Plugins nicht zu geben. Nur Enable und Disable.?


    Und der Debugger meldet noch folgende Fehler:



    Code
    : Undefined offset: 0 in /www/htdocs/xxx/libraries/src/Application/SiteApplication.php on line 520
    
    
    Notice: Trying to get property 'template' of non-object in /www/htdocs/xxxx/libraries/src/Application/SiteApplication.php on line 543
    
    
    Warning: Creating default object from empty value in /www/htdocs/xxxxx/libraries/src/Application/SiteApplication.php on line 543
  • Ja, gesehen.


    Vermutlich vom inkompatiblen Template.


    Schalte dafür 'Fehler berichten' auf 'Keine':



    Dann sollten die Meldungen weg sein.


    AutoReadMore wird auch nicht mehr angezeigt.


    Und den Debug-Modus wieder deaktivieren! ;)



    Neues Template musst du selber schauen, oder Cassiopeia anpassen.


    EDIT:

    NICHT auf das alte Template umschalten. Es ist nicht J4-kompatibel!


    Noch vielleicht einen Versuch:


    Schau in die index.php deines Templates und mache diese Änderung:


    aus:


    JSite::getMenu()


    machst du:


    JFactory::getApplication()->getMenu()


    Vielleicht klappt es ja.