Kommentare von

beats TEST blog

Styx 3.4-alpha2 und PHP 8.0.3

Ian Styx am |

Ich meine ich könnte die Ursache für die nicht geschickte email gefunden haben. Bitte einmal die Datei komplett mit dieser ersetzen.

https://raw.githubusercontent.com/ophian/styx/master/include/functions_comments.inc.php

Wenn es das wirklich ist, kann uns das mit PHP 8 noch an anderen Stellen passieren, die ohne einen geworfenes und bemerkbares Warning einfach so durchflutschen. Denn so aufmerksam wie du in diesem Fall ist man ja nicht immer und es gibt sicherlich einige events die hier möglicherweise betroffen wären...

Mail-Tester am |

Test mit der neuen functions_comments.inc.php

benachrichtige mich am |

Leider auch keine Mail...

Ich versuche es mal mit "Bei Aktualisierung dieser Kommentare benachrichtigen"

Beat Post author am |

Nein, leider auch nicht. Aktuell werden von diesem Testblog keinerlei Mails verschickt.

Ian Styx am |

Hmm komisch...

Du hast die angegebene URL für die functions_comments.inc.php auch wirklich benutzt?

Probiere nochmal die spamblock plugin Datei mit dieser hier zu ersetzen:

https://raw.githubusercontent.com/ophian/styx/master/plugins/serendipity_event_spamblock/serendipity_event_spamblock.php

Bei mir gehts (lt. debugging) aber immerhin bis genau zur Stelle an der die Mail versendet wird.

Funktioniert die PHP mail() Funktion denn sonst? ZB mit soetwas hier? (Bitte nach Benutzung nicht rumliegen lassen) ?

https://www.arclab.com/en/kb/php/how-to-test-and-fix-php-mail-function.html

PS. "Bei Aktualisierung dieser Kommentare benachrichtigen" betrifft nur Mail an Kommentatoren. Das ist die Subscription. Und das ist nicht das worüber wir hier verhandeln, die Benachrichtigungs eMail an den Bloginhaber!

Beat Post author am |

Habe alles genau so gemacht, wie gewünscht. Alles ohne Erfolg.

Habe nun -wie von arclab.com empfohlen- den Hosttech-Helpdesk angeschrieben und ihnen den Fehler gemeldet und das Mailscript angefügt.

Habe das mailtest.php nun wieder vom Server gelöscht.

Ian Styx am |

Gut so! (Ziemlich vermurkste Migration, oder? ?)

The output show either "Message accepted" or "Error: Message not accepted".

was hast du denn als Rückgabe bekommen?

Beat Post author am |

Ja, in allen Varianten (mit externen und internen Mailadressen) erhielt ich die Rückmeldung "Message accepted" doch in meinem Mailprogramm kam nie eine E-Mail an.

Ian Styx am |

Das ist ja noch mysteriöser...! Das hast du dem Support hoffentlich auch mitgeteilt.?

Beat Post author am |

Natürlich. ?

Contact your provider if it still does not work. Tell your provider that the standard php "mail()" function returns TRUE, but not mail will be sent.
It's recommended to include the used php test script to show your provider, that the problem is not caused by the php script used.

Wie empfohlen, habe ich dann auch den Code des Scripts angefügt.

Ian Styx am |

Sorry ? aber bei älteren Herrschaften bin ich mir nicht immer so sicher.... ?

Und Spam / Junk Ordner natürlich ebenfalls!?!

Beat Post author am |

Werd nicht frech! ? Nicht an einem Sonntag! ?

SPAM/Junk? Gibt es sowas?

Nein, auch dort nichts zu finden.

Beat Post author am |

Antwort des Helpdesk:

Besten Dank für Ihre Anfrage.

Wenn Ihr PHP-Skript unter der Version 8.0 nicht so funktioniert wie Sie es erwarten, würde ich Ihnen zunächst empfehlen wieder auf die Version 7.4 zu wechseln.

?hier werden sie geholfen? 

Beat Post author am |

Antwort auf die erneute Nachfrage:

Besten Dank für Ihre Rückmeldung.

Die Einstellungen von pcache_get_status ist bei uns auf dem Standard eingestellt, der vom Hersteller Plesk definiert wurde.

Wenn Sie etwas anderes wollen, müssen Sie auf einen eigenen vServer umziehen, da Sie dort die Einstellungen wie Sie wollen und brauchen vornehmen können.

Denn sie wissen nicht, was sie tun... ?

Ian Styx am |

Tatsächlich:
Plesk 17.8.11 - PHP value "disable_functions" changed to default value "opcache_get_status"

Aber ehrlich, das hat deinen hoster doch vorher doch auch nicht gestört. Rant: Und es stört sie auch nicht, dass sie immer noch eine alte openssl version OpenSSL 1.0.2k 26 Jan 2017 fahren. Das ist ein viel größeres Risiko! Weil viele der Verbesserungen erst in 1.1.1 eingeflossen sind. Und es stört sie scheinbar auch nicht das man opcache_get_staus() mit PHP 7.4 wohl auf ihrem Server dennoch verwenden(*) darf. Das macht doch keinen Sinn! (* Ehrlichwerweise muss man sagen dass wir das aber nicht so genau wissen, denn die Funktion ist ge@silenced, was mit PHP 7.4 noch geht, aber nicht mehr mit 8.)

Die Frage also ist, kann man den opcache trotzdem verwenden? Da er ja scheinbar trotz alledem enabled ist, denn die funktion fragt tatsächlich nur den Status ab.

Ian Styx am |

HALLLOOOOOOO... ? OOOH

PHP 8 mail() ist abgeschaltet bzw verweist ins Nirwana! Die sollen das gefälligst selbst mal ausprobieren! Das ist doch wirklich kein Zustand.
Und hattest du nicht gesagt es würde mit PHP 7.4 auch nicht klappem...?

Ian Styx am |

Setz mal unseren workaround in der functions.inc auf

$opcache = true;//function_exists('opcache_get_status') ? true : false;

Und bearbeite mal /bundled-libs/voku/simple-cache/src/voku/cache/AdapterOpCache.php in Zeile 36 von

                !empty(@\opcache_get_status())

auf

                true)

Das wäre ja mal spannend!

Beat Post author am |

O.K. Hab ich gemacht.

Musste jedoch die schliessende Klammer nach true entfernen, sonst knallt es in Zeile 37.

Beat Post author am |

Beliebter Fehler ? kicher..

Ich habe inwischen die mediasidebar rotate time wieder auf 5 Minuten gesetzt ... und ... et voilà !  ?

Beat Post author am |

et voilà !  ?

Klingt gut ?.

Ehrlich gesagt weiss ich mittlerweile gar nicht mehr, weshalb wir diesem Fehler nachgerannt sind. Vielleicht sehe ich das falsch, doch das scheint doch eine Hosttech-PHP8.03-Plesk Eigenheit zu sein, die in dieser Form wohl nicht häufig vorkommt. Bei Manitu-PHP8.0.1 hatten wir diese Probleme gar nie.

Aber schön, wenn Du irgendeine Erkenntnis daraus gewinnen konntest. ?

Ian Styx am |

 OK und jetzt einmal statt

                !empty(@\opcache_get_status())

(also dem true) mal mit dem

                !empty(@\opcache_get_configuration())

was, wenn es ginge, den ganzen Unsinn der genannten Einstellung offenbart! ?

Beat Post author am |

O.K. AdapterOpCache.php noch einmal angepasst.

Ian Styx am |

Deshalb https://www.blog.dokumenzi.ch/index.php?url=2658-Styx-3.4-alpha2-und-PHP-8.0.3.html#c7831

Ja es ist eine Plesk default "security" Einstellung für PHP, die ein Hoster natürlich überschreiben kann. Diese Funktion zu disablen bedeutet nur ein Gewinn an Sicherheit, dass man Informationen zum OPCache nicht ganz so leicht anderweitig abrufen kann. Sie wollten ursprünglich damit verhindern, dass auf einem Multi-User Server ein Hacker nicht ganz so einfach Informationen über User Nachbarn und Container Verteilung erhalten kann. Siehe Kommentar von https://www.php.net/manual/de/function.opcache-get-status.php zur Status Rückgabe. Mehr aber auch nicht. Das die Funktion opcache_get_configuration() aber dann doch verwendet werden kann (wenn du das bestätigst) macht es uns einfacher.

Manitu war vielleicht einfach klüger oder benutzt diese PLESK Version nicht.

Beat Post author am |

Dass es mit dem verlinkten Kommentar angefangen hat, ist mir klar. Doch diese Fehlermeldung ist ja schon länger weg. Aber egal. Ich muss nicht wirklich alles verstehen ?.

Ja, opcache_get_configuration() scheint zu funktionieren, denn das habe ich in der letzten Änderung ja eingefügt.

Manitu verwendet PLESK gar nicht. Ich denke, dass Sie die Benutzer-Oberfläche selber stricken (obwohl im footer etwas von "gentoo linux" steht).