hashbangcode / vlad

Vlad - Vagrant LAMP Ansible Drupal
173 stars 53 forks source link

PHP Versions #130

Closed philipnorton42 closed 9 years ago

philipnorton42 commented 9 years ago

I was playing about with PHP versions this weekend on Vlad and noticed something interesting. With our default box we install Ubuntu 12 with the option of installing PHP 5.3 or 5.4, the default being 5.4.

Ubuntu 14 comes with PHP 5.5 as a default, but we override this to install PHP 5.4 on the box. So I was toying with allowing the user to select between different versions of PHP on different operating systems and hit upon the idea of a "default" setting. When the user inputs "default" then Vlad will install whatever version of PHP comes with that system, this can be overridden with a specific version.

There tend to be two 'flavours' of PHP configuration on Ubuntu so it shouldn't be too hard to pick one or the other. This is stuff like where all the ini files are kept and what syntax is used. The easiest way of getting PHP on the box is to install it through a application service like apt or yum so it makes sense to use these, but not all versions of operating systems will support all versions of PHP.

What we really need is a bit of a matrix that will show compatibility with different versions of PHP on different systems:

PHP Version Ubuntu 12 Ubuntu 14 Centos 6.5
5.3 X X
5.4 X X X
5.5 X

With this in mind I think it's best to simplify the PHP role into the two flavours available. So if the certain conditions are met then one flavour is used, else we use the other one.

Does all this make sense? I think I'm just looking for a sanity check :)

mbarcia commented 9 years ago

Hi! I've updated PHP versions (and other stuff) for Ubuntu Trusty, choices being 5.3 and 5.4 for Precise, and 5.5 and 5.6 for Trusty. I'll add a pull request so you can check the code there, HTH

mbarcia commented 9 years ago

Done creating the pull request. Specifically, you can take a look at: https://github.com/mbarcia/vlad/commit/408f990ac596a36525140d3517c284fdeaf3dbe7 and here as well https://github.com/mbarcia/vlad/commit/a5d68fd78778b911b7270a6acb2af7042764bdee

dixhuit commented 9 years ago

Sounds sane to me.

Good to hear from you @mbarcia!

philipnorton42 commented 9 years ago

Thanks for the info @mbarcia! I'll definitely take a look at what you've been doing :)

philipnorton42 commented 9 years ago

Righto. I've been doing lots of changes and testing here and could really use some help in making sure everything works correctly. I also managed to include PHP 5.6 whilst I was at it.

All changes are now in the dev branch.

I also found some other bugs that I fixed whilst working on the PHP versions.

kevinquillen commented 9 years ago

I think it would be best to add in 5.3, 5.4, 5.5, and 5.6.

5.6 is the final major release of PHP - the next will begin with version 7. So with 5.6, that should satisfy 5.x'ers while we wait for 7.

philipnorton42 commented 9 years ago

I've done some more work on this issue this week and allowed the centos box to have different versions of PHP installed. I've also upped the version of centos to 6.6 (previously 6.5) as this was causing a few repo not found errors.

Here are the versions of PHP available on different systems:

PHP Version Ubuntu 12 Ubuntu 14 Centos 6.6
5.3 X X
5.4 X X
5.5 X X
5.6 X X

I've set the default system to be Ubuntu14 with PHP 5.5. I'll leave this issue open for a couple of days to allow others to test but I think this draws a line under PHP versions on Vlad. Ready for a 1.0 release :)

philipnorton42 commented 9 years ago

I'm going to close this now as version 1.0 has been released. Any PHP errors can be opened as separate bugs :)