Hallo,
wenn man die aktuelle Mozilo 2.0 Github (Dezember 2019) mit PHP 4.7.1 Patch, siehe meinen Beitrag mit PHP 7.4.1 Fehler hier im Forum
https://www.mozilo.de/forum/index.php/topic,4448.0.html
unter PHP 7.4.8 einem Stresstest unterzieht, kommt folgender Fehler:
ZitatPHP Notice: file_get_contents(): read of 8192 bytes failed with errno=13 Permission denied in /htdocs/mozilo20rev51/cms/Properties.php on line 38
Das lässt sich lösen indem man die Zeile 38 wie folgt ändert:
Original Zeile 38:
if(false === ($conf = file_get_contents($this->file)))
die("Fatal Error Can't read file: ".basename($this->file));
Ersetzen mit folgenden Zeilen:
$conf = "";
$conf = file_get_contents($this->file);
if (false === $conf)
die("Fatal Error Can't read file: ".basename($this->file));
Kann das jemand von den Administratoren/Entwicklern anpassen und ins Github stellen?
@Marusti
Hast du Zugriff auf das Github oder geht das nur über den "hausl" Login/Kontakt?
Vielen Dank :D
Laborix
Die oben genannte Korrektur der Zeile 38 löst das Problem leider nicht :-\ Wiederholt man den Stresstest mehrmals hintereinander kommt der Fehler oder auch nicht.
Die neue Lösung sieht so aus:
Original Zeile 38:
if(false === ($conf = file_get_contents($this->file)))
die("Fatal Error Can't read file: ".basename($this->file));
Ersetzen mit folgenden Zeilen:
$conf = "";
$testfile = $this->file;
$pos = 0;
$pos = strpos($testfile, ".conf.php");
if ($pos > 0) {
$conf = file_get_contents($this->file);
}
if (false === $conf)
die("Fatal Error Can't read file: ".basename($this->file));
Das ist sehr interessant, es wird einfach etwas in die Anfrage eingeschleust und man muss wirklich die Übergabeparameter explizit überprüfen ::)
Und nun zum dritten Mal, Korrektur notwendig :(
Nach ausgiebigen Tests in verschiedenen Umgebungen taucht der oben genannte Fehler immer wieder auf, wenn mehrere Zugriffe gleichzeitig stattfinden. Beispiel: Benutzer ist angemeldet, 10 - 20 Besucher gleichzeitig und Stresstest.
Original Zeile 38:
if(false === ($conf = file_get_contents($this->file)))
die("Fatal Error Can't read file: ".basename($this->file));
Ersetzen mit folgenden Zeilen:
if(false === ($conf = @file_get_contents($this->file)))
die("Fatal Error Can't read file: ".basename($this->file));
Bitte ein "@" vor dem Befehl "file_get_contents()" hinzufügen. Somit wird die Fehlermeldung unterdrückt, aber das Problem besteht weiterhin.
Noch als Info:
Die "@"-Lösung wird auch in einigen anderen PHP-Projekten genutzt.