This article was written by Richard Fields, Senior Developer at Endertech.
Laravel Homestead is a prepackaged Vagrant box and configuration that can be used for PHP development. The box itself includes all of the essentials for rapid web development. That includes Ubuntu, PHP, Nginx, MariaDB, Composer, Git, and money more helpful tools. I have been using Homestead for my dev environment for about 6 months now and I am loving it. It has been a great help when developing an application with a team of people using a variety of development environments.
Homestead allows all of us to work in the same development environment thus eliminating any potential problems due to the differences in operating systems. Once everyone on the team has Homestead installed, ensuring that everyone has the same development environment is as easy and sharing a single configuration file (Homestead.yaml) and running a single command (“vagrant up”).
Before I switched to homestead, I was using MAMP Pro. I made the switch to Homestead for a couple of reasons. The first is being able to develop a project in the same environment as my team as mentioned above. The second is I like the idea of developing my application in an environment that is close to the environment that the application will be deployed to. This helps to mitigate any potential configuration problems when it comes time to deploy the application to a live production environment. Finally, its free! MAMP Pro has a licensing fee whereas the Homestead repository publically available on Github.
At the time of this writing, the laravel/homestead virtual box is the second most popular Vagrant box. I have tried other prepackaged development environments, but I have stuck with Homestead because of its ease of use and the fact that it is a very general purpose development environment. I have many different php frameworks running on a single Homestead instance. These include Symfony, Magento, and WordPress. Homestead handles all of them with ease. Homestead allows me to not have to worry about installing and configuring piece of software on my Mac, which may cause trouble elsewhere. For instance, not having to install and configure Apache Web Server, PHP, and MySQL locally saves time and can avoid issues with having such advanced pieces of software running locally. The great thing about Homestead is if you break something, you can simply destroy the box and start again with a clean installation. Homestead is great because it just works.