Nate Turner has posted a tutorial to his site sharing a step-by-step method for creating Symfony2 development environments with Vagrant. Vagrant (and Puppet) allow you to create a scriptable setup process that creates a VM with the same settings every time, making it easier to destroy and recreate as needed.
When we use Vagrant to create new virtual development environments we avoid the very real possibility that we could mess up our personal development machines. People have used virtual machines for development for years. [...] Managing installed applications across a teams VMs is a pain. Why not just include a Vagrantfile and a few Puppet manifests instead? Instead of passing around a virtual machine a few gigabytes in size, just include your Vagrant and Puppet in a project’s source control. That’s it. In future tutorials we will be using the environment we create here to start a new virtual machine running Symfony 2 with the above command.
He walks you through each of the steps, complete with commands and configuration changes to make everything cooperate:
- Create a Symfony Project with Composer
- Setting up Vagrant
- Provisioning with Puppet / Symfony’s Requirements
- Set up a new VirtualHost
- Set Apache to run as the Vagrant user
He's also posted the complete working script over on his GitHub account.