CONTENIDO unter PHP8 und MariaDB10

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Bernhard_4711
Beiträge: 99
Registriert: Do 25. Jul 2019, 16:08
Kontaktdaten:

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von Bernhard_4711 » Mi 7. Sep 2022, 15:54

bodil hat geschrieben:
Mi 7. Sep 2022, 14:55
Dazu zwei Fragen:
1. Passiert das in einem produktiven System?
Ja. Ist aber unkritisch.
2. Kommt dir irgendwas von der Zeichenkette /../../../..//////////dev/cmdb/sslvpn_websession vertraut vor?
Nein.
Ich habe das gesamte Quell-Verzeichnis danach (und auch nach Teilen davon) abgesucht; ohne Ergebnis.
Vieles im Contenido-CMS funktioniert mit sog. Get-Parametern, das sind Informationen, die in der URL stehen.
Ich weiß; ich arbeite auch in meinem System mit GET und POST.
Denkbar wäre aber auch ein Fehler in der Konfiguration, der im Quelcode gar nicht sichtbar ist. Da wäre dann wieder die Frage relevant, wo besagte Zeichenkette (s. o.) herkommt.
Die ich, wie geschrieben, nicht finden konnte... :?
---
Munterbleiben... Bernhard

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

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von bodil » Mi 7. Sep 2022, 21:11

Um deine ursprüngliche Frage zu beantworten: nein, man kann es nicht abstellen.
Bei der Ursache würde ich auf Hacker-Angriffe tippen, die auf irgendeine Sicherheitslücke in irgendeinem CMS zielen und diesen »Trick« automatisiert auf tausenden Webseiten testen.

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

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von Faar » Do 8. Sep 2022, 09:23

bodil hat geschrieben:
Mi 7. Sep 2022, 21:11
Bei der Ursache würde ich auf Hacker-Angriffe tippen, die auf irgendeine Sicherheitslücke in irgendeinem CMS zielen und diesen »Trick« automatisiert auf tausenden Webseiten testen.
Das sehe ich genau so.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Bernhard_4711
Beiträge: 99
Registriert: Do 25. Jul 2019, 16:08
Kontaktdaten:

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von Bernhard_4711 » Do 8. Sep 2022, 10:31

Das beruhigt mich; danke! :wink:
---
Munterbleiben... Bernhard

mikedreissig
Beiträge: 83
Registriert: Di 10. Jan 2006, 19:28
Kontaktdaten:

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von mikedreissig » So 16. Okt 2022, 13:23

Hi,
ich mache mich jetzt auch gerade daran, meine Projekte für PHP 8 fit zu machen.

Ein großes DANKE! an alle, die Contenido dahingehend vorangebracht haben.

Ich habe mir letzte Woche diese Version (https://github.com/CONTENIDO/CONTENIDO/tree/develop/) heruntergeladen, weil ich der Meinung bin, dass es die am weitesten fortgeschrittene ist. Oder liege ich da falsch? (Ich blicke bei github nicht wirklich durch.)

Im Moment update ich die Projekte bei Host Europe (PHP 7.4, Mysql > 5.7 bzw. PHP 7.4, Mysql > 8.0). Dort läuft das Update komplett ohne Fehler durch und auch nach der Umstellung auf PHP 8 gibt es keinerlei Probleme. Ebenso bei Umstellung auf PHP 8.1 (8.1.11-he.0).

Eine fiese Sache gab es allerdings beim Frontend: weiße Seite bei Aufruf und keinerlei Fehlermeldung. Ich habe dies verwendet

Code: Alles auswählen

cUri::getInstance()->build( ['idcat' => $idcat, 'idart' => $idart, 'lang' => $lang], true )
PHP 8 akzeptiert aber nur das

Code: Alles auswählen

cUri::getInstance()->build( array( 'idcat' => $idcat, 'idart' => $idart, 'lang' => $lang ), true )

Grüße
Michael
Zuletzt geändert von mikedreissig am Mo 24. Okt 2022, 14:03, insgesamt 1-mal geändert.

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

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von Faar » So 16. Okt 2022, 21:58

mikedreissig hat geschrieben:
So 16. Okt 2022, 13:23

Code: Alles auswählen

cUri::getInstance()->build( ['idcat' => $idcat, 'idart' => $idart, 'lang' => $lang], true )
PHP 8 akzeptiert aber nur das

Code: Alles auswählen

cUri::getInstance()->build( array( 'idcat' => $idcat, 'idart' => $idart, 'lang' => $lang ), true )
Hallo Michael,
diese Develop Version sollte die Neueste sein und mit PHP 8 laufen aber alle Fehler sind offenbar noch nicht raus.

Ich habe noch irgendwie in Erinnerung, dass man nun diese Schreibweise array(...) benützen muss, ich finde aber nicht mehr, wo das steht.
Bei mir laufen auch zwei Installationen inzwischen mit PHP 8 und ja, Hosteurope macht Druck.
Ich bin schon mit einigen Kunden von Hosteurope wegezogen aber einer ist noch dort, wo es wegen einiger Features umständlich ist, umzuziehen.
Andere Hoster machen nicht diesen Stress.
Mein eigener Hoster läuft noch mit 5.6 und Contenido 4.8

Grüße,
Frank
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von bodil » Mo 17. Okt 2022, 07:22

Hi Michael!
Merkwürdiges Problem. Wäre ich im Leben nicht drauf gekommen, dass das Schwierigkeiten machen könnte.
Danke für den Hinweis!
Bodil

mikedreissig
Beiträge: 83
Registriert: Di 10. Jan 2006, 19:28
Kontaktdaten:

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von mikedreissig » Di 18. Okt 2022, 14:18

Hi,
danke für eure Rückmeldungen! Falls ich mich in meinem vorherigen Post unklar ausgedrückt habe: Host Europe macht zwar Terminstress, aber hier läuft das Update wunderbar problemlos, ganz im Gegensatz zu IONOS, wo schon das Setup mit jeder Menge Fehler hängenbleibt.

Die von mir genannte Änderung zu

Code: Alles auswählen

cUri::getInstance()->build( array( 'idcat' => $idcat, 'idart' => $idart, 'lang' => $lang ), true )
bezieht sich nur auf das FRONTEND, also meine eigene Programmierung, im Contenido-Backend tritt das nicht auf, jedenfalls habe ich die alte Schreibweise in meinen Stichproben nicht mehr gefunden und es gab auch keine weißen Seiten. Allerdings nutze ich nur die Module "Hauptnavigation" und "Sitemap" aus dem Contenido-Fundus sowie den passwortgeschützten Frontendbereich, aber diese funktionieren reibungslos.

Grüße
Michael

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

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von bodil » Mo 24. Okt 2022, 08:49

Ich habe gerade den neusten Stand von Github geholt und testweise für das Update unsere neuen Webseite benutzt. Das lief eigentlich alles sehr gut. Allerdings gibt es wohl ein Problem dadurch, dass ich auf Windows teste. Das Update versaut den Server-Pfad des Mandanten, es werden alle Backslashes entfernt. Auch wenn ich die Backslashes in den Mandanteneinstellungen wieder einfüge, nach dem Speichern sind sie wieder weg. Workaround: ich ändere den Pfad direkt in der config.clients.php (und verwende \\ statt \).

Installierte PHP-Version 8.1.6
Datenbankserver-Version 10.4.24-MariaDB

Ansonsten läuft das bisher alles sehr geschmeidig. Sehr gut! Vielen Dank an alle Beteiligten!
(Wie geht es weiter? Was können jene beitragen, die sich die Beteiligung auf Github nicht zutrauen? Oder die Finger weglassen wollen, weil sie im Zweifelsfall die Dinge eher verschlimmbessern?)

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

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von bodil » Fr 2. Dez 2022, 09:53

Ich habe den Grund für den Fehler entdeckt. Beim Speichern wird die Funktion updateClientCache() (functions.general.php) aufgerufen. Und ehe die den neuen Frontend-Pfad in die die neue Config schreibt, wendet sie darauf

Code: Alles auswählen

cSecurity::escapeString($frontendPath)
an. Danach sind die Windows-Backslashes entfernt.
Da eine Contenido-Installation auch dann auf Windows funktioniert, wenn die Pfade mit regulären Slashes (/) in der Config-Datei stehen, könnte das Problem dadurch gelöst werden, dass alle Backslashes durch reguläre Slashes ersetzt werden, bevor der Pfad in die Config geschrieben wird.
Ich habe daher die Zeile

Code: Alles auswählen

$cfgClient[$idClient]['path']['frontend'] = cSecurity::escapeString($frontendPath);
so ergänzt:

Code: Alles auswählen

// replace Window backslashes (\) with regular slashes (/)
$frontendPath = str_replace('\\', '/', $frontendPath);
// make sure the path ends with ONE slash /
$frontendPath = rtrim($frontendPath, '/') . '/';
$cfgClient[$idClient]['path']['frontend'] = cSecurity::escapeString($frontendPath);
Und so gehts.

Bernhard_4711
Beiträge: 99
Registriert: Do 25. Jul 2019, 16:08
Kontaktdaten:

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von Bernhard_4711 » Mo 2. Jan 2023, 13:22

Heute trat erneut ein Fehler auf, den ich nicht lösen kann. Irgendwelche Ideen?

Code: Alles auswählen

[31-Dec-2022 13:28:16 UTC] PHP Fatal error:  Uncaught mysqli_sql_exception: Regex error 'quantifier does not follow a repeatable item at offset 12' in /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php:236
Stack trace:
#0 /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php(236): mysqli_query()
#1 /var/www/btmr/contenido/classes/db/class.db.driver.handler.php(694): cDbDriverMysqli->query()
#2 /var/www/btmr/contenido/classes/search/class.search.php(391): cDbDriverHandler->query()
#3 /var/www/btmr/cms/data/modules/content_search_results/php/class.module.search_result.php(239): cSearch->searchIndex()
#4 /var/www/btmr/cms/data/modules/content_search_results/php/class.module.search_result.php(172): SearchResultModule->_performSearch()
#5 /var/www/btmr/contenido/includes/frontend/include.front_content.php(731) : eval()'d code(182): SearchResultModule->__construct()
#6 /var/www/btmr/contenido/includes/frontend/include.front_content.php(731): eval()
#7 /var/www/btmr/cms/front_content.php(43): include('...')
#8 {main}
  thrown in /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php on line 236
[31-Dec-2022 13:28:37 UTC] PHP Fatal error:  Uncaught mysqli_sql_exception: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'regexp' in /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php:236
Stack trace:
#0 /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php(236): mysqli_query()
#1 /var/www/btmr/contenido/classes/db/class.db.driver.handler.php(694): cDbDriverMysqli->query()
#2 /var/www/btmr/contenido/classes/search/class.search.php(391): cDbDriverHandler->query()
#3 /var/www/btmr/cms/data/modules/content_search_results/php/class.module.search_result.php(239): cSearch->searchIndex()
#4 /var/www/btmr/cms/data/modules/content_search_results/php/class.module.search_result.php(172): SearchResultModule->_performSearch()
#5 /var/www/btmr/contenido/includes/frontend/include.front_content.php(731) : eval()'d code(182): SearchResultModule->__construct()
#6 /var/www/btmr/contenido/includes/frontend/include.front_content.php(731): eval()
#7 /var/www/btmr/cms/front_content.php(43): include('...')
#8 {main}
  thrown in /var/www/btmr/contenido/classes/db/class.db.driver.mysqli.php on line 236
---
Munterbleiben... Bernhard

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von Oldperl » Mo 2. Jan 2023, 14:06

Servus,

unterschiedliche Zeichensätze (encoding) der Sucheingabe und der Datenbank (Spalten) in der gesucht wird.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Bernhard_4711
Beiträge: 99
Registriert: Do 25. Jul 2019, 16:08
Kontaktdaten:

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von Bernhard_4711 » Mo 2. Jan 2023, 14:12

Hat da einer in einer "fremden" Sprache etwas gesucht?
---
Munterbleiben... Bernhard

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

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von bodil » Di 3. Jan 2023, 11:01

Nein, sicher nicht.
Frage: ist das ein neuaufgesetztes Contenido oder hast du eine bestehende Seite geupdated?

Bernhard_4711
Beiträge: 99
Registriert: Do 25. Jul 2019, 16:08
Kontaktdaten:

Re: CONTENIDO unter PHP8 und MariaDB10

Beitrag von Bernhard_4711 » Di 3. Jan 2023, 15:08

Weder, noch. Ich habe diesen Fehler auch erst einmal gesehen...
---
Munterbleiben... Bernhard

Antworten