This article has originally been published on the PEAR blog:

PEAR server fully restored @ blog.pear.php.net
.

The pear.php.net server has been
fully restored after we had to witness a fatal hard drive crash on
2015-11-29.

Our server sponsor eUKhost
quickly provided us with a new machine after we told them the old had
failed, and the last two weeks were spent setting it up to provide the
same functionality as before:

All those things are back again.

Why did it take so long?

The number of active people in the
PEAR group has shrunken to about
1.5, with
Christian Weiske doing most
of the work.
I’m also writing this blog post now.

I contacted eUKhost the next morning, and they had a new server available
in the evening.
Unfortunately it was CentOS and not Debian
(which I’m more proficient with), so I asked them if they could put
Debian on it.
They tried again, but neither Debian nor Ubuntu had the necessary hardware
RAID drivers, so we had to go back to CentOS.

Tuesday evening I began to setup the server
(note that I have a day job and kids, so I did the resetup in the
evenings/at night).

The sources for pear.php.net are

PEAR packages themselves
,
originally written for PHP4.
The previous server had PHP 5.3, but now with PHP 5.6 I got serious errors
and had to fix the website code at first.
And not only the pearweb code itself, but also the dependencies..

Getting into the old code and all the little dependencies and hidden
settings (hello, PEAR_BOX constant!) took a big while to get into.

After 8 days, the new server

went online with 90% functionality
.

Today after 12 days, everything is restored.

Didn’t you have a backup?

Jein.

The PEAR package files and the REST XML file structure got synced every
4 hours to my personal server which also acts as PEAR mirror;
de.pear.php.net.

Package and website source code is
at github;
some older packages are still hosted at
svn.php.net.

What was not backed up is the website and blog database,
and the patch files attached to bugs in the tracker.
I had a manual database backup from 2015-03-xx, but nothing regular.
Luckily I was able to transfer raw MySQL database files before the
disk fully died, so nothing was lost.

Manual and API docs could be regenerated from package files and the
peardoc sources,
so there is no need to back up the rendered files.

What definitely was not backed up were all the little scripts that
e.g. cronjobs called to render the manual, the CHM files and such.
They are lost and had to be recreated.

What else went wrong?

The [email protected] people switched DNS to let pear.php.net point to my
mirror server, which went active late in 2015-11-30.
Unfortunately my server did not have a SSL certificate for pear.php.net,
so people ran into SSL issues when automatically fetching
the PEAR installer via HTTPS.

My mirror server did not contain the installer
(go-pear.phar and pear-install-nozlib.phar), so
downloading via HTTP did also fail until late 2015-11-30.

“/>

Truncated by Planet PHP, read more at the original (another 3321 bytes)

Source: Planet PHP