Windows: VirtualBox & phpVirtualBox – Zweite überarbeitete Fassung

Es ist schon eine Weile her, das an dieser Stelle von VirtualBox in Verbindung mit der Web-Oberfläche phpVirtualBox etwas geschrieben wurde. Da sich die Gelegenheit ergeben hat, dieses Szenario unter Windows 8.1 Pro zu realisieren anbei eine aktualisierte Anleitung.

Eines Vorweg: Die Änderungen gegenüber den bisherigen Anleitungen, zumindest vom Kern, sind minimal. Von daher wurde einiges recycelt. Im Gegensatz zur vorangegangenen Anleitung wurde der Apache Webserver verwendet.

Warum VirtualBox und nicht Hyper-V?

Zugegeben, der ursprüngliche Plan bestand darin, Hyper-V, welches in Windows 8.x integriert ist zu verwenden. Beim Versuch dieses Feature zu installieren kam es aber zu einer Überraschung in der Form, das die CPU SLAT unterstützen muss. „Ironischerweise“ ist das nur bei Windows 8.x der Fall. Bei Windows Server 2012 inkl. R2 gibt es diese zwingende Voraussetzung nicht. Letzteres haben wir auf exakt der gleichen Hardware getestet. Das ist ärgerlich, optional wäre das Ganze schöner gewesen.

VirtualBox installieren und konfigurieren

VBoxManage setproperty vrdeauthlibrary default
VBoxManage setproperty websrvauthlibrary default
  • In einer Eingabeaufforderung folgenden Befehl ausführen:
mklink /d "C:\Windows\System32\config\systemprofile\.VirtualBox" "C:\Users\BENUTZERNAME\.VirtualBox"

Der Benutzername muss angepasst werden! Es muss der Benutzer(name) verwendet werden, der auch lokal VirtualBox verwendet. Dieser Schritt ist notwendig, damit phpVirtualBox auf die gleichen virtuellen Maschinen und Einstellungen zugreift.

VirtualBox web service einrichten

  • RunAsSvc herunterladen und das Archiv nach “C:\Programme\RunAsSvc” entpacken.
  • RunAsSvc.exe als Administrator (Rechtsklick “Als Administrator ausführen”) starten und die Angaben wie im Screenshot vornehmen. Anschließend auf die Schaltfläche „OK“ klicken.

Der Dienst wird automatisch angelegt und gestartet.

Apache Webserver installieren und konfigurieren

Ob man 32- oder 64-bit verwendet spielt keine Rolle. Zu beachten ist allerdings, das sowohl der Apache Webserver und PHP beide entweder 32- oder 64-bit sind!

  • Apache Webserver herunterladen und den Ordner „Apache24“ nach „C:\“ extrahieren bzw. kopieren.
  • In einer Eingabeaufforderung (ab Windows Vista mit erhöhten Rechten) folgenden Befehl ausführen, um den Webserver als Dienst zu installieren:
C:\Apache24\bin\httpd.exe -k install
  • Die Datei “C:\Apache24\conf\httpd.conf” editieren und folgende Zeilen am Ende einfügen:
# PHP
LoadModule php5_module "C:/PHP/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "C:/PHP"

PHP installieren und konfigurieren

  • PHP für Windows herunterladen und nach “C:\PHP” entpacken.
  • Einen Ordner “C:\PHP\logs” anlegen.
  • Im Ordner “C:\PHP” die Datei “php.ini-production” zu “php.ini” umkopieren.
  • Die Datei “php.ini” editieren und folgende Änderungen vornehmen:
Zeile 574
error_log = C:/PHP/logs/php_errors.log
Zeile 740
extension_dir = "C:/PHP/ext"
Zeile 912
extension=php_soap.dll (Das Kommentarzeichen ";" am Anfang der Zeile entfernen.)
Zeile 931
date.timezone = Europe/Berlin

Wichtig: Den Apache Webserver einmal durchstarten, andernfalls werden die Änderungen nicht übernommen.

phpVirtualBox installieren und konfigurieren

Anmerkung: Der Einfachheit halber verwende ich als Ordnername “vbox”. Also ich entpacke phpVirtualBox zum Ziel und benenne den Ordner um.

  • Die Datei “config.php-example” in “config.php” umbenennen (oder kopieren und umbenennen) und mit WordPad oder einem anderen Editor (Nicht Notepad!) editieren:
Zeile 12 und 13: Die Anmeldedaten des Windows-Benutzers eintragen, mit dem die virtuellen Maschinen verwaltet werden sollen.
var $username = 'BENUTZERNAME';
var $password = 'KENNWORT';
Zeile 22
var $language = 'de'; (Im Auslieferzustand "en".)

Die erste Anmeldung

  • Über einen Browser die Adresse „http://IP-ODER-COMPUTERNAME/vbox“ aufrufen.
  • Die erste Anmeldung an phpVirtualBox erfolgt mit folgenden Daten:
Benutzername: admin
Passwort: admin

Nach erfolgreicher Anmeldung sollte man das Kennwort unter „Datei – Passwort ändern“ ändern! Zur Sicherheit nochmals Ab- und erneut Anmelden und schon kann es los gehen.

Details zur ersten Anmeldung und ggf. dem Zurücksetzen des Kennworts finden sich hier:

phpVirtualBox – Wiki – Logging in the first time

Die Windows-Firewall konfigurieren

Soll auf phpVirtualBox von außerhalb des Computers, das kann das eigene LAN oder z.B. via VPN der Fall sein, so muss die Windows-Firewall angepasst werden. Der Apache Webserver legt für sich Regeln automatisch an. Möchte man keinen externen Zugang haben, so sollte man diese Regeln einschränken oder deaktivieren.

Damit auf die virtuelle Maschine, genauer gesagt deren Konsole zugegriffen werden kann, muss die Datei VBoxHeadless.exe aus dem Ordner “C:\Programme\Oracle\VirtualBox” in der Windows-Firewall zugelassen sein.

7 Kommentare

  • Hallo Andy!
    Vielen Dank für deine Anleitung!
    Hat bisher super geklappt.
    Ich nutze diesen Server auf meinem Windows Server 2008 Enterprise x64. Als Webserver nutze ich XAMPP und es läuft auch super. Nur eine Sache will nicht klappen ….
    Und zwar will ich meine bestehenden Virtuellen Systeme einbinden, und bekomme das mit der Eingabeaufforderung nicht auf die Reihe.
    Irgendwas scheine ich wohl falsch zu machen.
    Vielleicht können sie da noch mal etwas Tiefer drauf eingehen.
    Ansonsten SUPER ARBEIT!
    Grüsse, Patrick

  • Hallo Patrick,

    ich vermute es ist gemeint das man im Web-Interface nicht die virtuellen Maschinen siehst, die im „normalen“ VirtualBox angelegt wurden?

    Beim Befehl

    mklink /d "C:WindowsSystem32configsystemprofile.VirtualBox" "C:UsersBENUTZERNAME.VirtualBox"

    muss „BENUTZERNAME“ durch den Namen ersetzt werden, der lokal ebenfalls VirtualBox verwendet. Es muss der Benutzername und nicht der angezeigte Name verwendet werden.

    Angenommen bei Windows wird „Administrator“ verwendet, dann muss dort „Administrator“ stehen,
    wird der Benutzter „Test“ verwendet, dann muss dort „Test“ stehen, usw.

  • Viel einfacher isses doch so:
    mklink /d „%SystemRoot%System32configsystemprofile.VirtualBox“ „%USERPROFILE%.VirtualBox“

  • Führt beides zum Ziel 😉

  • Hey Andy,

    erstmal danke für deine tolle Anleitung. Hättest du auch eine Anregung für mich, wie ich bestimmte virtuelle Maschinen nach einem Neustart des Host-Rechners automatisch wieder gestartet bekomme?

    Habe es mit folgendem Batch Skript versucht:

    @echo off
    cd /D „C:Program FilesOracleVirtualBox“
    VBoxManage.exe startvm „vm1“ –type headless
    VBoxManage.exe startvm „vm2“ –type headless
    VBoxManage.exe startvm „vm3“ –type headless

    Zum Test habe ich dieses Skript mal ausgeführt und die virtuellen Maschinen scheinen auch zu starten. Nur werden sie im phpvirtualbox als ausgeschaltet angezeigt. Hast du da eine Idee?

    Grüße surol

  • Werden die Befehle bzw. das Skript mit dem gleichen Benutzer ausgeführt, der in phpVirtualBox eingetragen ist?
    Könnte mir vorstellen, das es daran „hängt“.

    Allerdings bin ich kein Fan von autom. VM start, zu oft schon schlechte Erfahrungen gemacht wenn z.B. Windows Updates laufen und mehrere Neustarts vom Host folgen und dann die VMs „durcheinander“ geraten.

  • Was mir da gerade noch einfällt: Vermutlich startet phpVirtualBox die VMs über einen anderen Weg, das „VBoxManage.exe“ und von daher bekommt das System nicht mit, ob VMs laufen.
    Dürfte das Gleiche sein, wie wenn man in der regulären VBox-GUI eine VM startet, das bekommt phpVirtualBox auch nicht mit, umgekehrt das Gleiche.

Schreibe einen Kommentar

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