Vagrant, VirtualBox en Laravel’s Homestead

Vagrant en Homestead voor Laravel development!

Afgelopen week ben ik bezig geweest met het opzetten, gebruiken en voornamelijk testen van Vagrant, VirtualBox en Laravel’s Homestead.

Wat is Vagrant?

Vagrant is een tool waarmee je binnen enkele minuten een volledige virtual server kan opzetten. Door gebruik te maken van 1 configuratie bestand en de aanwezigheid van veel bestaande boxen kan je iedere omgeving nabootsen.

Vagrant installeren

Voordat we Vagrant gaan installeren hebben we een “backend provider” nodig. Hiervoor gebruik ik VirtualBox, voornamelijk omdat het gratis is ;) Je kan ook kiezen voor Hyper-V of Docker, hiervoor zit standaard support in Vagrant. De laatste release van VirtualBox kan je hier downloaden. Volg de installatie instructies van VirtualBox.

Nu we VirtualBox geïnstalleerd hebben kunnen we Vagrant hier downloaden. Na het runnen van de installer is het command “vagrant” automatisch beschikbaar in de terminal (het wordt toegevoegd aan de PATH). Om te checken of Vagrant geïnstalleerd en of we de laatste versie hebben kunnen we het volgende command in de terminal typen:

vagrant version

Als het goed is krijg je een vergelijkbare melding:

Installed Version: 2.1.5
Latest Version: 2.2.0

Homestead Vagrant Box installeren

Nu we VirtualBox en Vagrant geïnstalleerd hebben kunnen we de eerste virtual machine ofwel “box” gaan deployen. Vagrant heeft een repository met een enorm aantal geconfigureerde boxen, deze kan je hier vinden: Vargrant Boxes

Wij gaan de Homestead voor Laravel  Box (laravel/homestead box) gebruiken. Het toevoegen van een box aan Vagrant is heel eenvoudig, open de terminal en type:

vagrant box add laravel/homestead

Vagrant download nu de box met alle dependancies van hun repository, dit kan even duren, de box is namelijk bijna 1,5GB.

Bij mij ging dit de eerste keer niet goed, ik kreeg een foutmelding. Het bleek dat mijn internet verbinding even was weggevallen. Het gaat soms ook fout als je Vagrant versie niet up-to-date is. Let daar dus op. Poging 2 ging wel goed.

Homestead installeren via Git

De makkelijkste manier om hierna Homestead te installeren is via Git. Wat wel belangrijk is, is dat je even goed nadenkt over een handige folder structuur. Ik heb de volgende setup gekozen:

/Users/yoeri/projects
- /homestead
- /public
-- /index.php

Ga naar het directory waar je Homestead wil installeren, in mijn geval:

cd /Users/yoeri/projects

Clone de Repo van Homestead

git clone https://github.com/laravel/homestead.git

Nu is het tijd om Homestead te initiëren. Tijdens het initiëren wordt het “Homestead.yaml” bestand aangemaakt. Hierin gaan we zo nog wat aanpassingen doen. Voer het volgende commando uit:

// Mac / Linux...
bash init.sh

// Windows...
init.bat

Homestead configureren via Homestead.yaml

Nu gaan we Homestead configureren via de config file “Homestead.yaml”. Dit is de primaire config file voor Homestead (Homestead.json is de fallback). In mijn voorbeeld kan je de Homestead.yaml file hier vinden:

/Users/yoeri/projects/homestead/resources/Homestead.yaml

Homestead lokaal gebruiken

Ik wil Homestead alleen lokaal gebruiken, daarom moet ik een paar aanpassingen doen Homestead.yaml:

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

authorize: /Users/yoeri/.ssh/id_rsa.pub

keys:
    - /Users/yoeri/.ssh/id_rsa

folders:
    - map: /Users/yoeri/projects
      to: /Users/yoeri/vagrant_start/projects

sites:
    - map: homestead.local
      to: /Users/yoeri/vagrant_start/projects/public

databases:
    - homestead

Daarna moet je ook je hostfile aanpassen. De entry onder sites (homestead.local) moet worden toegevoegd:

127.0.0.1  homestead.local

Tot slot wil ik graag http://homestead.local kunnen bezoeken in plaats van http://homestead.local:8000 aan te roepen. De port moet dus nog even naar 80 worden gezet. Dit kan je aanpassen in homestead.rb:

/Users/dekker/projects/homestead/scripts/homestead.rb

Zoek even naar “# Default Port Forwarding” (bij mij op line 100) en pas de volgende settings aan:

default_ports = {
    80 => 8000,
    ...

default_ports = {
    80 => 80,
    ...

Om de box te starten zorg je dat je in je Homestead directory zit en voer je het volgende command uit:

vagrant up

That’s it!

Als je aanpassingen doet in je Vagrantfile, Homestead.yaml of homestead.rb voer dan even de volgende commands uit zodat alle wijzigingen worden doorgevoerd:

vagrant reload --provision

Als je nu naar http://homestead.local/ gaat zou je de inhoud van je index.php file moeten zien!

Gepubliceerd op 26 oktober 2018 - Geschreven door Yoeri - In Blog

Meer lezen...


WordPress website verhuizen naar een ander domein, hoe doe je dat? 11 juni 2018

Lees artikel

WordPress als CMS voor je website? 1 mei 2018

Lees artikel

AVG/GDPR – Nieuwe privacy policy nodig? 13 april 2018

Lees artikel

De nieuwe privacywetgeving AVG (GDPR) voor WordPress 13 april 2018

Lees artikel

Een nieuwe WordPress website in 2018?


Wij helpen je graag! Bij 3eighty hebben we al veel toffe WordPress websites en WooCommerce webshops gebouwd voor onze klanten. We nemen ons werk serieus en zijn trots op wat we maken. Ben je benieuwd naar de mogelijkheden en prijzen voor een WordPress website of wil je zien wat gemaakt hebben?

Let's Get In Touch!


Ready for a new project? Give us a call or email us!

+31 (0)6 2238 7533