Downtime explanation and how to get up and running again

Hello everybody!

This is my first post in 2017 and therefore let's begin with a much delayed 'Happy new year, everybody!' and all the best wishes for you in 2017!

But let's get back to business directly:

Downtime

Some of you might have recognized that we had a downtime of the crowbyte blog and website. First of all I am sorry for any inconvenience you might have had through the downtime.

The explanation

A few days ago I decided that it would be time to finally update my server again. Arch Linux sometimes is a bit tricky on update as rolling release means being at the bleeding-edge of technology which is not always thoroughly tested.

This proved to be true when after the update of PHP to version 7.1.2 all my PHP-based web applications stopped working.

Research in the log files revealed that PHP started to throw exceptions as soon as someone tries to connect to crowbyte.org with the following message:

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

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

Searching the web for more information why suddenly PHP throws this exception I found out that with PHP 7.1.2 the PHP developers changed something about how random values are created which does somehow not work at the moment.

So, everyone, do not update further than PHP 7.1.1 or you might have the same problem as I had.

How to get up and running again

But more importantly is the question how to fix this issue.

With Arch Linux you can luckily downgrade quite easily. Visit the package archive of arch at archive.archlinux.org/packages.

Navigate through the site until you find the PHP packages. Each folder for a package is filled with a whole bunch of version of that package. I selected version 7.1.1 for each PHP package I needed and downloaded it to the pacman cache folder at /var/cache/pacman/pkg/ of my webserver as there are all packages cached which have been installed.

I did this with wget:

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

In case you rather want to go back to the previously installed versions of PHP and it's extensions you can easily do as well.

I rather got the last working version of PHP (7.1.1) and downgraded to that version with:

sudo pacman -U php*7.1.1*

I used * as placeholders as I did not want to name each single PHP package I wanted to downgrade to version 7.1.1 you should carefully check pacman's output before confirming the operation. For me this worked fine and everything was back - up and running again.

For everyone who has not yet updated their system, better avoid the PHP update to 7.1.2 and download the 7.1.1 packages and install them manually.

Prospects

I have a few articles in the pipeline and hopefully this time you won't have to wait months for them to be published.

So please stay tuned.

pb