I have a set of recipes that I use to build the environments from the local developer desktop up to production. The background is provided in my last post.
One of the differences between the Vagrant environment and the other ones, is that HTTP apps have their web server DocumentRoot pointing to the /vagrant directory. This directory is available later at boot time, after the web server is started (at least with Apache in CentOS, I don’t remember in Ubuntu right now). The web server doesn’t start because the directory isn’t available.
To fix this, I use Upstart and its event system. Looks at this file (/etc/init/apache-vagrant.conf):
start on vagrant mounted
task
script
service httpd start
end
This script catches the event vagrant-mount, that is triggered when the /vagrant folder is ready to use. In this way, you execute the command to start Apache.
Let me know if you find a better way to do this.