Navigation
SIT - Schneider Internet-Technologien

Tutorial
LAMP-VM für Mac OS X

Mac-Ordner als www-Root der VM verwenden

Wir werden nun wieder an den Einstellungen unserer VM in VirtualBox arbeiten und müssen dazu unsere VM wieder herunterfahren, z. B. mit sudo shutdown -h 0.

Dann wählen wir unsere VM aus, klicken auf Ändern und gehen auf Gemeinsame Ordner. Dort fügen wir einen neuen, gemeinsamen Ordner hinzu.

Gemeinsame Ordner in VirtualBox
Gemeinsame Ordner in VirtualBox

Es öffnet sich ein Popup, in dem wir den Ordner wählen, in dem wir unsere PHP-Projekte ablegen wollen. Wir aktivieren außerdem die Checkbox Automatisch einbinden.

Gemeinsamen Ordner automatisch einbinden.
Gemeinsamen Ordner automatisch einbinden.

Dann klicken wir auf OK, starten wieder unsere VM und loggen uns auf der Konsole ein.

Bevor wir den geteilten Ordner erzeugen, müssen wir uns die Benutzer- und Gruppen-ID des Apache-Benutzers www-data merken, da wir unter dessen Rechten den geteilten Ordner Ubuntu-seitig mounten wollen. Ansonsten bekommen wir ggf. Probleme mit Schreibrechten zur Laufzeit.

Wir führen die Befehle id -u www-data, um die uid zu erhalten und id -g www-data, um die gid zu erhalten aus und setzen dann folgende Befehle ab.

sudo mkdir /mnt/htdocs
sudo chmod 777 /mnt/htdocs
sudo mount -t vboxsf -o uid=<ermittelte uid>,gid=<ermittelte gid> htdocs /mnt/htdocs

Wichtig ist, bei dem letzten Befehl darauf zu achten, dass die Angabe vor der internen Pfadangabe /mnt/htdocs genauso lautet wie der Order-Name des geteilten Ordners, den wir oben in VirtualBox eingestellt haben.

Nun müssen wir noch dafür sorgen, dass der Mount bei jedem Start der VM durchgeführt wird. Dazu passen wir die Datei /etc/rc.local an und fügen vor dem exit-Befehl den o.g. Mount-Befehl ein.

sudo nano /etc/rc.local

Das Ergebnis sollte etwa so aussehen:

Automatischer Mount beim Start der VM
Automatischer Mount beim Start der VM

Wenn wir nun Mac-seitig etwas in unserem Projektverzeichnis ablegen, können wir das in der VM sehen. Ich habe testweise den Quellcode meiner Websites Apfelwissen und SIT abgelegt und siehe da…

Mac-Order von VM aus sichtbar
Mac-Order von VM aus sichtbar

Es ist an dieser Stelle wichtig, dass aus Ubuntu-Sicht der Benutzer www-data Besitzer der Ordner ist. Evtl. muss hier mit den Befehlen chmod bzw. chown nachgeholfen werden.

Nun müssen wir noch den DocumentRoot auf das neue Verzeichnis umstellen. Wir öffnen daher wieder die VirtualHost-Konfiguration mit sudo nano /etc/apache2/sites-available/000-default.conf und passen die beiden Verweise auf /var/www/html, an, so dass sie auf den gerade gemounteten, neuen Ordner zeigen. Das Ergebnis sollte etwa so aussehen.

VirtualHost-Konfiguration zeigt auf gemeinsen Ordner
VirtualHost-Konfiguration zeigt auf gemeinsen Ordner

Nachdem wir die Datei gespeichert haben, müssen wir den Apache noch einmal neu starten sudo service apache2 restart. Danach können wir das Ganze testen. Wir legen z. B. eine index.php mit einer Hallo-Welt-Zeile in unserer Webordner auf dem Mac, speichern die Datei und rufen die Ubuntu-VM im Browser auf.

Eine PHP-Datei im Mac-Datei-System wird von VM-PHP interpretiert
Eine PHP-Datei im Mac-Datei-System wird von VM-PHP interpretiert

Der Mount für die Guest Additions kann entfernt werden

Wir können an dieser Stelle übrigens noch die .iso-Datei für die Guest Additions in VirtualBox unmounten. Dazu müssen wir die VM herunterfahren und dann auf Ändern in der VM-Übersicht klicken und dort auf Massenspeicher. Dort klicken wir den Eintrag mit der GuestAdditions-Datei rechts an und wählen Anschluss entfernen. Den Warnhinweis können wir bestätigen.

Danach können wir die GuestAdditions-Datei löschen. Falls wir sie mal wieder benötigen, können wir sie wieder aus der App-Datei unserer VirtualBox-Installation extrahieren.