Website hängt sich auf seit Update auf DSM7 und php8

bekon

Benutzer
Mitglied seit
05. Dez 2022
Beiträge
9
Punkte für Reaktionen
1
Punkte
3
Hallo

Vorwort: Ich erstelle eine Homepage offline mit der Webstation, bevor ich sie hoch lade.

Alles funktionierte mit DSM6 und PHP7.4. Jetzt habe ich auf DSM7 und PHP8 geupdatet mit allem, was noch so verlangt wurde.

Nach Korrektur von wenigen Inkompatibilitäten in PHP8 klappt auch alles.

Bis auf eine Hompage!

In einer nur für den Admin zugänglichen Seite sollen Termine (mySQL) verwaltet werden. Neu anlegen und editieren funktioniert.

Dann besteht die Möglichkeit, ein PDF-Dokument und eine iCal-Datei zu erstellen. Und hier ist das Problem:

Wenn ich den Formular-Butten [PDF/iCal] klicke, passiert erstmal nichts. Musste aber feststellen, dass die Seite Minutenlang nicht mehr bedienbar ist! Gelegentlich kam es auch zu einem 'out of memory‘.

Das klingt sehr nach einer Endlosschleife. Aber: Online funktioniert das! Daher kann es sich nicht um einen PHP-Scriptfehler handeln.

Da keine Fehlermeldungen kommen und ich keine Idee habe, wie ich den Fehler eingrenzen soll, frage ich mal in die Runde nach Tipps. Einen Link zu meiner NAS gibt’s auf Wunsch per PN.

Habe doch sehr meine DSM7 in Verdacht

Meine Konfig:

Apache 2.4.54-125

Webstation 3.1.0-0339

MariaDB 10.3.32-1040

PHP 8.0.23-0102
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.438
Punkte für Reaktionen
1.061
Punkte
194
Was ist das für eine Seite? Welches Backend? Ansonsten erstmal obligatorisch display_errors aktivieren.
OhErifp.png
 

bekon

Benutzer
Mitglied seit
05. Dez 2022
Beiträge
9
Punkte für Reaktionen
1
Punkte
3
Es handelt sich um https://www.chariot-gospel-singers.de/
Das Wissen nützt aber nichts, da sich der Fehler im Adminbereich befindet. Hier funktioniert ja auch alles. Und Logindaten gebe ich hier nicht bekannt.
Backend ist oben erwähnt(Apache 2.4) und display-errors=E_ALL
Den Link zu meiner NAS incl. Zugangsdaten gibt's auf Wunsch per PN
 
Zuletzt bearbeitet:

bekon

Benutzer
Mitglied seit
05. Dez 2022
Beiträge
9
Punkte für Reaktionen
1
Punkte
3
Lösung:
1. In Webstation das php-error.Log einschalten.
2. reinschauen.
3. Es läuft eine Endlosschleife !
Code:
$Probe="Mi";
...
while ($X['WoTag'] <> $Probe){
... sucht einen Mittwoch
}
Wie erwähnt, läuft's Online.
Mein DSM7 mag aber an dieser Stelle kein Deutsch und wartet vergeblich auf den Mittwoch.
Ändere ich $Probe in We, läuft's wie gewollt.

Mal schauen, warum in diesem Script kein Deutsch verstanden wird :)
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.438
Punkte für Reaktionen
1.061
Punkte
194
Mir sind mit dem aktuellen Apache 2.4 auch bereits Ungereimtheiten aufgefallen. Frage der Fragen: Tritt denn der Fehler auch auf, wenn du den Backend-Server auf Nginx stellst?
 

bekon

Benutzer
Mitglied seit
05. Dez 2022
Beiträge
9
Punkte für Reaktionen
1
Punkte
3
Mit Nginx habe ich das gleiche Problem gehabt.
Aber mir scheint, dass meine php.ini (im Document_root) keine Wirkung zeigt.
z.B. steht da drin: date.timezone = "Europe/Berlin", phpinfo sagt aber "Europe/Amsterdam".
Hier bin ich gerade am Nachforschen.
 

Brillenschlange

Benutzer
Mitglied seit
19. Jun 2022
Beiträge
95
Punkte für Reaktionen
20
Punkte
8
wie ist denn jeweils die Einstellung für "error_reporting" ? PHP ist seit Version 8 ziemlich zickig geworden... Dinge, welche vorher noch ein "Notice" ausgelöst haben werden nun als "Warning" ausgeworfen. Wie ist denn die Config vom Online-Server ?
 

Brillenschlange

Benutzer
Mitglied seit
19. Jun 2022
Beiträge
95
Punkte für Reaktionen
20
Punkte
8
leg mal auf den Servern eine Datei "phpinfo.php" an mit folgendem Code, rufe diese auf und poste mal die Inhalte.

PHP:
<?php
phpinfo();
?>
 

Brillenschlange

Benutzer
Mitglied seit
19. Jun 2022
Beiträge
95
Punkte für Reaktionen
20
Punkte
8
Vielen Dank. Mach das gleiche bitte noch einmal für den NAS Server zum Vergleich. Dann kann man mal die Unterschiede zum Online-Server sehen.

Was mich wirklich beeindruckt ist der Wert für "error_reporting". Der steht auf "32767" - das ist "E_ALL" - und die Webseite zeigt keinerlei Fehler an.
 

Brillenschlange

Benutzer
Mitglied seit
19. Jun 2022
Beiträge
95
Punkte für Reaktionen
20
Punkte
8
Vielen Dank. Leider konnte ich bisher nichts auffälliges finden, woran es liegen könnte.

Setzte bitte mal auf dem NAS den Wert für "error_reporting" auf 32767 oder E_ALL. Die php.ini ist im Verzeichnis "/usr/local/etc/php80/cli" zu finden. Danach musst Du dann PHP neu starten, damit die Änderung übernommen wird. Wird dieser Wert niedrig angesetzt, werden Fehler nicht angezeigt oder verarbeitet und das Script kann dann ohne weitere Meldung stehen bleiben.

Hier findest Du noch einige Infos zu den Werten für "error_reporting": https://www.php.net/manual/de/errorfunc.constants.php
 

bekon

Benutzer
Mitglied seit
05. Dez 2022
Beiträge
9
Punkte für Reaktionen
1
Punkte
3
Sorry. Verstehe dir ganze Aktion mit phpinfo nicht.
Für mich ist das Thema erledigt, seit ich die Endlosschleife gefunden habe. Mit error_reporting hatte ich keine Probleme.
 

Brillenschlange

Benutzer
Mitglied seit
19. Jun 2022
Beiträge
95
Punkte für Reaktionen
20
Punkte
8
Ich dachte das bezieht sich auf das Error Reporting. Gut, dass es nun funktioniert.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat