Homestead unter Windows installieren

Was ist Homestead?

Homestead ist eine Softwaresammlung (Box) für einen virtuellen Computer. Dieser läuft auf deinem Windows-PC über eine Virtualisierungssoftware (beispielsweise VirtualBox). Er dient als Webserver und hat Ubuntu als Betriebssystem. Ein paar Vorteile einer solchen virtuellen Maschine sind:

  • nur wenig Software muss auf deinem System installiert werden
  • die virtuelle Maschine ist fertig konfiguriert => kein/wenig Konfigurationsaufwand
  • dein eigentliches Betriebssystem bleibt „sauber“
  • Man entwickelt nah an der späteren Produktivumgebung
  • ungenutzte Maschinen werden einfach gelöscht

Solche Boxen gibt es in verschiedenen Ausführungen. Andere Varianten sind zum Beispiel ScotchBox. Homestead zeichnet sich dadurch aus, dass die enthaltene Software speziell auf Laravel zugeschnitten ist. Es können aber auch andere Frameworks oder sogar CMS (z.B. WordPress) genutzt werden.

Was ist drin?

Folgende Software ist bei Homestead out-of-the-box installiert:

  • Ubuntu 16.04
  • Git
  • PHP 7.1
  • Nginx
  • MySQL
  • MariaDB
  • Sqlite3
  • Postgres
  • Composer
  • Node (With Yarn, Bower, Grunt, and Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Mailhog
  • ngrok

Schematische Darstellung

Homestead als schematische Darstellung

Installation

VirtualBox

VirtualBox dient sozusagen als virtueller Computer. Auf diesem läuft dein Homestead. Du hast dann deinen eigenen kleinen, fertig konfigurierten Linux-Webserver.

Das Programm lädst du dir direkt auf der Seite von VirtualBox herunter. Unter dem ersten Punkt (VirtualBox X.X.XX platform packages) wählst du die Option Windows hosts. Nach dem Download noch installieren. Fertig.

Vagrant

Vagrant ist ein Art Framework für virtuelle Maschinen. Entwickler können sich mit Vagrant ein Betriebssystem anlegen, dass alle benötigten Programme vorinstalliert hat. So spart man sich für ein neues Projekt den langwierigen Einrichtungsprozess.

Lade dir Vagrant direkt auf vagrantup.com herunter und installiere es. Nach der Installation wirst du deinen PC neu starten müssen. Danach geht es weiter mit Git.

Git

Dieses Programm benötigst du, um dir im Verlauf der Einrichtung ein Software-Bundle von GitHub.com herunterzuladen. Gehe auf git-scm.com und lade dir das Programm runter. Führe anschließend die Installation durch. Belasse dabei alles so, wie es dir vom Installer vorgeschlagen wird. Außerdem enthält das Paket auch die GitShell, eine Alternative für die Eingabeaufforderung. Im weiteren Verlauf werden wir mit der GitShell arbeiten.

Homestead

Öffne nun die GitShell, die du im vorherigen Schritt installiert hast. Gib nun folgenden Befehl ein:

Im weiteren Verlauf wirst du nach einem Provider gefragt. Wähle die Option „virtualbox“. Nun wird Homestead heruntergeladen.

Für die nächsten Schritte ist es wichtig, dass du dich mit der GitShell in deinem Benutzerordner befindest. Das ist in der Regel C:/Users/dein-Benutzername . Mit folgendem Befehl wechselst du in dein Benutzerverzeichnis:

Nun können wir uns das benötigte Paket von GitHub herunterladen:

Wenn du oben stehende Befehle ausgeführt hast, ist Homestead auch schon installiert. Im folgenden gehen wir nun an die Einrichtung.

Lasse die GitShell gleich offen. Diese brauchen wir später noch.

Homestead unter Windows einrichten

Kommen wir nun zur Einrichtung. Hier stehen und folgende Aufgaben bevor:

  • ssh-Zertifikat erstellen (nur bei Bedarf)
  • Projektordner verlinken
  • virtuelle Maschine starten
  • Sites anlegen
  • virtuelle Maschine rekonfigurieren
  • Windows hosts-Datei anpassen

SSH-Zertifikat erstellen

Dieser Schritt ist optional. Zunächst musst du überprüfen, ob du bereits über die notwendigen Dateien verfügst. Gehe dazu in deinen Benutzerordner (z.B. C:/Users/Benutzername ). Du solltest nun einen Ordner .ssh  sehen. Dieser sollte zwei Dateien beinhalten, id_rsa  und id_rsa.pub .

Wenn dies der Fall ist, kannst du mit dem nächsten Schritt weitermachen.

Solltest du weder den Ordner noch die zwei Dateien haben, gibst du in die GitShell folgenden Befehl ein:

Die beiden Fragen bestätigst/überspringst du einfach mit Enter . Du musst also keine Angaben machen. Damit wäre dieser Schritt auch schon abgeschlossen.

Projektordner verlinken

Öffne nun deine Konfigurationsdatei für Homestead ( Homestead.yaml) im Homestead-Ordner. Hier müssen wir nun festlegen, welche Ordner mit der virtuellen Maschine synchronisiert werden sollen. Dazu scrolle bis zum Punkt folders  und passe den Eintrag wie folgt an:

Kurz gesagt, wird der Inhalt von C:/Users/Benutzername/Projekte  mit dem Ordner /home/vagrant/projects  der virtuellen Maschine synchronisiert. Das funktioniert in beide Richtungen. Lokale Änderungen werden für die virtuelle Maschine übernommen und umgekehrt.

Du kannst natürlich einen beliebigen anderen Ordner angeben. Wenn einer deiner Ordner Leerzeichen im Namen hat, musst du das Verzeichnis in Anführungszeichen schreiben:

Maschine erstmalig starten

Nun starten wir Homestead zum ersten Mal. Vergewissere dich, dass du mit der GitShell immer noch im Homestead-Ordner bist. Gib nun  vagrant up  ein.

Logge dich jetzt per SSH auf deiner virtuellen Maschine ein. Das geht einfach, indem du in die GitShell vagrant ssh  eingibst.

Sites anlegen

Für unser Beispiel installieren wir uns Laravel. Das Tolle ist, dass die Homestead-Box alle nötigen Programme mitbringt (siehe oben). Von daher musst du dir auch kein Composer, PHP oder anderes auf deinem Computer installieren.

Das Projekt legen wir direkt über den SSH-Zugang an. Warum? Es gibt Programme, welche beispielsweise eine bestimmte PHP-Version voraussetzen. Auf der virtuellen Maschine läuft PHP 7.1, auf deinem Computer vielleicht nur PHP 5.6.9. Installierst du Pakete „lokal“ und nicht direkt über Homestead, könnten Abhängigkeiten falsch gesetzt werden. Aus diesem Grund solltest du auch alle Laravel-Befehle per SSH in der Box ausführen.

Du bist bereits per SSH eingeloggt und solltest dich normalerweise im Ordner /home/vagrant  befinden. Wechsle nun in den projects-Ordner:

Nun laden wir die neuste Version von Laravel:

Nach der Installation gibst du exit  ein und beendest somit die SSH-Sitzung.

Jetzt müssen wir das Projekt als eigene Site in der Homestead.yaml  anlegen. Dazu passt du die Datei wie folgt an:

Wie du siehst, geben wir unserem Projekt eine eigene Domain. Die ist wieder frei wählbar. Allerdings sollte daraus hervorgehen, dass diese nur lokal erreichbar ist (denkbar wäre also auch .dev oder .test).

Virtuelle Maschine rekonfigurieren

Nun müssen wir unsere virtuelle Maschine neustarten. Dazu gibst du Folgendes in die GitShell ein (du musst dazu im Homestead-Ordner sein):

Während die Box sich neu konfiguriert, kümmern wir uns um die hosts-Datei.

Windows hosts-Datei anpassen

Hier müssen wir nun noch unsere Domain „registrieren“. Gibst du die Domain jetzt im Browser deiner Wahl ein, versucht dieser, die Domain im Internet zu finden (was ja nicht möglich ist). „Registrieren“ wir die Domain in der hosts-Datei, wird die Anfrage intern umgeleitet. In unserem Fall wird die Anfrage an Homestead weitergegeben. Anhand der Konfigurationsdatei weiß Homestead nun, dass die angefragte Website im Ordner xyz liegt. Mehr dazu in der Grafik weiter oben.

Starte nun einen Editor deiner Wahl mit Admin-Rechten (Rechtsklick auf das Icon -> Als Administrator ausführen). Öffne die Datei unter C:\Windows\System32\drivers\etc . Eventuell musst du noch auswählen, dass dir alle Dateien angezeigt werden:

Zum Öffnen der hosts-Datei müssen alle Dateien sichtbar sein

Ergänze die Datei am unteren Ende wie folgt:

Die richtige IP steht in der Konfigurations-Datei, ist aber standardmäßig 192.168.10.10 . Speichern und schließen.

Das war es. Dein Projekt sollte nun im Web-Browser deiner Wahl unter http://laravel.app erreichbar sein.

Du kannst deine Projektdateien ganz normal über deinen Projektordner unter Windows bearbeiten. Alle Dateien werden automatisch mit der virtuellen Maschine synchronisiert.

Die Zugangsdaten für die Datenbank lauten:

  • Benutzer: homestead
  • Passwort: secret
  • Host: 127.0.0.1
  • Datenbankname: der von dir vergebene Name

Zusammenfassung

Ist Homestead erstmal konfiguriert kannst du einfach neue Projekte hinzufügen. Halte dich nur an folgende Schritte:

  1. Projekt in der Homestead.yaml anlegen
    1. neue Site unter sites anlegen ( - map: xyz.app | to: /home/vagrant/projects/projektname )
    2. Gegebenenfalls Datenbank unter databases  hinzufügen
  2. Maschine neu konfigurieren
    1. Beim Neustart: vagrant reload --provision  oder …
    2. … beim Hochfahren: vagrant up --provision
  3. hosts-Datei ergänzen
    1. Mit Admin-Rechten öffnen (Rechtsklick auf Editor-Icon -> Als Administrator ausführen)
    2. Datei C:\Windows\System32\drivers\etc\hosts  öffnen
    3. ergänzen um 192.168.10.10 xyz.app

Fazit

Auch wenn die Ersteinrichtung im ersten Moment etwas komplex und abschreckend wirkt, ist Homestead eine weitaus bessere Alternative zu XAMPP, MAMP usw. Du hältst deine Projekte und die dafür nötige Software klar getrennt von deinem eigentlichen System. Geht etwas schief, löschst du einfach die virtuelle Maschine und setzt sie neu auf. Ein versehentliches Abschießen deines Computers gehört somit der Vergangenheit an. Außerdem entwickelst du so näher an der letztendlichen Produktivumgebung. Denn kein richtiger Webserver läuft mit XAMPP.

Ein Vorteil von Homestead zu anderen Vagrant-Boxen ist, dass du über die Konfigurationsdatei alle nötigen Einstellungen schnell und einfach erledigen kannst. Bei anderen virtuellen Maschinen (z.B. ScotchBox) musst du wesentlich tiefer in das Gast-System eintauchen.

Bildquellen

  • Schematische Darstellung von Homestead: Fabian Hagen
  • hosts-Datei öffnen: Fabian Hagen

Schreibe einen Kommentar

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