Vagrant unter Windows

Im Bereich der Webentwicklung sterben lokale Webserverpakete wie XAMPP mit der Zeit immer weiter aus. Der Grund liegt neben der schlechten Austauschbarkeit von XAMPP-Komponenten darin, dass die Systemumgebung des Entwicklungsrechners natürlich nicht exakt mit dem Produktivsystem übereinstimmt und somit Probleme bei der Plattformunabhängigkeit von Programmaufrufen auftreten können. Ein Beispiel sei strftime() in PHP. Im Hintergrund wird hier eine C-Bibliothek aufgerufen, die unter Windows andere Funktionen bietet als unter Unix.

Oft bildet sich folgende Konstellation heraus: Entwickelt wird unter Windows, der Produktivserver läuft unter Linux. Nun wäre es eine feine Sache, wenn jeder Programmierer ein Entwicklungssystem hätte, das exakt der Konfiguration des Produktivsystems entspricht. Ein vielversprechender Ansatz besteht darin, dass jeder Entwickler das Zielsystem als virtuelle Maschine bei sich auf dem eigenen Rechner zur Entwicklung einsetzt.

Es könnte nun also jeder Entwickler hergehen und sich VirtualBox installieren, sich die ISO heraussuchen, die zum Produktivsystem passt, dann alle nötigen Programme installieren und bei jeder Änderung den Code auf die virtuelle Maschine überspielen. Das ist alles ziemlich aufwändig.

Vagrant bietet als Wrapper um Virtualisierungssoftware die Möglichkeit die Konfiguration für ein virtuelles System einmal in einem sogenannten Vagrantfile zu definieren. Jeder Entwickler, der nun dieses System nutzen will, kann dann per Kommandozeile diese „Box“ herunterladen und in genau dieser Konfiguration nutzen. Gängige Konfigurationen hat bereits jemand zusammengestellt, man kann diese „Boxen“ dann einfach selbst mit ein paar Kommandozeilenbefehlen herunterladen und nutzen.

Ich wollte also nun einmal Vagrant ausprobieren: Entwicklung einer Laravel Anwendung unter Windows mit altgedienten Entwicklungsumgebungen und Tools – Ausführung unter Linux. Für Laravel gibt es auch schon eine fertig zusammengestellte Vagrant-Box: Homestead.

Als Hürde empfand ich, dass die Tutorials alle nur detailliert auf eine Entwicklung unter Linux bzw. OSX eingehen – für Windows fehlen oft ein paar Kniffe. Als nicht Windows spezifische Basis empfiehlt sich: https://www.sitepoint.com/quick-tip-get-homestead-vagrant-vm-running/

Hier also eine kurze Stichpunktanleitung für die Homestead-Vagrant-Box unter Windows:

  1. Neueste Version von VirtualBox, Vagrant, GIT, und Putty installieren
  2. Download Zip: https://github.com/Swader/homestead_improved
  3. Entpacken (es empfiehlt sich dies in einem Ordner z.B. vagrant_boxes zu entpacken. Hier kann man weitere Boxen abspeichern)
  4. Im entpacktem Verzeichnis folgenden Ordner anlegen: Project\public
  5. Die Datei Folderfix.sh, die im obigen Tutorial genannt ist, würde einige Ordner anlegen und Einstellungen treffen. Es handelt sich um ein Unix-Shell-Skript und kann unter Windows nicht verwendet werden. Daher schildere ich nachfolgend ein paar Konfigurationen für Windows
  6. Damit man das Entwicklungswebangebot unter homestead.app im Browser erreichen kann muss man die hosts Datei unter C:/Windows/System32/drivers/etc/ als Admin bearbeiten.
    Hier z.B. hinzufügen:

    192.168.10.10 homestead.app
  7. Für die Entwicklung in Windows braucht man Zugriff auf das Document-Root (liegt im Ordner public). Den Inhalt will man bei Eingabe von homestead.app im Browser sehen. Hierzu:
    Homestead.yaml Datei bearbeiten

    sites:
        - map: homestead.app
          to: /home/vagrant/Code/Project/public
    
  8. Nun noch eine index.php in Project\public ablegen – z.B. mit dem Inhalt:
    echo "Homestead über Vagrant läuft!";
    
  9. Jetzt spätestens die Eingabeaufforderung unter Windows öffnen und folgendes eingeben:
  10. vagrant up Hiermit fährt man die Kiste hoch.
  11. vagrant ssh-config Hiermit bekommt man die SSH Zugangsdaten angezeigt.
  12. Diese Daten dann in Putty eingeben
    Als User: vagrant; als Passwort: vagrant
  13. Somit erhält man Zugriff auf die Linux-Kommandozeile der Homestead-Vagrant-Box. Hier kann man z.B. Rechte setzen, Benutzer anlegen etc.
  14. Es wird Zeit für den Aufruf im Browser: homestead.app. Als Ausgabe sollte nun erscheinen: Homestead über Vagrant läuft!
  15. So nun ein paar Änderungen z.B. an der index.php machen und im Browser neu laden.
  16. Mit vagrant halt in der Windows Eingabeaufforderung hält man die Box wieder an.

Ich hoffe ich konnte einen ersten Einblick in Vagrant bieten.



Als erster einen Kommentar schreiben.

Schreibe einen Kommentar

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