Gepubliceerd op 26 oktober 2018 - Geschreven door Yoeri - In Berichten
Afgelopen week ben ik bezig geweest met het opzetten, gebruiken en voornamelijk testen van Vagrant, VirtualBox en Laravel’s Homestead.
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.
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
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.
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
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
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/yoeri/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!
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?
Klaar voor een nieuwe WordPress project?
Bel ons of stuur een mailtje!
+31 (0)6 2238 7533
ter aanvulling (stating the obvious..)
1. voor “git clone https://github.com/laravel/homestead.git” moet indien nodig nog Xcode Command-line Tools ge-update worden :
xcode-select –install
2. “bash init.sh” moet gerund worden vanuit de directory homestead
(duh!, maar ik meld het voor de absolute beginners en de volledigheid)