Regina Schaukrug: PHP Fatal error: Uncaught Exception: Could not gather sufficient random data in Stack trace: #0 C:\inetpub\wwwroot\test\test.php(3): session_start()

Beitrag lesen

Werner beschrieb eine Windows-Installation.

Ja. Aber das Problem scheint darin zu liegen, dass einer der Autoren "starken" Zufall wollte. (Literatur für Linux: [man 4 random](http://man7.org/linux/man-pages/man4/random.4.html)). Das braucht aber "Entropy" (Rauschen von Gerätetreibern und anderen Quellen) und schlägt fehl wenn diese Entropy "verbraucht" ist - was auf Servern ziemlich fix geht.

Vorher hat man im Falle des Fehlens von Entropy wohl auf die kryptographisch nicht wirklich nützlichen Werte aus /dev/urandom zurückgegriffen. Das nutzt stumpf eine mathematische Funktion für (Pseudo-)Zufallswerte.

PHP-intern wird eine cpp-Funktion SYS_getrandom genutzt. Und genau die dürfte letztendlich das Problem darstellen, da eben in dieser wird (über alle Betriebssysteme hinweg) der, ich nenn es mal "Syscall" aufgerufen wird und also nur noch der starke Zufall genutzt wird. Der Syscall ruft (unter Linux von /deb/random) eine gewisse Anzahl von Bytes ab, hasht diese gemäß der ini-Einstellung session.hash_func . das Ergebnis ist die Session-ID. Und eben dieses Abholen versagt (oder stockt zu lange), wenn es an Rauschen der Geräte fehlt.

Lösung: Kamera anschließen und auf einen Ameisenhaufen oder eine belebte Kreuzung oder ein Regal voller Lava-Lampen richten. Oder eben eine gefixte Version von installieren.