Hosteurope und PHP 8

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Hosteurope und PHP 8

Beitrag von xmurrix » Mi 11. Jan 2023, 11:18

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
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Re: Hosteurope und PHP 8

Beitrag von malsdgtac » Mi 11. Jan 2023, 18:57

Ich habe im Dezember die Version von https://github.com/CONTENIDO/CONTENIDO/tree/develop/ runter geladen.

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

Re: Hosteurope und PHP 8

Beitrag von xmurrix » Mi 11. Jan 2023, 20:33

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
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

malsdgtac
Beiträge: 717
Registriert: Fr 12. Mär 2004, 15:50
Kontaktdaten:

Re: Hosteurope und PHP 8

Beitrag von malsdgtac » Fr 13. Jan 2023, 10:26

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.

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

Re: Hosteurope und PHP 8

Beitrag von xmurrix » Fr 13. Jan 2023, 11:49

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.
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Antworten