How to setup a WordPress local environment with Laravel Homestead

I was switching between working on a Laravel project and working on updating the theme for this site and I found myself starting Local by Flywheel, when I realised that I have a Homestead machine running in the background. So I figured that I should make WordPress work on Homestead as well. As it seems, it’s not all that complicated.

I develop on a windows machine so your folder structures may differ a bit, but this is how this looks for me:

  • homestead/ — the location of the homestead machine
  • wp/ — local root of the WordPress instance
  • laravel/ — local root of the Laravel instance

The initial setup of the homestead machine is as follows:

  • move inside the homestead/ folder, run the composer init command and run through the setup.
  • run composer require laravel/homestead --dev
  • run vendor\\bin\\homestead make ( or if you are on a Mac php vendor/bin/homestead make )

Now we move to edit the Homestead.yml file:

  • the first things I usually set differently are
memory: 4096
provider: hyperv
ssl: true
  • next we map the wp/ and laravel/ to the internal homestead directories:
folders:
-
map: 'E:\Projects\podcast-directory'
to: /home/vagrant/code/podcast
-
map: 'E:\Projects\wp-main'
to: /home/vagrant/code/wp-main
  • next we map the sites
sites:
-
map: podcast.test
to: /home/vagrant/code/podcast/public
-
map: wp.test
to: /home/vagrant/code/wp-main
  • next we set up the databases
databases:
- homestead
- wp-main

And the last step would be to run a vagrant up , and that’s pretty much it.