Gibt es schon eine Contenido Version für PHP 8

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
sarronsarron
Beiträge: 251
Registriert: Do 10. Mär 2011, 17:02
Wohnort: Erlangen
Kontaktdaten:

Gibt es schon eine Contenido Version für PHP 8

Beitrag von sarronsarron » Di 10. Jan 2023, 20:08

Hallo,

Strato geht ab Februar auf die PHP Version 8.

Habe die Contenido CMS Version 4.10.1 im Einsatz, läuft die auf PHP Version 8 oder muss ich umstellen.

Dank im Voraus
Stephan

Faar
Beiträge: 1837
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Gibt es schon eine Contenido Version für PHP 8

Beitrag von Faar » Di 10. Jan 2023, 20:34

Die DEV-Version läuft mit PHP 8 aber es gibt noch PHP-Warnungen, besonders im Frontend-User Bereich.
https://github.com/CONTENIDO/CONTENIDO/ ... evelop.zip
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Horst1234
Beiträge: 360
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Re: Gibt es schon eine Contenido Version für PHP 8

Beitrag von Horst1234 » Mi 11. Jan 2023, 18:43

Hallo,
ist diese Develp Verion auch schon für den produktiven Einsatz gedacht?
Oder kann ich die bisherige 4.10.1.-Version bei Strato auf PHP 8 umstellen?
Gruß.
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de

xmurrix
Beiträge: 3042
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Gibt es schon eine Contenido Version für PHP 8

Beitrag von xmurrix » Mi 11. Jan 2023, 22:34

Hallo Horst,

CONTENIDO 4.10.1 wird unter PHP 8 sehr wahrscheinlich nicht funktionieren, denn es gibt einige Änderungen in PHP 8, die mit PHP 7 nicht kompatibel sind, wie z. B. Funktionen create_function() und each(), die in PHP 8 herausgeflogen sind, aber in CONTENIDO 4.10.1 noch verwendet werden.

Mit manueller Anpassung des Codes der Version und das Herunterschrauben der PHP Fehlerbehandlung (error_reporting), kann man es vielleicht irgendwie unter PHP 8 zum Laufen bekommen, ih empfehle das nicht.

Der aktuelle Entwicklungszweig von CONTENIDO in GitHub ist im großen und ganzen funktionsfähig. Damit unter PHP 8 nicht zu viele Warnungen angezeigt oder geloggt werden, sollte man die PHP Fehlerbehandlung in der data/config/<environment>/config.local.php wie folgt setzen:

Code: Alles auswählen

<?php
global $cfg;
$cfg['php_error_reporting'] = E_ALL & ~(E_STRICT | E_NOTICE | E_WARNING);
Allerdings sollten andere ihre Erfahrung mit dem aktuellen Entwicklungszweig von CONTENIDO unter Produktivumgebungen schildern. Ich habe da leider keine Erfahrung, habe aber hier im Forum mitbekommen, dass es bis auf einige Warnungen, die man abstellen kann, gut funktioniert.

Gruß
Murat

Horst1234
Beiträge: 360
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Re: Gibt es schon eine Contenido Version für PHP 8

Beitrag von Horst1234 » Fr 13. Jan 2023, 12:28

Moin Murat,
das Upgrade auf die Develop-Variante (von 4.9.12) hat funktioniert, solange noch PHP 7.4. lief, nur das AMR-Plugin lief nicht.
Als ich dann auf PHP8 umstellte, bekam ich nur eine leere Seite im Forntend und folgende Meldungen in den Errorlogs:
[13-Jan-2023 12:22:40 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to undefined function create_function() in /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731) : eval()'d code:62
Stack trace:
#0 /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731): eval()
#1 /usr/www/users/wumedq/w2mediaNEU/cms/front_content.php(43): include('/usr/www/users/...')
#2 {main}
thrown in /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731) : eval()'d code on line 62
[13-Jan-2023 12:22:44 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to undefined function create_function() in /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731) : eval()'d code:62
Stack trace:
#0 /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731): eval()
#1 /usr/www/users/wumedq/w2mediaNEU/cms/front_content.php(43): include('/usr/www/users/...')
#2 {main}
thrown in /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731) : eval()'d code on line 62
[13-Jan-2023 12:22:52 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to undefined function create_function() in /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731) : eval()'d code:62
Stack trace:
#0 /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731): eval()
#1 /usr/www/users/wumedq/w2mediaNEU/cms/front_content.php(43): include('/usr/www/users/...')
#2 {main}
thrown in /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731) : eval()'d code on line 62
[13-Jan-2023 12:24:18 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to undefined function create_function() in /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731) : eval()'d code:62
Stack trace:
#0 /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731): eval()
#1 /usr/www/users/wumedq/w2mediaNEU/cms/front_content.php(43): include('/usr/www/users/...')
#2 {main}
thrown in /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731) : eval()'d code on line 62
[13-Jan-2023 12:24:19 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to undefined function create_function() in /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731) : eval()'d code:62
Stack trace:
#0 /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731): eval()
#1 /usr/www/users/wumedq/w2mediaNEU/cms/front_content.php(43): include('/usr/www/users/...')
#2 {main}
thrown in /usr/www/users/wumedq/w2mediaNEU/contenido/includes/frontend/include.front_content.php(731) : eval()'d code on line 62
Hast du eine Idee, was ich da machen kann?
Gruß und Dank,
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de

bodil
Beiträge: 302
Registriert: Fr 7. Okt 2011, 04:10
Kontaktdaten:

Re: Gibt es schon eine Contenido Version für PHP 8

Beitrag von bodil » Fr 13. Jan 2023, 12:37

Sieht aus, als würdest du das alte AMR-Plugin weiterbenutzen. Im Paket sollte es aber eine neue Version geben.

xmurrix
Beiträge: 3042
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Gibt es schon eine Contenido Version für PHP 8

Beitrag von xmurrix » Fr 13. Jan 2023, 13:58

Hallo Horst,

das Update überschreibt nicht den Quellcode vorhandener Module, die du im Mandanten verwendest, hier solltest du die Modulcodes entsprechend anpassen. Die 'create_function' wurde früher z.B. im Modul "navigation_main" verwendet und seit PHP 8 gibt es die Funktion nicht, das muss man gegen anonyme Funktionsaufrufe ersetzen, siehe neue Version des Moduls "navigation_main" in CONTENIDO unter "setup/data/examples/data/modules/navigation_main/php/navigation_main_output.php".

Ich empfehle daher die Module, die du verwendest, mit den neueren Versionen der Module aus CONTENIDO ("setup/data/examples/data/modules") abzugleichen. Es kann auch sein, dass benutzerdefinierte Plugins, die nicht in CONTENIDO dabei sind, noch alten PHP-Code verwenden und daher nicht mit PHP 8 kompatibel sind.

Gruß
Murat

Horst1234
Beiträge: 360
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Re: Gibt es schon eine Contenido Version für PHP 8

Beitrag von Horst1234 » Do 19. Jan 2023, 10:19

Hallo zusammen,
danke für eure Antworten, ich arbeite mich jetzt schrittweise vorwärts.
Ich hab den Democlient der develop-Version installiert unter PHP8, läuft ;-)
Dann habe ich das mitglieferte AMR-Plugin aktiviert im Democlient, da klappts dann nicht mehr
die Links funktionieren nicht mehr, in den Error-Logs steht dann:
[19-Jan-2023 10:11:19 Europe/Berlin] PHP Warning: Undefined array key "idart" in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 36
[19-Jan-2023 10:11:19 Europe/Berlin] PHP Warning: Attempt to read property "value" on null in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 36
[19-Jan-2023 10:11:19 Europe/Berlin] PHP Warning: Undefined array key "idlang" in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 38
[19-Jan-2023 10:11:19 Europe/Berlin] PHP Warning: Attempt to read property "value" on null in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 38
[19-Jan-2023 10:11:24 Europe/Berlin] PHP Warning: Undefined array key "idart" in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 36
[19-Jan-2023 10:11:24 Europe/Berlin] PHP Warning: Attempt to read property "value" on null in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 36
[19-Jan-2023 10:11:24 Europe/Berlin] PHP Warning: Undefined array key "idlang" in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 38
[19-Jan-2023 10:11:24 Europe/Berlin] PHP Warning: Attempt to read property "value" on null in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 38
[19-Jan-2023 10:11:26 Europe/Berlin] PHP Warning: Undefined array key "idart" in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 36
[19-Jan-2023 10:11:26 Europe/Berlin] PHP Warning: Attempt to read property "value" on null in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 36
[19-Jan-2023 10:11:26 Europe/Berlin] PHP Warning: Undefined array key "idlang" in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 38
[19-Jan-2023 10:11:26 Europe/Berlin] PHP Warning: Attempt to read property "value" on null in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 38
Infos laut Administration /System / Variablen:
Installierte Versionen
CONTENIDO Version 4.10.1
Webserver-Version Apache
Installierte PHP-Version 8.0.27
Datenbankserver-Version 10.5.18-MariaDB-0+deb11u1
PHP-Datenbankerweiterung mysqli

Hab ich was übersehen, gibt es eine neuere AMR-Version, die ich extra installieren muss?
Gruß aus Bremen,
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de

xmurrix
Beiträge: 3042
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Gibt es schon eine Contenido Version für PHP 8

Beitrag von xmurrix » Do 19. Jan 2023, 12:22

[19-Jan-2023 10:11:19 Europe/Berlin] PHP Warning: Undefined array key "idart" in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 36
[19-Jan-2023 10:11:19 Europe/Berlin] PHP Warning: Attempt to read property "value" on null in /usr/www/users/nbyter/cms/cache/templates_c/8f640ac74648ca634437e0a1960dd65b6c4b70f7_0.file.get.tpl.php on line 36
Die Fehlermeldungen haben nichts mit dem AMR-Plugin zu tun, das sind PHP Warnungen, weil in Smarty-Templates Variablen verwendet werden, die zuvor nicht gesetzt wurden.

Wegen unsauberer Programmierung in Modulen, auch im Core gibt es einige Stellen, wird es sehr viele PHP-Warnungen geben. Abschalten kann man das, in dem man die PHP-Einstellung für error_reporting setzt, siehe folgende Beiträge:
viewtopic.php?f=115&t=44683#p182936
viewtopic.php?f=115&t=44684&p=182952#p182937

Horst1234
Beiträge: 360
Registriert: Sa 25. Okt 2008, 12:45
Wohnort: Bremen
Kontaktdaten:

Re: Gibt es schon eine Contenido Version für PHP 8

Beitrag von Horst1234 » Do 2. Feb 2023, 14:38

Lieben Dank für die Infos.
Leider läuft das AMR-Plugin aber wohl auch dann nicht, wenn ich die Fehlermeldungen abstelle, oder?
Gibt es noch keine offizielles Statemnt, wann es ein Contenido-Upgrade für PHP8 gibt?
Neben Strato schaltet ja jetzt auch IONOS des PHP 7.4-Support ab.
Hier im Forum hab ich dazu nichts gefunden.
Grüße aus Bremen,
Horst
Webdesign | Contenido: Templateprogrammierung, Einrichtung und Verwaltung | http://www.w2media.de

xmurrix
Beiträge: 3042
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Gibt es schon eine Contenido Version für PHP 8

Beitrag von xmurrix » So 5. Feb 2023, 13:01

Hallo,
...Leider läuft das AMR-Plugin aber wohl auch dann nicht, wenn ich die Fehlermeldungen abstelle, oder?...
Die Fehlermeldungen haben ja nichts mit dem AMR-Plugin zu tun, daher wird sich das Abstellen auch nicht darauf auswirken.
...Gibt es noch keine offizielles Statemnt, wann es ein Contenido-Upgrade für PHP8 gibt?...
Nein, bisher gibt es da nichts offizielles. An der Entwicklungs-Branch von CONTENIDO wird aber gearbeitet und die PHP 8 Unterstützung ist längst abgeschlossen. Auf vielen Entwicklungsrechnern funktioniert die Entwicklungs-Branch ohne Probleme, einie verwenden es sogar im Produktivbetrieb. Wichtig ist halt, dass man die Fehlerbehandlung in PHP 8 nicht allzu strikt konfiguriert, da sonst die errorlog.txt voll mit Warnmeldungen wird. Die sind aber in der Regel keine "Fehler", sondern Warnungen, weil z. B. Variablen im Code verwendet werden, die es nicht gibt, die also zuvor nicht initialisiert wurden. Aktuell wird auch an der Behebung der Warnungen gearbeitet, damit der Code „sauberer“ wird.

Du schreibst:
...die Links funktionieren nicht mehr...
.
Was genau funktioniert nicht? Werden die Links falsch generiert oder landet man bei Klick auf richtig generierte Links immer auf einer falschen Seite oder auf der Fehlerseite?

In der Administration kann man beim Plugin z. B. die Funktionalität testen, da werden Links generiert und wieder aufgelöst. Funktioniert das richtig, werden dort die Links korrekt erstellt und wieder aufgelöst? Ich würde auch empfehlen, die Einstellungen dort auf ihre Korrektheit hin zu prüfen.

Ich würde auch vorschlagen in der Administration des Plugins die Aliase neu generieren zu lassen. Wenn die Artikel- und Kategorie-Aliase nicht korrekt oder vollständig gesetzt sind, können auch die Links nicht richtig generiert oder aufgelöst werden.

In der Regel gibt es folgende Ursachen, wenn das Plugin nicht wie gewünscht funktioniert:
  • Fehlende .htaccess im Mandantenverzeichnis
  • Falsche, fehlende oder ungültige Regeln in der .htaccess
  • Falsche oder fehlende Artikel- und Kategorie-Aliase
  • Falsche oder unvollständige Konfiguration des Plugins
  • In Modulen werden weiterhin alte Links mit „front_content.php“ generiert, im Plugin ist aber die Option zum Generieren der Links während der Ausgabe der Seite nicht gesetzt
Probleme mit dem Plugin in Verbindung mit PHP 8 sind bisher keine bekannt. Sofern bei der Aktualisierung die neuen Dateien aus dem Plugin-Ordner vollständig übernommen wurden, sollte das Plugin korrekt funktionieren. Was sein kann, dass das Plugin hier und da Warnungen erzeugt, was zwar einen Eintrag in der errorlog.txt verursacht, aber keinen besonderen Einfluss auf die Funktionalität hat.

Wenn es dennoch Fehler geben sollte, was ja nicht auszuschließen ist, wäre eine Schritt für Schritt Anleitung zum Reproduzieren des Fehlers hilfreich.

Gruß
Murat

Antworten