Windows: VirtualBox & phpVirtualBox

VirtualBox ist bekanntermaßen eine Virtualisierungslösung die “nur” für den Desktop geeignet ist. Mit Hilfe von phpVirtualBox kann man VirtualBox mit Hilfe eines Browsers steuern und das sogar Plattform- und Host-PC unabhängig. Anbei eine Beschreibung der Einrichtung auf einem Windows Server 2008 R2.

Diese Anleitung ist nicht mehr aktuell, enthält aber dennoch ein paar nützliche Informationen. Eine überarbeitete Fassung dieser Anleitung befindet sich hier.

Warum VirtualBox und nicht Hyper-V?

Hyper-V unterstützt primär nur Windows-Betriebssysteme als Gast. Dazu kommen noch wenige kommerzielle Linux-Distributionen. Alles weitere ist von offizieller Seite unsupported. VirtualBox hingegen unterstützt wesentlich mehr Betriebsysteme als Gast, neben Windows, Linux, BSD auch Solaris, OS/2 und Mac OS X.

Nachteile von VirtualBox auf dem Server?

Da VirtualBox für den Desktop designed ist, ergeben sich ein paar Nachteile als Server-Virtualisierungslösung. Allem voran ist die Performance gegenüber Hypervisor-Lösungen wie z.B. Hyper-V und VMware ESX schlechter. Die Verwaltung, die von Haus aus nur für den Desktop ausgelegt ist, macht es im ersten Moment nicht gerade leichter. Aber hier kommt phpVirtualBox und eine entsprechende Konfiguration zum Einsatz.

Wo liegt das “Problem” beim Setup?

VirtualBox selbst zu installieren ist nicht die Kunst. Das Setup unterscheidet sich an dieser Stelle nicht vom Desktop-Betriebssystem. VirtualBox fit zu machen für die Verwaltung über phpVirtualBox und den Betrieb auf dem Windows-Server ohne das ein Benutzer angemeldet ist ist auf der anderen Seite nicht weiter kompliziert oder aufwendig. Also gibt es so gesehen gar kein Problem. Allerdings gibt es ein paar kleinere Einschränkungen, dazu später mehr.

Setup

Soviel zur Einleitung. Nun geht es los mit der Schritt-für-Schritt-Anleitung wie man VirtualBox mit phpVirtualBox auf einem Windows Server 2008 R2 einrichtet.

Vermutlich funktionieren die folgenden Schritte auch unter Windows Vista, 7 und Server 2008. Allerdings habe das nicht getestet.

VirtualBox für Windows herunterladen und installieren. Hierzu gibt es nicht all zu viel zu sagen.

Hinweis: Ab VirtualBox 4.x und auch beim Upgrade von 3.2.x, müssen zusätzlich die Befehle

VBoxManage setproperty vrdeauthlibrary default

VBoxManage setproperty websrvauthlibrary default

in einer Eingabeaufforderung mit administrativen Berechtigungen im VirtualBox-Ordner ausgeführt werden, damit die Kommunikation zwischen VirtualBox und phpVirtualBox funktioniert.

RunAsSvc herunterladen und das Archiv nach “C:\Programme\RunAsSvc” entpacken. Dieses Tool wird benötigt um den VirtualBox web service als Systemdienst einrichten zu können.

RunAsSvc.exe starten und die Angaben wie im Screenshot vornehmen. Anschließend auf OK klicken.

Hinweis: Unter Windows Vista/7 muss das Tool mit “Als Administrator ausführen” gestartet werden (Rechtsklick auf RunAsSvc.exe).

– Dieser Punkt ist nur relevant, sofern sowohl die lokale GUI als auch phpVirtualBox für die Verwaltung verwendet werden soll:

Damit der Dienst auf die Konfiguration von VirtualBox zugreifen kann, in einer Eingabeaufforderung folgenden Befehl ausführen:

mklink /d “C:\Windows\System32\config\systemprofile\.VirtualBox” “C:\Users\Administrator\.VirtualBox”

Der Befehl muss angepasst werden, sofern nicht mit dem Benutzer(namen) Administrator gearbeitet wird. VirtualBox speichert seine Konfiguration im Benutzerprofil des Benutzers, der es ausführt. Kommt allerdings der Systemdienst ins Spiel, wird die Konfiguration unter

C:\Windows\System32\config\systemprofile\.VirtualBox”

gespeichert. Das gilt, sofern nichts anderes konfiguriert wurde, auch für die virtuellen Maschinen und deren virtuellen Festplatten.

Meine persönliche Empfehlung ist es, die virtuellen Maschinen und virtuellen Festplatten unter “C:\VirtualBox” abzulegen. Besser noch, sofern vorhanden, auf eine weitere Festplatte oder ein RAID1, 5 oder 10.

– Nun muss der neu angelegte Dienst gestartet werden. Dazu in der Dienstverwaltung erst auf VirtualBox web service klicken und dann auf starten.

XAMPP für Windows herunterladen und nach “C:\xampp” entpacken. Anschließend das Skript setup_xampp.bat mit den Vorgaben ausführen.  Nachdem das Setup abgeschlossen ist, das XAMPP Control Panel starten um Apache als Systemdienst (Svc) zu registrieren und zu starten. Das XAMPP Control Panel kann nun beendet werden.

phpVirtualBox herunterladen und nach “C:\xampp\htdocs\vbox” entpacken. Die Datei config.php mit WordPad (Nicht Notepad!) öffnen und die folgenden Angaben an die eigenen Bedürfnisse anpassen:

var $username = ‘BENUTZERNAME’; <- Benutzername, unter dem die virtuellen Maschinen gestartet werden sollen.

var $password = ‘KENNWORT’; <- Das zugehörige Kennwort für den Benutzer.

var $location = ‘http://127.0.0.1:18083/’; <- Hier steht nach dem entpacken localhost statt 127.0.0.1. Dieses funktioniert unter Windows allerdings an dieser Stelle nicht.

– Damit sowohl phpVirtualBox als auch die Konsole von laufenden virtuellen Maschinen aufgerufen werden kann, muss die Firewall-Konfiguration angepasst werden. Es werden zwei neue Regeln benötigt. Einmal für den Apache Webserver (“C:\xampp\apache\bin\httpd.exe”) und einmal für VBoxHeadless.exe aus dem Ordner “C:\Programme\Oracle\VirtualBox”.

Über Start – Verwaltung – Windows-Firewall mit erweiterter Konfiguration ausführen, in den Bereich Eingehende Regeln wechseln und im Aktionen-Bereich auf Neue Regel… klicken.

Den ersten Dialog mit Weiter bestätigen. Im zweiten Dialog das Programm für die Regel auswählen:

Den darauffolgenden Dialog mit Weiter bestätigen. Im darauffolgenden Dialog festlegen, für welchen Bereich (Privat, Domäne, Öffentlich) die Regel gelten soll. Vorzugsweise nur für Privat und Domäne. Im nächsten Dialog einen Namen für die Regel und ggf. eine Beschreibung festlegen:

Damit ist eine neue eingehende Regel für die Windows-Firewall erstellt und aktiv. Wie zu Beginn dieses Abschnitts erwähnt, werden zwei Firewall-Regeln benötigt. Hierzu die oben genannten Schritte ein weiteres Mal durchführen.

– Nun kann phpVirtualBox über einen Browser mit der Adresse http://SERVER/vbox aufgerufen werden:

Wichtig und unbedingt zu beachten!

Es kann zwar sowohl die lokale GUI als auch phpVirtualBox für das Verwalten von virtuellen Maschinen verwendet werden, aber laufende Gäste werden nicht in beiden Verwaltungsoberflächen gleichzeitig angezeigt. Idealerweise verwendet man nur phpVirtualBox sowohl lokal als auch remote.

Folgender Schritt pro virtuelle Maschine ist nur für phpVirtualBox vor Version 4.x notwendig:

Damit auf die Konsole der laufenden virtuellen Maschinen zugegriffen werden kann, muss in der Konfiguration des jeweiligen Gasts unter Display das Remote Display eingerichtet werden:

Ab phpVirtualBox Version 4.x muss in der Firewall die Port-Range 3389-4000 freigegeben werden.

Ferner muss der Browser der verwendet wird, Adobe Flash unterstützten.

Die Konsole verwendet bislang leider nur die englische Tastatur und manchmal gerät der Mauszeiger des Gasts aus der Synchronisierung, so dass das Handling darunter leidet. Entweder man verwendet einen RDP-Client um auf die Konsole zuzugreifen oder am besten direkt innerhalb der virtuellen Maschine SSH, VNC, RDP, TeamViewer, … einrichten zur Verwaltung.

In Anbetracht das phpVirtualBox noch in einem recht frühem Stadium ist, gibt Hoffnung auf Besserung in zukunftigen Versionen.

Tipps & Tricks

Für eine bessere Performance beim Setup von virtuellen Maschinen bzw. deren Betriebssystem, empfiehlt es sich die ISO-Dateien auf eine andere Festplatte abzulegen. In meinem Setup liegen die ISOs auf dem Laufwerk “D:\”. Dieses habe ich mit

mklink /d “C:\VirtualBox\ISOs” “D:\ISOs”

in den VirtualBox-Ordner eingebunden und dadurch auch in phpVirtualBox sicht- und nutzbar gemacht.

6 Kommentare

  1. Uwe Micha

    Hallo Andi,

    möchte gern Dein Tutorial weiter verfolgen, aber bei mir bekomme ich mit RunAsSvc.exe einfach keinen Dienst installiert, obwohl es weder beim Download noch beim Ausfüllen der graphischen Oberfläche Probleme gibt.

    Habe Win 7 Home Premium. Wenn ich Strg+Alt+Entf mache – also Taskmanager – dort unter Dienste, nichts zu finden.

    Könntest Du mir bitte weiterhelfen?

    Lg, Micha

  2. Micha

    Hallo Andy,

    bin zwar mit RunAsSvc.exe auf Win 7 / Xampp noch nicht weiter gekommen, habe jetzt aber phpVirtualBox schon mal vornewech installiert; jetzt also alles beisammen.

    Wenn ich im CMD manuell C:\Programme\Oracle\VirtualBox\vboxwebsrv.exe>nul
    mache, dann erhalte ich meine VirtualBox im Browser.

    Ich starte ne VM und man sieht im Vorschaufenster den Beginn des Boot-Vorgangs, ein Fenster mit meinem Guest ist aber nirgends zu sehen.

    Unter Win 7 also mehrere Geheimnisse noch ungelüftet; hast Du eine Ahnung, worin ich mich da verstrickt haben könnte?

    Freue mich auf Antwort,

    Grüße,

    Uwe Micha

  3. andy

    Hi Micha oder Micha oder wie denn nun?! 😉

    RunAsSvc muss unter Windows 7 mit “Als Administrator ausführen” (Rechtsklick auf die Exe und dann entsprechend auswählen) gestartet werden. Erst dann wird der Dienst angelegt. Danke für den Hinweis, ich hab’ den Artikel entsprechend aktualisiert.

    Zu deinem zweiten Kommentar:
    Ja klar, das ist auch erst mal so, bis das man auf die Registerkarte “Console” in phpVirtualBox klickt und anschl. auf Verbinden/Connect klickt. Zuvor muss man allerdings pro virtuelle Maschine RDP aktivieren. Schau dir einfach mal die Screenshots im Artikel an.

    Hoffe das hilft.

    Gruß

    Andy

  4. Uwe

    Danke für den sehr hilfreichen Artikel. Als Hinweis für Windows 2008 Server-Anwender:

    mklink /d “C:\Windows\System32\config\systemprofile\.VirtualBox” “C:\Users\Administrator\.VirtualBox”

    wurde immer mit einer Fehlermeldung quttiert. Erst das Weglassen der Hochkommatas half:

    mklink /d C:\Windows\System32\config\systemprofile\.VirtualBox C:\Users\Administrator\.VirtualBox

  5. andre green

    Hallo,

    Ich hab alles nach Anleitung gemacht, aber angeblich stimmt mein Username und Passwort nicht wenn ich mich in PHPVirtualBox anmelde.
    Ich hab in der Config im Klartext angegeben, es ist mein Userpasswort auf dem Server. Der VBox Webserver und phpvirtualbox mit xamp laeuft auf einer Maschine. Ist das der Fehler ??

    Gruss Andre

  6. andy

    Hallo Andre,

    ich stolper selbst immer wieder über dieses Phänomen.

    Der in der config eingetragene Benutzernamen und Kennwort ist für den Windows-Benutzer der die virtuellen Computer verwaltet bzw. ausführt, das hat mit den Anmeldedaten an phpVirtualBox nichts zu tun.
    Bei phpVirtualBox ist nach der Installation admin/admin voreingestellt.

    Plan B kann sein: phpVirtualBox und Authentifizierung
    Evtl. hilft auch diese Anleitung: Windows: VirtualBox & phpVirtualBox – Zweite überarbeitete Fassung

Schreibe einen Kommentar

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

© 2024 Andy's Blog

Theme von Anders NorénHoch ↑