Ubuntu 16.04, CentOS 7, PHP 7.1 support added, Debian and Ubuntu 12.04 support dropped post

tl;dr:

  • Ubuntu 16.04 64-bit and 32-bit support added
  • CentOS 7 support added
  • Ubuntu 12.04 support dropped
  • Debian support dropped
  • PHP 7.1 support added
  • Major Puppet code refactor
  • All boxes upgraded

New OS support

Ubuntu 16.04 and CentOS 7 both came out several months ago. I have not wanted to add support for these to PuPHPet.com until recently because I needed all repos for all packages PuPHPet uses to update.

Now that the repos have caught up, I took the dive and created the base boxes and updated the Puppet code to work with the new versions.

Ubuntu 16.04 is the only distro on PuPHPet.com with a 32-bit box.

The Ubuntu 16.04 64-bit box has also been made the default selection for local VMs.

Dropped OS support

With the new OS support the amount of distros on PuPHPet.com ballooned, as did the amount of work required for maintenance and testing.

With that in mind, I decided to drop support for Ubuntu 12.04 and Debian.

Ubuntu 12.04 was an easy choice - it is now 4 years old and 2 versions behind stable LTS. You should really consider upgrading to 14.04 at least. Repos for up to date packages for this distro were becoming harder and harder to find, with most package maintainers having moved on to 14.04 long ago.

Dropping Debian was not as easy as Ubuntu 12.04, but still necessary. While Debian is a fine, stable system, it is far too hard to keep it up to date with the other distros.

For example, most updated packages come from DotDeb which does not have support for beta versions of software, like PHP 7.1 (at the time of this writing). It also occasionally goes down and I had resorted to keeping a mirror of it on my own servers.

For Apache 2.4 PuPHPet depended on a single source, d7031.de. It is the only repo I have been able to find that has Apache 2.4 for Debian Wheezy. It also recently went down for upwards of a week, breaking all new Debian PuPHPet boxes.

Attempting to upgrade Apache from official Debian repos upgrades the whole system to Jessie, which is not ok.

Some packages simply would not work with Debian Wheezy at all, due to severely outdated dependencies that did not have updated versions available for the distro.

Aside from that, having to support 3 distinctly different distros, each with their own way of handling config files, was simply too much work.

Upgrade your boxes!

If you have previously created an Ubuntu 14.04 or CentOS 6 box, you must upgrade your box via Vagrant.

The easiest way is to simply remove the downloaded box from your system and let Vagrant download the new versions. The commands are:

vagrant box remove puphpet/ubuntu1404-x64
vagrant box remove puphpet/centos65-x64

The next time you vagrant up the new version will be downloaded.

PHP 7.1 support added

PHP 7.1 is now in RC status and is more or less stable (NOT FOR PRODUCTION!).

You may now spin up a new box and test it out for yourself. All currently supported distros have PHP 7.1 support!

The default PHP version has been updated to 7.0 in the GUI.

MySQL 5.5 support dropped

It was old and not found in the official MySQL repos. Upgrade to 5.6 or 5.7.

Major refactoring of Puppet code

For you Puppet-heads interested in this sort of thing, some major reshuffling and rewriting has occurred.

Previously the Puppet code was split between the PuPHPet repo itself, and the puppet-puphpet repo. All Puppet code has now been moved into puppet-puphpet.

This is a huge step forward proper versioning support since the GUI no longer needs to be kept up to date with the puppet-puphpet. If you know the git commit of the puppet-puphpet repo you can simply check it out yourself. There is still some work needing done but this is a major part of the effort.

In addition, all my Puppet code has been rewritten to be, imho, a bit easier to understand and work with. I am still not as comfortable with immutable Puppet code as I am with PHP, but I feel I am maturing as a Puppet developer and my code is becoming a bit better over time. I am also in the very early stages of adding tests to my Puppet code.

All 3rd party modules have also been updated, mostly for CentOS 7 support.


With big changes come the very real possibility of new bugs. I have tested just about everything but time has shown me, again and again, that I miss something and people encounter them. Please forgive any bugs you may run into and open a new GitHub issue!

PuPHPet has become more popular than I ever imagined it would be. I honestly believed that maybe 10 people would find the project useful, and now it has over 3,600 GitHub stars and the boxes have millions and millions of downloads. That is humbling and scary!

That said, PuPHPet remains and will continue to be a completely open-sourced MIT-licensed project. If you see something, fix something!

Have fun, learn something!

Juan Treminio

Categories: new-features, dropped-support