Homestead unter Windows

Mit Laravel/Homestead erhält der geneigte Entwickler einen voll ausgestatteten Webzeugkasten ‚Out of the Box‘. Eine perfekt aufeinander abgestimmte lokale Entwicklungsumgebung mit allen Tools und Konfigurationen, die das Entwicklerherz begehrt und zudem eine spätere Portierung in die Produktiv-Umgebung zum Kinderspiel macht.

Ohne großes Vorspiel möchte ich hier beschreiben wie man Laravel/Homestead unter Windows zum Laufen bekommt. Man erhält lokal einen virtuellen Ubuntu Webserver, optimiert für die Entwicklung von PHP-basierten Webseiten. Man besorge sich zunächst per Download:

– VirtualBox von Oracle
– Vagrant von HashiCorp
– meine Lieblingskonsole cmder
– einen vernünftigen Texteditor seiner Wahl

Das Setup

VirtualBox und Vagrant werden mit den vorgegebenen Grundeinstellungen installiert und cmder in der Full-Version nur ausgepackt. Optional empfehle ich die Installation von Sublime Text 3 und die Eintragung dessen Programmpfades in die Umgebungsvariablen um später in der Kommandozeile auf das Kürzel subl zugreifen zu können.

Hinweis: VirtualBox benötigt die aktivierten Hardware-Virtualisierungsfeatures (VT-x) des Prozessors, falls noch nicht geschehen müssen diese im BIOS aktiviert werden. Tipp: Unter Windows 10 die Shift-Taste gedrückt halten während man auf „Neu starten“ klickt. Dadurch wird der erweiterte Systemstart aktiviert und man kann ins BIOS booten.

Homestead

Ist alles installiert und der Rechner einmal neu durchgestartet öffnet man cmder und holt sich über den Befehl:

vagrant box add laravel/homestead

die Vorlage für den virtuellen Webserver auf die Festplatte. Das kann einen Moment dauern, die VM ist knapp einen GB groß.

Ich arbeite gern mit meinen Projekten im Userverzeichnis unter C:\Users\<username>\Repos. dort lege ich mit

mkdir Repos && cd Repos

eine neues Verzeichnis an und wechlse auch gleich dort hinein. Hier sollen später all meine Projektrepositorys liegen. Dank cmder haben wir GIT gleich mit am Start und können uns das Homestead-Repo von Github klonen.

git clone http://github.com/laravel/homestead.git Homestead

Ist der Download abgeschlossen wird ins Verzeichnis Homestead gewechselt und initialisiert.

cd Homestead && init.bat

Ist alles erfolgreich durchgelaufen, finden wir einen Ordner .homestead in unserem Userverzeichnis, der u.a. die Konfigurationsdatei Homestead.yaml enthält.

SSH Keygen & Homestead.yaml

Für die Anmeldung auf unserer VM verwenden wir SSH und als Anmeldemethode ein SSH-Schlüsselpaar. Das wir uns ohne Passphrase mit den Grundeinstellungen im vorgeschlagenen Ordner generieren lassen über:

ssh-keygen -t rsa -C "meine@email-adresse.de"

Anschließend öffnen wir die Homestead.yaml zum Bearbeiten in Sublime Text mit dem schicken Befehl:

subl %userprofile%\.homestead\Homestead.yaml

Keine Panik, die Konfiguration ist im wesentlich so zu belassen wie sie da steht. Die Daten müssen natürlich nicht in den Webroot hin- und herkopiert werden, die Daten liegen in einem Ordner auf unserer Festplatte und werden nur in den Webroot auf der VM verlinkt. Änderungen werden so in beiden Richtungen automatisch synchronisiert. Das Mapping des Daten-Verzeichnisses regelt die Folders-Sektion. Die Tilde (~) steht in der Linux-Welt für das Home-Verzeichnis des Users, unter Windows ist damit das %userprofile% (C:\Users\<username>) gemeint. Der Server kann natürlich über einen URL angesprochen werden, wobei die Sites-Sektion regelt in welchen Unterordner der URL gerootet wird.

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

sites:
 - map: laravel.dev
   to: /home/vagrant/Repos/l53/public

Der Aufruf im Browser von http://laravel.dev wird auf der VM in das Verzeichnis /home/vagrant/Repos/l53/public gerootet. Dieses Verzeichnis befindet sich (später) im oben erstellten Repos-Ordner in unserem User-Verzeichnis.

Damit nun unser lokaler DNS-Verweis funktioniert und laravel.dev tatsächlich zu 192.168.10.10 auflöst, wird kurzerhand die hosts-Datei angepasst. Hierfür wird ein Texteditor als Administrator gestartet und die Datei unter C:\Windows\system32\drivers\etc\hosts um folgenden Eintrag ergänzt und gespeichert:

192.168.10.10   laravel.dev

Das war auch schon die ganze Einrichtung.

Start & Stopp

Wir wechseln im cmder in unser Homestead-Verzeichnis. Zur Erinnerung C:\Users\<username\Repos\Homestead und starten die VM mit dem Befehl:

vagrant up

Die erste Einrichtung dauert etwas länger und wenn keine Fehlermeldungen auftauchen kann eine SSH-Verbindung zur VM aufgebaut werden um das Projektverzeichnis anzulegen. Hierfür wird der SSH-Client des cmder verwendet:

vagrant ssh

alternativ kann auch eine normale SSH-Verbindung zum Localhost aufgebaut werden, der Port ist 2222.

ssh vagrant@127.0.0.1 -p 2222

Nun befinden wir uns in der Shell der VM und haben dort Zugriff auf GIT, Composer und z.B. den Laravel-Installer. Wer aufmerksam mitgelesen hat wird bemerkt haben, dass wir zwar einen Repos-Ordner haben aber der Projektordner l53 noch nicht vorhanden ist. Diesen Installieren wir kurzerhand mit dem Befehl:

cd Repos && laravel new l53

Denn es handelt sich um eine frische Installation des Laravel-Frameworks in der Version 5.3. Der anschließende Test im Browser zeigt die Startseite von Laravel bei dem Aufruf von http://laravel.dev

Wenn wir unsere Arbeit am System beendet haben, wechseln wir wieder in den Homestead-Ordner und beenden die VM mit dem Befehl

vagrant suspend

Dadurch wird die VM in den Ruhezustand versetzt und der Rechner kann problemlos ausgeschaltet werden.

Fazit

Wer die Kommandozeile nicht scheut und ein paar Umwege bei der Einrichtung in Kauf nimmt erhält mit Laravel/Homestead ein mächtiges Werkzeug an die Hand. Und spart sich obendrein bei der Einrichtung und vor Allem bei der Pflege der ganzen Tools u.a. Git, PHP, Nginx, MySQL, Sqlite3, Postgres, Composer, Node (With Yarn, PM2, Bower, Grunt, and Gulp) eine Menge Zeit und hält sein System noch sauber. Spätestens wenn man an mehreren Rechnern oder im Team mit mehreren Leuten zusammen an etwas entwickelt, kommt man um Vagrant bzw. Homestead nicht mehr herum. Denn nur die Codebasis mit GIT oder SVN synchron zu halten reicht bei der Fülle an Tools und unterschiedlichen Versionen längst nicht mehr aus.

2 Gedanken zu „Homestead unter Windows“

  1. Ich freue mich über jeden Beitrag aus der deutschen Laravel Community. Schade, dass es doch relativ wenige sind.

    Eines der beliebtesten PHP Frameworks und trotzdem ist in Deutschland relativ wenig los.

    Bleibt am Ball 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.