Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

moziloCMS 2.0 neuer Fehler unter PHP 4.7.8

Begonnen von laborix, 13. August 2020, 17:53:18

« vorheriges - nächstes »

laborix

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

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  ::)

laborix

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.