Seite 2 von 2

Re: Hosteurope und PHP 8

Verfasst: Mi 11. Jan 2023, 11:18
von xmurrix
Hallo malsdgtac,

danke für das Feedback.
ich habe heute auch eine Seite auf PHP8 umgestellt. Schaut eigentlich alles ganz gut aus...
Welche PHP-Version verwendest du genau, ist es noch eine PHP 8.0 oder schon PHP 8.1?
...Allerdings eine Frage: habt ihr das Loggen der PHP-Warnings abgestellt? Denn bei mir kommen recht viele Warning aus dem Plugin "mod_rewrite" und es wundert mich, dasss ich hier im Forum keine Beiträge dazu gefunden habe...
Die Warnungen sollte man sich genauer ansehen und entsprechend beheben. Diese sind zwar nicht problematisch, aber ärgerlich, das die Logs zugemüllt werden.

Gruß

xmurrix

Re: Hosteurope und PHP 8

Verfasst: Mi 11. Jan 2023, 18:57
von malsdgtac
Ich habe im Dezember die Version von https://github.com/CONTENIDO/CONTENIDO/tree/develop/ runter geladen.

Re: Hosteurope und PHP 8

Verfasst: Mi 11. Jan 2023, 20:33
von xmurrix
Hallo malsdgtac,
malsdgtac hat geschrieben:
Mi 11. Jan 2023, 18:57
Ich habe im Dezember die Version von https://github.com/CONTENIDO/CONTENIDO/tree/develop/ runter geladen.
nach Analyse und Prüfen der Fehler und der Kommentare in GitHub zum Ticket #273, habe ich den Fehler gefixt und die Korrektur in die Entwicklungsbranch gemerged. Die Änderung findest du auch im Commit e61cffdd3ea02235573162399e8fe1fedc6f253d.

Alternativ kannst du eine Datei data/config/<environment>/config.local.php erstellen, falls es die Datei nicht gibt, und folgendes in die Datei schreiben:

Code: Alles auswählen

<?php
global $cfg;
$cfg['php_error_reporting'] = E_ALL & ~(E_STRICT | E_NOTICE | E_WARNING);
Das sorgt dafür, dass die Fehlerbehandlung in PHP nicht so streng ist, das ist nämlich seit PHP 8.0 strikt geworden.

Gruß
xmurrix

Re: Hosteurope und PHP 8

Verfasst: Fr 13. Jan 2023, 10:26
von malsdgtac
Hallo xmurrix,

vielen Dank für deine Bemühungen. Wenn ich allerdings die Änderung an der contenido/plugins/mod_rewrite/includes/config.plugin.php nachziehe, wird immer der Inhalt der Startseite geladen, egal welche Kategorie ich lade. (direkter Kategorieaufruf, ohne .html am Ende der URL).

Die Änderungen an der contenido/plugins/mod_rewrite/classes/class.modrewriteurlstack.php entfernt aber schon alle Warnings.

Re: Hosteurope und PHP 8

Verfasst: Fr 13. Jan 2023, 11:49
von xmurrix
Hallo malsdgtac,
...
Wenn ich allerdings die Änderung an der contenido/plugins/mod_rewrite/includes/config.plugin.php nachziehe, wird immer der Inhalt der Startseite geladen, egal welche Kategorie ich lade. (direkter Kategorieaufruf, ohne .html am Ende der URL)...
Das hat nichts mit PHP 8 zu tun, schau dir die Konfiguration des Advanced Mod Rewrite Plugins im Backend an. Standardmäßig werden Urls immer mit dem Muster '/pfad/zur/kategorie/artikelname.html' generiert und ankommende URLs auch nach diesem Muster aufgelöst. Wenn du aber die Seite '/pfad/zur/kategorie' aufrufst, entspricht das nicht der Plugin-Konfiguration und das Plugin leitet dann zur Startseite oder zur Fehlerseite. Dieses Verhalten lässt sich mit der Pluginkonfiguration 'Weiterleitung bei ungültigen Artikeln' setzen.

Du kannst die Erstellung der URLs auch umstellen, so dass nur URLs mit dem Muster '/pfad/zur/kategorie' möglich sind, dann musst du sicherstellen, dass alle Kategorien auch nur einen Startartikel haben und kein Artikelname als ein Kategoriename einer eine Ebene höheren Kategorie vorkommt, Beispiel:

Code: Alles auswählen

# Kategorie "foo", Subkategorie "bar", Subkategorie "baz"
Kategorie: foo
    Kategorie: bar
        Kategorie: baz

# Kategorie "foo", Subkategorie "bar", Artikel "baz"
Kategorie: foo
    Kategorie: bar
        Artikel: baz
In beiden Fällen wird ein Pfad '/foo/bar/baz' generiert, aber das Auflösen dieser URL ist problematisch, das das Plugin nicht wissen kann, welches der beiden Varianten nun die richtige Seite ist.
Deshalb empfehle ich bei CONTENIDO Installationen mit vielen Artikeln die Variante '/pfad/zur/kategorie/artikelname.html', ist die Artikelzahl überschaubar und man ist sich sicher, dass keine Überschneidungen wie oben erwähnt vorkommen, kann man das auch ohne Anhängen des Artikelname mit der Endung .html konfigurieren.

Bedenke aber auch, dass, falls das Plugin URLs mit dem Muster '/pfad/zur/kategorie' (ohne abschließendem Schrägstrich) generiert und du aber Seiten mit dem Muster '/pfad/zur/kategorie/' (mit abschließendem Schrägstrich) aufrufst, das Plugin dies als einen Fehler interpretieren könnte. So genau bin ich mir nicht sicher, wie das Plugin hierbei reagiert, aber beides sind unterschiedliche URLs und das kann auch zu unerwartetem Fehlverhalten führen. Hier kann man aber in .htaccess Regeln definieren, die solche URLs vereinheitlichen.