Downtime Erklärung und wie man das Problem löst

Back to business... mit einer kurzen Erklärung der Downtime und wie die Probleme gelöst wurden.

Hallo, liebe Leser!

Dies ist mein erster Post 2017 und daher lasst uns mit einem sehr verspäteten 'Frohes neues Jahr!' und den besten Wünschen für 2017 beginnen

Aber kommen wir direkt zum Geschäft zurück:

Downtime

Einigen wird es nicht entgangen sein, dass der Blog und die Webseite von crowbyte eine weile offline war. Zunächst einmal entschuldige ich mich für alle eventuell aufgetretenen Unannehmlichkeiten, die die Downtime verursacht haben mag.

Die Erklärung

Vor ein paar Tagen entschloss ich mich endlich mal wieder meine Server zu aktualisieren. Arch Linux ist dabei ja bekanntlich hier und da etwas 'tricky' da Rolling Release auch immer heißt die neuste Software zu betreiben, die aber nicht immer auch gründlich getestet sein muss.

Diese Erfahrung bewahrheitete sich beim Update von PHP auf Version 7.1.2 und all meine PHP-basierten Webanwendungen stellten ihre Funktion ein.

Die Nachforschungen in den log-Dateien enthüllten, dass PHP plötzlich Exceptions warf, wann immer jemand versuchte auf crowbyte.org zu gelangen, die Fehlermeldung besagte dabei:

[...] PHP Fatal error:  Uncaught Exception: Could not gather sufficient random data [...]

[...] CGI returned 500 Internal Error [...]

Die Suche im Internet nach dem Grund für die plötzlichen Fehlermeldungen ergabt dabei, dass offenbar die PHP Entwickler ab Version 7.1.2 etwas daran geändert haben, wie Zufallswerte erzeugt werden, was aber wohl teilweise derzeit nicht immer und für jeden richtig funktioniert.

Also, aktualisiert eure Systeme nicht weiter als bis PHP 7.1.1 oder es könnte euch ergehen wie mir.

Wie man das Problem löst

Wichtiger aber noch ist die Frage, wie man das Problem löst.

Mit Arch Linux kann man glücklicherweise Pakete auch wieder downgraden. Dazu besucht einfach das Arch Linux Paketarchiv auf archive.archlinux.org/packages.

Druchforstet die angegebene Seite nach den benötigten PHP Paketen. Jeder Ordner enthält dabei eine ganze Menge verschiedener Versionen des betreffenden Pakets. Ich habe mich für Version 7.1.1 jedes PHP Pakets, das ich brauche, entschieden und es in den pacman-Cache-Ordner /var/cache/pacman/pkg/ meines Wbeservers geladen, wo auch alle anderen Pakete gecached sind, die man mal installiert hatte.

Genutzt habe ich zum Download der Pakete wget:

sudo wget http://archive.archlinux.org/packages/p/php/php-7.1.1-1-x86_64.pkg.tar.xz

Für den Fall, dass ihr lieber zu einer vorher installierten Version von PHP zurückkehren wollt, könnte ihr das an dieser Stelle natürlich auch einfach tun.

I habe lieber die letzte funktionierende Version von PHP (7.1.1) heruntergeladen und die Pakete mit der betreffenden Version gedowngraded:

sudo pacman -U php*7.1.1*

Ich habe dabei * als Platzhalter verwendet um mir die Arbeit zu sparen jedes Paket einzeln angeben zu müssen, das ich auf Version 7.1.1 downgraden möchte. Ihr solltet dabei sorgfältig die Ausgaben von Pacman kontrollieren, bevor ihr den Downgrade bestätigt. Für mich hat das aber ausgezeichnet funktioniert und wie ihr seht, läuft alles wieder wie erwartet.

Für alle, die ihre Systeme noch nicht aktualisiert haben, hier also noch einmal der Rat: Aktualsiert lieber analog zu obrigem Vorgehen manuell auf die Version 7.1.1, wenn die ihr letzte aktuelle und funktionierende Version von PHP laufen lassen wollt.

Aussicht

Ich habe einige weitere Artikel in der Pipeline und hoffentlich müsste ihr dieses mal auch nicht Monate warten, bis sie veröffentlich sind.

Also bitte, stay tuned.

pb

Published by

Pierre Böckmann

Born 1985 in Berlin, I am Software Developer, Blogger, Author, Open Source Enthusiast, openSUSE member and passionate openSUSE Leap user.