On the Dutch Web Alliance site today they've posted a tutorial about their use of Capifony for Symfony application deployment and how it relates to updating the "parameter.yml" file. They describe their current deployment process, how it works with the different environments and how they solved the one manually problem they had.

The actual deployment is thus dealt with by capifony. This is a plugin for capistrano written for deploying Symfony applications. [...] Capifony automatically deals with cloning the correct branch on the servers, installing dependencies through composer, migrating database versions etc etc. Basically we don't have to care about anything else. However, there is one single thing that still keeps on bugging us: when we want to upgrade to a new parameters.yml, we must do this manually. This means that our builds will break when we deploy a version that requires an updated parameters.yml until we manually solve the issue.

To get around this manual issue, they decided on creating a new Capifony task that does an upload/download of the parameters file, depending on the environment.The continuous deployment can then push or pull the file as needed in a more automatic way.

Hello friends. In this article we will be discussing automating the deployment of Laravel applications using the Capistrano tool. If you don't know what some of these things are, read on. [...] Why should we bother setting up Capistrano? Can't we just deploy to our servers by hand? Sure, maybe, but this quickly becomes annoying with anything more than a few servers, and isn't a scalable process.

He starts by laying out some of the prerequisites you'll need to get the deployment working: a Laravel application installed, some familiarity with Git/GitHub and a Linux-based system to work from. He talks about two methods of deployment, push and pull, and includes a summary (and illustration) for each. From there he starts to get into the detailed steps of setting up the deployment itself:

Protecting sensitive information (like configuration files)

Installing Capistrano as a Ruby gem

Setting up the SSH keys between systems

Setting up the receiving server

Setting up the Laravel project in a Capistrano deploy

Creating the steps in the deployment workflow

Doing the actual deployment

He includes all of the commands and configuration examples you'll need to make the deployment happen. He also finishes off with a few other things Capistrano could do for you including making a "sanity check" file and flushing memcache on deploy.

Vic Cherubini has a recent post on his site sharing for free the contents of a book he'd written previously about "Expert PHP Deployments":

In 2013 I wrote and self-published a book titled "Expert PHP Deployments". While it was not a smashing success, it sold enough copies to pay for itself, and I was happy to have a published book to my name. Unfortunately, I have not had time to market it, update it, or further improve it, so I am giving it away for free. You can read the book in its entirety below or download it as a PDF.

The book covers a wide range of topics related to deploying PHP applications including:

Environment configuration (setting up Vagrant for the developers)

Working with the Phing automation tool

Building deployments with Capistrano

Creating and configuring a production server

Ensuring the security of the server

Making the actual deployment

The post has the full text of the book in one page but you can grab the PDF if you prefer that format.

The SitePoint PHP blog has a tutorial today showing you how you can use the popular Capistrano tool to deploy Symfony-based applications. More specifically, it's focused in on one tool, Calpifony, that's a bit more tailored to what a Symfony deployment needs.

Say you have a Symfony application. At some point, you would like to deploy it to your server and show it to the world. Of course, you can do it all manually, but these days you can also choose to use a tool like Capifony. If you have developed Ruby applications in the past, you are perhaps familiar with Capistrano. Capistrano is a tool to deploy your Ruby application to your server. Capifony has been created on top of Capistrano, and is basically a collection of deployment recipes. In this article, we are going to deploy a Symfony application to a server with Capifony.

He starts off with a section giving an overview of how the Capifony tool works and how important the directory structure is. He then guides you through the installation of the tool and configuring your first simple project. He includes an example "deply.rb" configuration and walks through each piece, describing what it does and how to add some additional commands to the list. The post ends with the full updates configuration that makes the connection to the server, downloads a copy of a Git repository and executes Assetic and Bower commands on build.

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.

NetTuts.com has posted a tutorial for the Laravel users out there showing how to deploy with Capistrano, a Ruby-based automation tool used to deploy to and configure remote systems.

So you've just built a fancy web application and you're planning to put it online. This can be done in many ways. In this article, we'll cover one approach to deploy your backend system to your production server. We'll go through the following steps through the example of a Laravel application, but this can be applied to any other language or technology.

It's a pretty straight forward post, starting with what you'll need on the server and on your local machine as well as a sample "Capfile" to configure the process. There's also a bit at the end with some other things to consider like prompting for a password, running migrations and the command to do a rollback.

Most of the applications I write, are PHP based, so all of my examples will be based on that assumption, but you can re-use the ideas mentioned for software written in any other programming language. The setup [in the example] discusses just the deployment to the test project. Deployment to the production will be similar, and by the end of the article, you should understand what differences it will require.

She walks you through the creation of a new project, an example of the contents of the "base.rb" configuration file and how to create the stages (environments) to deploy to. Next up is the "recipes" themselves - the configuration steps for the deployment process. In their examples they show how to set permissions, update a database, manage asset files and a bit more to get Plesk installed on a server.

Dave Gardner has put together a guide to deploying PHP applications with the help of Capistrano, a Ruby-based deployment tool (including some example "recipes").

Capistrano is written in Ruby and offers up a basic DSL from which you can craft quite flexible deployment scripts. [...] That said, it's very flexible. In my current setup I have it deploying to multiple environments (dev, staging, production), building code (think Phing), running tests on the servers before finalising the deploy and then restarting worker processes on completion.

He starts by introducing some of the commands that you can perform with the "cap" command line client and links to an example PHP project structure you cn base your deployment off of. He also includes a bit about multi-stage deployments, tag (version) selection and the full source of his build script.

In this recent post to Theme.fm they have a guide to deploying your WordPress site (or really any sort of PHP-driven site) with Capistrano. There's some WordPress specific bits in there, but it's a good overall guide to deployment with this handy tool.

I'm not a Capistrano expert (yet) and in this post I'll try to give you an overview how to set it up and how to deploy WordPress applications (websites) in seconds. We'll work with only one server today but the principles in deploying to two or more are pretty much the same.

He starts by introducing Capistrano and talking about some of the major benefits it can bring to you and your project (most importantly - simple deployments). The tutorial helps you install Capistrano and get it set up to work with your Github repository to pull the source. The WordPress specific bit has to do with configuration files and suggests an "if" check to see if there's local config first. Also included are the updates you'll need to make to the Capistrano config file and the commands to push the latest as well as rollback to your previous version.

On the Knp Labs site there's a recent post showing you how to use Capifony (a tool designed for use with Symfony projects) to deploy your Symfony-based applications in a few easy steps.

Deploying should be an active part of your development process, but not something that gives you a headache. If deploying your entire application takes more than one command or doesn't put a smile on your face, you should keep reading. NOTE: This post will specifically cover how to deploy your Symfony2 application, but the library used here - capifony - is just as useful for deploying a symfony 1.x application.

He walks you through the simple five step process of installing and configuring the capifony tool to pull from a remote git repository, set up some shared directories and update the vendor libraries on deployment. A few more changes for the initial deployment and you'll be ready to call "cap deploy" any time you'd like to push the latest version of your application. He also points out that with version 2.0.9 and above of capifony, Doctrine database migrations are also supported. For more information on capifony, see the project's website.