- Joomla Version
- 3.10
- PHP Version
- PHP 7.4.x
- Hoster
- Strato
- Link (URL) zur Seite mit dem Problem
- schachfreunde-heidelberg.de
Hallo zusammen,
vor kurzem habe ich eine Joomla! Website übernommen, die seit fast 10 Jahre nicht mehr richtig gemanaged wurde und ich mich wundere, wie noch alles halbwegs funktioniert.
Wie zu sehen ist, befindet sich unser Joomla! auf der 3.10.x Version. Entsprechend wollte ich unser Joomla! upgraden auf 4. Ich habe folgendes gecheckt: {plugins, components, extensions, modules}. Es schien alles ok zu sein nach dem Pre-Update Check. Die veraltete PHP-Version wurde auch akzeptiert. (diese befindet sich im "Extended Support", a.ka. Life-Line bei Strato). Ich habe kein Akeeba-Backup erstellt, denn 1. hat es mir in der Joomla! Oberfläche gesagt, dass das Back-Up mit dem momentanen zustand aktuell sei und 2. wir ein tägliches Webspace-Backup bei Strato haben.
Ein Datenbank-Backup vom 08.04 existierte ebenfalls. Also, was kann bei einem Upgrade auf Joomla! 4.x schon schief gehen? Hm... so ziemlich alles, wie sich herausstellte.
1. Joomla! Backend funktionierte nicht mehr. 2. Website war nicht mehr erreichbar. => Problem!!
Partialer Fix: In Strato BackUp Control habe ich das Webspace vom 08.04 zurückgeholt. Immernoch ein Problem, Fehlermeldungen auf Website beim Anzeigen der Artikel, Fotos etc.
Also habe ich bei Strato auch die Datenbank vom 08.04 restored. Glücklicherweise funktionierte die Website nun wieder und das Joomla! Backend funktionierte nun auch wieder teilweise. Aber eben nur teilweise.
Das Problem ist, dass ich folgendes nicht kann: Plugins, Module, Extentions, Templates auflisten/managen. Konfiguration kann ich auch nicht aufrufen.
Außerdem können keine Artikel hinzugefügt werden. Ich bekomme überall Fehlermeldungen mit JFormField irgendwas...
Also Debugging und Error Reporting an und Folgendes kommt, wenn ich versuche, einen Artikel zu bearbeiten:
Class 'JFormFieldTextarea' not found
/mnt/../../../htdocs/Joomla-34/libraries/src/Form/Field/EditorField.php:25
Call stack
# Function Location
1 () JROOT/libraries/src/Form/Field/EditorField.php:25
2 include_once() JROOT/libraries/loader.php:557
3 JLoader::loadByPsr4()
4 spl_autoload_call()
5 class_exists() JROOT/libraries/src/Form/FormHelper.php:188
6 Joomla\CMS\Form\FormHelper::loadClass() JROOT/libraries/src/Form/FormHelper.php:120
7 Joomla\CMS\Form\FormHelper::loadType() JROOT/libraries/src/Form/FormHelper.php:76
8 Joomla\CMS\Form\FormHelper::loadFieldType() JROOT/libraries/src/Form/Form.php:1985
9 Joomla\CMS\Form\Form->loadFieldType() JROOT/libraries/src/Form/Form.php:1922
10 Joomla\CMS\Form\Form->loadField() JROOT/libraries/src/Form/Form.php:277
11 Joomla\CMS\Form\Form->getField() JROOT/components/com_content/views/form/tmpl/edit.php:37
12 include() JROOT/libraries/src/MVC/View/HtmlView.php:701
13 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT/libraries/src/MVC/View/HtmlView.php:230
14 Joomla\CMS\MVC\View\HtmlView->display() JROOT/components/com_content/views/form/view.html.php:133
15 ContentViewForm->display() JROOT/libraries/src/MVC/Controller/BaseController.php:664
16 Joomla\CMS\MVC\Controller\BaseController->display() JROOT/components/com_content/controller.php:118
17 ContentController->display() JROOT/libraries/src/MVC/Controller/BaseController.php:702
18 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT/components/com_content/content.php:43
19 require_once() JROOT/libraries/src/Component/ComponentHelper.php:402
20 Joomla\CMS\Component\ComponentHelper::executeComponent() JROOT/libraries/src/Component/ComponentHelper.php:377
21 Joomla\CMS\Component\ComponentHelper::renderComponent() JROOT/libraries/src/Application/SiteApplication.php:194
22 Joomla\CMS\Application\SiteApplication->dispatch() JROOT/libraries/src/Application/SiteApplication.php:233
23 Joomla\CMS\Application\SiteApplication->doExecute() JROOT/libraries/src/Application/CMSApplication.php:225
24 Joomla\CMS\Application\CMSApplication->execute() JROOT/index.php:49
Damit einhergehend stechen auch immer die gleichen roten Warning heraus: NO INDEX KEY COULD BE USED und FILESORT (WHERE/ON Queries), das direkt mit dem NIKCBU Fehler zusammenhängt.
Erst einmal sieht es aus wie ein Datenbank-Fehler, aber diese habe ich ja wieder hergestellt und die Probleme scheinen beim Aufrufen bestimmter Funktionen zu sein. Vorherrschend: Irgendeine Class existiert nicht, d.h. ein PHP Class Object.
Übrigens: Die "Reparieren" Option in Joomla! hat dafür gesorgt, dass das Backend komplett zerpflückt wurde. Irgendein Spaßvogel mit einem "Meister" Label im Englischsprachigen Forum, hat es einem Nutzer vorgeschlagen. Tja, Pech gehabt.
Zurück zum Thema:
Als ich Strato gefragt habe zum Webspace Rollback, haben sie mir gesagt, dass bei einem Webspace Restore, die durch ein Joomla!-Update neu generierten Dateien nicht gelöscht werden sondern nur die alten Dateien mit existierenden überschrieben werden. Warum Strato diesen Mechanismus für eine gute Idee hält, fällt mir schwer zu verstehen.
Das heißt, es gibt eigentlich nur eine Möglichkeit: Das Webspace hat nun Dateien/Scripts drin, die aufgerufen werden, die aber nicht zu Joomla 3.10 gehören.
Heute mache ich den Job von Strato und mache einen manuellen Webspace Restore mit einem Back-Up vom Strato Back-Up Server. (Scheinbar sind die Strato-Menschen nicht in der Lage, das selbst zu tun oder sie wollen es einfach nicht tun. Download vom Backup-Server dauert übrigens 3h+ je nach Zeit. Und unsere Website ist klein! Mit dem Upload ist das ähnlich, aber wenigstens kann ich meine Computer-CPU verwenden, um die Dateien vor dem Hochladen zu verschlüsseln. Das geht dann also schneller. (Strato-Backup Server brauchen so lange, weil sie für bestimmte Pakete extrem wenig CPU Power zuweisen.)
Auch habe ich gesehen (auch in Videos), dass Leute vorschlagen, auf die Datenbank zuzugreifen und bestimmte Spalten/Tabellen zu löschen. 1. Halte ich manuelles Rumfummeln in der Datenbank nicht für eine gute Lösung, selbst als jemand, dr SQL kann. 2. Wie soll mir das mit dem Joomla! Backend helfen? 3. Warum werden beim Joomla!-Versions-Rollback die neu generierten Dateien nicht gelöscht? Das kann doch nur zu Problemen führen. Oder ist das einfach ein Problem von der 3.10.x Version/de dazugehörenden Updater/Rollback-Programm?
Und noch eine allgemeinere Frage:
Assuming the Manual Webspace Override does not lead to an Improvement: What can I do to get all this back to normal?
Angenommen, dass das manuelle Webspace Überschreiben auf dem SFTP-Server führt zu keiner Verbesserung im Back-End: Was kann ich dann noch tun?
P.S.: Ich würde Leuten von Strato als Hoster abraten, wenn sie sichergehen wollen, dass die Website-Inhalte bei einem Restore auch wirklich alle ersetzt werden. Das ist die einfachste Aufgabe der Welt und wird jedem Werkstudenten als 1. Ticket in einem Hosting-Unternehmen erstellt, aber Strato scheint das nicht bewerkstelligen zu können.
Ich freue mich auf Tipps und Hilfe!
LG Nicolas