Setting up Homestead
This section will work off the existing Laravel docs to make sure your Homestead is set up correctly, as well as give you some background as to what is going on.
Getting ready
You will need a terminal application, access to the Git
command, and decent Internet. As for the terminal on Mac, I suggest iTerm, available at https://www.iterm2.com/; it really is a nice tool for something you are going to use quite often. For Windows, git for Windows https://git-for-windows.github.io/ got me going quickly both for git and a Bash such as terminal. Linux has a nice terminal to begin with, and installing git is easy. As far as Vagrant and VirtualBox are concerned, I will link you to the related sites since they do a good job at explaining how to install each of them on your system.
How to do it...
The following are the steps to set up Homestead:
- First, install VirtualBox as noted on their site at https://www.virtualbox.org/wiki/Downloads.
- Once this is in place, install Vagrant from https://www.vagrantup.com/.
At this point, Vagrant will be ready to use at the command line:
You will not really need to open VirtualBox.
Tip
For Windows users, this link helped me a lot to get started with Homestead: http://blog.teamtreehouse.com/laravel-homestead-on-windows.
- Make a folder in your home directory called
Code
with a capital C.On a Mac, this will look like—
/Users/alfrednutile/Code
. - From here, the online docs do a great job of getting you going on the final Homestead installation and setup—https://laravel.com/docs/5.2/homestead.
How it works...
When done, you will have the Homestead.yml
configuration information in the ~/.homestead
folder to modify as needed. On Mac, this would be /Users/alfrednutile/.homestead/Homestead.yml
.
Tip
Laravel Docs talk about shortcuts in the Daily Usage section at https://laravel.com/docs/5.2/homestead#daily-usage.
Also, you should have made a new folder called ~/Code
to be the base folder for all your projects. For example, my folder looks like this:
/Users/alfrednutile/Code/app1
/Users/alfrednutile/Code/app2
You can have multiple applications within your code
folder. In this example, app1
is the root folder for the app1
application, and app2
is the root folder for the app2
code. Keep in mind that the Vagrant box will later on mount this Code
folder into the /home/vagrant/Code
folder inside the Vagrant client.
Tip
I do my migration and PHPUnit work inside Homestead using the ssh
shortcut that the online documents show you. But I do a lot of work outside Homestead inside the Code/app1
directory, such as all the Git
commands and much of composer. This creates a much faster workflow for the file intense commands.
There's more...
You can, of course, manually set up your own machine for Nginx, PHP, MySQL, and all the rest, but there are a lot of reasons why the preceding one is best. On a team or alone, having your environment contained like this makes upgrading your machine, going from desktop to laptop, pushing code to production, having up-to-date libraries for new apps and older libraries for legacy apps, and more so much easier.
See also
- Laravel: https://laravel.com/docs/5.1/homestead.
- Vagrant: https://www.vagrantup.com/
- VirtualBox: https://www.virtualbox.org/wiki/Downloads