In a recent post to his blog Jeremy Kendall has posted a guide to deploying a PHP application with Capistrano. There's been enough changes in recent versions of the tool where information and configuration was difficult to find.
I spent quite a bit of my day yesterday trying to work out a painless, scripted, idiot-proof deployment process with Capistrano for my photo-a-day website. I've been doing a lot of work on the site lately, which means a lot of deployments, and I've been very unhappy with myself for implementing what amounts to "deployment worst practices" when it comes to my personal projects. The last time I worked with Capistrano was about two years ago, and a lot has changed since then. Capistrano v3 was released in June of 2013 and brought with it a lot of great changes, but for a guy who doesn't know ruby and relies on tutorials and Stack Overflow questions for help, the version bump brought a lot of pain as well.
He starts with a list of some of the immediate challenges he hit against including that every tutorial is wrong (because they're for v2) and that the Capistrano v3 official documentation is lacking. From there he shares the steps he followed to get the whole process working:
- Installing Ruby and Capistrano
- Preparing the configuration files for the deploy
- Server configuration/SSH forwarding
- Getting Composer to work on deploy (with a Ruby gem)
There's also a few other random helpful hints around linked files/directories and variables.