My apologises for even thinking of posting such a topic to the WMRUG group forum, but after last night’s talk, I just wanted to offer up some PHP alternatives to some of the technologies being discussed - not because I think PHP is better (on a personal note, I’m starting to dislike PHP more and more each day), but simply because I know these tools exist, and this thread might be of help someone at some point in the future.
The first deployment method discussed last night was Heroku. More than just deployment, of course, Heroku is (I think the term is) Platform as a Service (or PAAS), and lets you deploy within minutes without needing to worry about server set-up, etc. It supports Ruby, Clojure, Python et al… but not, of course, not PHP.
This is where Fortrabbit comes in. Much like Heroku, you define an app, add whatever processes and services you need to it, then use git to push for deployment. Much like Heroku’s ability to run migrations, etc… Fortrabbit is also able to perform whatever actions are required upon each deploy as defined by their own
fortrabbit.yml config file, which in my case (for a Laravel 4 project) looks like this:
--- version: 1 strategy: fullsync excludes: - vendor/ - app/storage/ composer: mode: always method: install post-deploy: script: artisan args: - migrate
The second was Cloud66, which lets you provision servers, and then deploy to them. The PHP alternative for this is Laravel Forge. Built for Laravel (duh) this reportedly does support other PHP projects (especially ones based on Composer), and much like Cloud66, lets you provision the server you need on Linode, DigitalOcean, AWS, & Rackspace. I’ve not actually used this, so I can’t comment on how well it works, alas.
One of the things which we didn’t talk about last night was Capistrano. Although originally built as a tool for deploying Rails apps, from version 3 onwards it has been made more agnostic to support other projects (for example, we use it for Magento). The (not really a) problem is you need Ruby to run it - but why go to the trouble is setting up Ruby, when you’re able to do the same using PHP… This is where Rocketeer steps in.
Now I would love to tell you that Rocketeer kicks ass, and that anyone that needs intelligent deployment for PHP should be using it, but the truth is, when I spent time some investigating different deployment methods for use at work, I wasn’t actually able to get Rocketeer to work (and as you might have guessed, we ended up using Capistrano).
Anyway, there are others which exist, such as the PAAS AppFog, which started life supporting only PHP (under the guise PHPFog), but has since matured and now additionally supports Java, Python, Node, Ruby, MySQL, MongoDB and PostgreSQL and more, so if you have experience with any off these tools, please let us know