Jump to content

Kein Backend-Zugriff nach Update auf PHP 8.1


Recommended Posts

Hallo zusammen,

leider mein Kunde (und Vater) die ganzen Mails zur Abschaltung von PHP 7.4 nicht gelesen / ignoriert und genau heute hat sein Hoster "Host Europe" auf PHP 8.1 umgestellt. Seitdem kommt er ins Backend nicht mehr rein aufgrund eines unbekannten Fehlers.
http://bavariafishing.com/

Ich habe den DEV-Mode in der Datei "defines.inc.php" aktiviert und erhalte nun:

Fatal error: Declaration of Doctrine\DBAL\Driver\PDOConnection::query() must be compatible with PDO::query(string $query, ?int $fetchMode = null, mixed ...$fetchModeArgs): PDOStatement|false in /is/htdocs/wp13373872_1Z202QGY87/www/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php on line 70

 

Via Google-Suche fand ich nun folgende "Lösungen"

- Zurück auf PHP 7: nicht möglich, da Host Europe nur noch PHP 8.0 und 8.1 kann. 7.X wird nicht mehr angeboten bei den webhosting-Produkten (kein eigener Server).

- Update auf neues Prestashop + alle Module aktualisieren: nicht möglich, da der Zugang zum Backend ja nicht klappt.

 

nun also meine Frage: Was kann ich tun? Wie soll ich denn Prestashop updaten ohne das Backend?
Funktioniert prestashop überhaupt bereits mit PHP 8?
Hab dazu VIELE Suchergebnisse bekommen, dass Prestashop da immer hinterher hängt und dann klatschen sie schnell eine neue Version hin.

Und auch die Anbieter von Modulen (Dritthersteller) haben dadurch wenig Zeit Ihre Module zu aktualisieren.

 

Link to comment
Share on other sites

Danke.

Leider nicht so ohne weiteres. Der Wechsel wäre mit einem riesen Aufwand verbunden (Umzug aller Domains, Umzug von rund 100 E-Mail-Postfächern, Anpassen der ganzen Konfiguration, Umzug der Datenbank).

Die Lösung aus dem Link habe ich bereits gefunden, aber da es ein hosted Webspace ist habe ich nur FTP-Zugriff auf das Root-Verzeichnis der Webseite, ich kann keine Befehle (wie "composer update") ausführen.

Link to comment
Share on other sites

Die schnellste Variante wäre den Hosting Provider (mit längerfristigen PHP 7.4 support) zu wechseln.

Alternativ kann ich mir nur vorstellen den Shop lokal oder temporär auf einem anderen Provider zu installieren, dort auf die neuste Version zu upgraden (8.0, somit auch nicht stabil und Anpassungen an Modulen und Theme verraussichtlich erforderlich!) und dann zurück auf Hosteurope kopieren.  Ziemlich aufwändig und fehlerbehaftet...

Eure Version jetzt zu modifizieren um die irgendwie auf PHP8 zum laufen zu bringen denke ich ist zu risikoreich und aufwändig, es wird mit der einen Fehlmeldung nicht erledigt sein - es müsste alles getestet und angepasst werden (inkl. Theme und Module).

Link to comment
Share on other sites

Eigentlich sollte man erwarten, daß der Provider auf Nachfrage zumindest temporär um ein Upgrade auf Prestashop 8.0 durchzuführen PHP 7.4 noch einmal zur Verfügung stellt zumal der Security Support noch gar nicht abgelaufen ist (zum 28. November).

Auf jeden Fall kannst du PHP 8.0 statt 8.1 wählen, vielleicht funktioniert damit ja mehr.

Bei einem Umzug des Shops (Multishops mit mehreren Domains?) zu einem anderen Provider könnte es möglich sein, E-Mail-Konten und ggf. nicht mit Prestashop verbundene Domains bei HostEurope zu belassen.

Link to comment
Share on other sites

Hi, ich danke euch.

1. eine Umstellung auf PHP 8.0 hat nicht geklappt
2. eine Umstellung auf PHP 7.4 ist "auf keinen Fall" möglich, laut dem Support von Host Europe. nicht einmal temporär, sodass ich noch einmal kurz ins Backend komme
3. ich habe den Umzug zu Ionos versucht. Jedoch können wir die Domain nicht mitnehmen (dauert zu lang, es müssten alle Mailkonten migriert werden etc.)

AN SICH ist das nicht schlimm, aber es gibt eine Haufen Folgeprobleme.
a.) Ich habe alle Daten von Hosteurope per FTP runtergeladen und auch die Datenbank exportiert.
b.) Danach habe ich die Daten und Datenbank bei Ionos (auf einem Webspace mit PHP 7.4) wiederhergestellt.
c.) In der Datei "app\config\parameters.php" habe ich natürlich die Daten vom neuen Hoster eingegeben (Datenbankzugang etc.).
--> Danach konnte ich die Webseite in das Backend noch nicht aufrufen, weil er mich immer wieder zur alten Domain umgeleitet hat.
Zur info: ich bin von bavariafishing.com zu bavaria-fishing.com umgezogen. Also habe ich in der Datenbank die Shop-URL und SSL-URL angepasst.
d.) soweit so gut, ich kam wieder ins Backend. aber es gab diverse Probleme, manche Menüpunkte haben nicht geladen, das Layout der Webseite selbst ist total "zerstört".
e.) Also habe ich im Backup der Datenbank (.sql-Datei) ALLE Vorkommnisse der alten Domain durch die neue Domain ersetzt. Ich war schockiert, dass es über 25.000 Datensätze gibt, in denen die alte Domain drin steht. D.h. Bilder haben nicht auf eine VARIABLE verwiesen (z.B. %shopurl%/images/image.png) sondern alle Pfaden haben die Domain fest drin stehen gehabt (z.B. bavariafishing.com/images/image.png).
Danach habe ich die Datenbank gelöscht und durch meine angepasste Datensicherung ersetzt (also mit neuer Domain).
f.) danach habe ich das selbe mit den Website-Daten gemacht. Ich habe in allen Dateien "bavariafishing.com" durch "bavaria-fishing.com" ersetzt und die Daten per FTP hochgeladen.

Dennoch bleiben dutzende Fehler.
Die Console auf https://bavaria-fishing.com/ zeigt z.B. an, dass Bootstrap jQuery benötigt.
wieso jedoch jQuery nicht mehr gefunden wird kann ich mir nicht erklären, die Ordnerstuktur wurde nicht verändert, als ich sie auf den neuen FTP-Server geladen habe. Die jQuery-Dateien existieren natürlich.
Der DEV-Mode ist an, das Frontend zeigt aber keine Fehler (nur in der Console in den DEV Tools).

 

Das Backend ist noch schlimmer dran, siehe angefügtes Bild (ja, ich weiß, dass man die Admin-URL sieht^^)

Aber wieso? ich habe vorher PHP 7.4 gehabt und jetzt wieder, alle Dateien wurden per FTP übertragen. Alle Vorkommen der alten Domain wurden in Daten und Datenbank ersetzt.
Website- und Browsercache wurden geleert, ich hab die "Benutzerfreundlichen URLs" deaktiviert und dann wieder aktiviert.

 

 

backendBF.png

Link to comment
Share on other sites

Nach Server Umzug und/oder PHP Versions Wechsel musst du /var/cache löschen. Unter Leistung würde ich (temporär) die Komprimierung von CSS und JS ausschalten, dann sieht du warum und was fehlt/nicht geladen wird.

14 minutes ago, custom8 said:

Ich war schockiert, dass es über 25.000 Datensätze gibt, in denen die alte Domain drin steht

In welcher Tabelle? Ist mit so im Standard noch nicht untergekommen, evtl. in Modul wie Elementor?

Link to comment
Share on other sites

var/cache hatte ich bereits manuell gelöscht, macht aber keinen Unterschied.

das mit CSS und JS versuche ich, aber an sich weiß ich den Fehler ja:

"bootstrap needs jquery"
https://stackoverflow.com/questions/22658015/bootstrap-throws-uncaught-error-bootstraps-javascript-requires-jquery
jedoch ging es ja vor dem Umzug, bzw. vor der Umstellung auf PHP 8, ich gehe also davon aus, dass die Quellcode-Dateien passen und ich nichts daran anpassen muss.

Du hast Recht, die Datensätze waren ausschließlich von Drittanbietermodulen und in PS_Connections. Das dürfte also nicht weiter stören.

Nun gehts eig. erstmal nur um den Fehler mit jQuery, also rauszufinden, wieso er das angeblich nicht finden kann. Denn klar, ohne jQuery geht bootstrap nicht (was die Fehldarstellung erklärt) und auch viele Javascripts laufen dadurch nicht.

BF1.png

Edited by custom8 (see edit history)
Link to comment
Share on other sites

1 hour ago, custom8 said:

Nun gehts eig. erstmal nur um den Fehler mit jQuery, also rauszufinden, wieso er das angeblich nicht finden kann. Denn klar, ohne jQuery geht bootstrap nicht (was die Fehldarstellung erklärt) und auch viele Javascripts laufen dadurch nicht.

Wie gesagt stelle mal die CSS und JS komprimierung/verkettung aus, dann siehst du welche Dateien geladen werden bzw. nicht.

Link to comment
Share on other sites

ja, hab alle 3 CCC-Einstellungen deaktiviert, den Cache gelöscht und die Seite neu geladen:

Die Ausgabe in der Konsole sieht genau aus wie vorher, Frontend siehe BF2.png, Backend siehe BFBackend.png

 

jQuery nicht gefunden, weshalb er auch das $-Literal bzw. $-Prefix nicht kennt, BF3.png.

Was ich daran aber nicht erkenne: welche Dateien (nicht) geladen wurden und vor Allem: Das Wieso.

 

BFBackend.png

BF3.png

BF2.png

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...