Laravel Homestead setup on Windows 7

My attempts to install Laravel Homestead on Windows 7

I’ve got a fresh install of Windows 7.  I’ve already been using Laravel/Homestead on previous Windows 7 & 8 installations, I was looking forward to a quick install.

Immediately below I show the a step by step guide to carry out a successful install with working node on my VM.

Below that I report on what went wrong for me in case anyone else is getting the asme issues.

Guide to Installing Laravel Homestead on Windows 7

Install these versions:

  • Composer – latest verison
  • Git/Gitbash – latest version
  • Vagrant – 1.7.4 (latest version)
  • VirtualBox – 4.3.20

Run GitBash. You should by default be in your user folder ( “/c/Users/youruser/”)

composer global require "laravel/homestead"

Now ensure that Homestead is added to the main Windows PATH variable.

Add C:\Users\\AppData\Roaming\Composer\vendor\bin to the PATH Environment variable.

homestead init

(creates the homestead yaml file in “C:\Users\youruser\.homestead”)

Edit the homestead.yaml file in Windows “C:\Users\youruser\.homestead” so that we have something like this below. Note your mappings should be setup for you.

---
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/Code
      to: /home/vagrant/Code

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public

databases:
    - homestead

variables:
    - key: APP_ENV
      value: local

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar

# ports:
#     - send: 93000
#       to: 9300
#     - send: 7777
#       to: 777
#       protocol: udp

Now you should be able to add your Homestead box.

vagrant box add “laravel/homestead”

Ensure you have your RSA key setup:

ssh-keygen -t rsa -C "you@homestead"

We can now startup our Homestead box with the commmand.

homestead up

(This will install the required Virtualbox if it isn’t already loaded.)

Now we are ready to access and use our Vagrant/Homestead instance.

Homestead ssh freezes problem

Normally we should be able to use Homestead to access our vagrant homestead machine, but I’ve noticed that under Windows this freezes after a minute or so nearly every time.

My workaround for this is to use a Vagrant command instead, and as well as working, this shows that the problem lies in the Homestead SSH wrapper for Windows.

We get the name of the homestead vagrant machine by typing;

vagrant global-status

Then we can access the machine directly using

vagrant ssh 

For example:

git-bash-vagrant-global-status

From here we can now do everything we need to run Homestead.

[divider style=”none”]

[/divider]

Logged into Homestead

We can now install the Laravel installer globally:

composer global require "laravel/installer=~1.1"

As a test we can now install a Laravel Project.

laravel new Laravel

Now we ensure that the homestead.app entry is made in the Windows hosts file (c:\windows\system32\drivers\etc\hosts)

# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost
192.168.10.10   homestead.app

Now from our browser we should get the Laravel welcome screen when we visit the url http://homestead.app/

[divider style=”none” icon=”wrench”]

[/divider]

Laravel Homestead Windows 7 issues

At the time of writing,  the latest versions of the installation requirements are:

  • Composer – Self updated to latest version (still reports as 1.0-dev)
  • Vagrant – 1.7.4
  • VirtualBox – 5.0.2
  • Git (with Gitbash) – 2.5.1

To get started I use GitBash to give me a Linux type terminal on Windows.

First I used Composer to install the Homestead setup.

composer global require "laravel/homestead"

The I initialise Homestead to setup the configuration files.

homestead init

(This should create the homestead.yaml file in “C:\Users\youruser\.homestead”)

Then I attempt to add the vagrant Homestead box and I run into trouble. I typed;

vagrant box add "laravel/homestead"

Which resulted in the error;

“Vagrant is attempting to interface with the UI in a way that requires a TTY. Most actions in Vagrant that require a TTY have configuration switches to disable this requirement. Please do that or run Vagrant with TTY.”

vagrant-box-add-homstead-tty

After a good deal of searching the problem, I tried the same command at normal Windows Command line. It worked but it did give me a new choice;

command

“Which provider will you be working with”.

Considering I don’t have Vmware or hyperv on this machine I found that strange, however I chose Virtualbox and the new box added just perfectly.

I then removed Gitbash and replaced with the older 1.9.5 preview version and everything seemed to be working fine – I could now add other Vagrant boxes, but in retrospect this wasn’t the actual issue.

The choice from the Windows command line updated my Homestead.yaml file. It now contained the “provider” as below. I’ve since moved back to the latest version of Git/GitBash.

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

This issue here was that the “provider” configuration is required.  I’m not sure if thiss didn’t originally work for me because I may have copied yaml files, or if it’s a normal bug.  I can now replicate the error though if I remove the line.