Heute Abend möchte ich eine kurze Aktualisierung zu meiner virtuellen Entwicklungsumgebung beschreiben.
Die Grundeinstellungen sind seit 3 Jahren unverändert - ein Ubuntu-Server mit aktueller LTS-Version.
Eine Einführung für die ersten Installationsschritte hatte ich in der Vergangenheit einmal beschrieben.
Da ich zusätzlich alle Projekte lokal auf der Festplatte des Host-Systems verwalte benötige ich unbedingt die VirtualBox Guest Additions.
Übrigens, die vollständigen Versioninformationen unter Ubuntu könnt Ihr mit lsb_release -a
auf der Konsole abfragen.
Da ich bei einem regelmäßigen Upgrade oder gar einer Neu-Installation möglichst wenig Zeit mit der Grundkonfiguration verbringen möchte, nutze ich möglichst viele Standard-Einstellungen von VirtualBox und den GuestAdditions.
Eine davon ist die Konfiguration der Shared-Folders.
In VirtualBox könnt Ihr die Einstellungen unter Devices -> Shared Folders settings
erreichen.
Da ich alle Projekte global in workspaces eingeteilt habe, konfiguriere ich eigentlich nur einen Ordner für den geteilten Zugriff.
Wie auf dem Bild zu erkennen, gebe ich den Pfad der gesamten workspaces als Quelle ein und belasse den Namen des Zielordners wie vorgeschlagen. Eine wichtige Einstellung ist der Vollzugriff (Make Permanent), da sonst kein anderer Benutzer, wie zum Beispiel ein nginx oder apache2 Server keine Dateien schreiben oder ausführen darf. Ein Beispiel wäre das Schreiben von Cache-Dateien oder Logs, falls diese für eine Anwendung selbst verwaltet werden - auch das hochladen von Bildern gehört dazu.
Die zweite Einstellung ist das automatische einhängen der Ordner. Das wirklich praktische an dieser Einstellung ist, dass ich am Gast-System nichts mehr konfigurieren muss, um auf dem Ordner zugreifen zu können.
Unter Ubuntu-Servern werden automatisch geladene Ordner unter /media
eingehangen. Der eingehangene Name hängt von eurem konfigurierten Namen des Zielordners in den vorher getätigen Einstellungen ab. In meinem Fall ist es sf_workspaces
.
So, eigentlich waren das die beiden wichtigen Einstellungen, um einen Ordner vernünftig von VirtualBox verwaltet in euer Gast-System einzuhängen. Damit seit Ihr update-sicher und eure Ordner werden immer ohne Probleme eingehangen. Früher hatte ich immer eigene Einträge für das einhängen der geteilten Ordner ist der /etc/fstab
Datei. Da ich aber irgendwann durch ein Upgrade von VirtualBox und den Guest Additions ein Problem beim Starten des Gast-Systems hatte (Fehlermeldung beim Start, da das Dateisystem vboxsf nicht gefunden werden konnte), habe ich das aufgegeben und halte mich seit dem an den Standardeinstellungen von VirtualBox.
Eine häufige kleine und schnell zu behebene Stolperfalle sind die Rechte unter Linux in Bezug auf Webserver wie nginx oder apache2.
Werden die Server aus dem Ubuntu-Repository heraus installiert, laufen diese immer mit den Rechten eines eigenen Benutzers und einer eigenen Gruppe - www-data
.
Lassen wir uns einmal die Rechte unseres automatisch eingehangenen Ordners mit ls -l
anzeigen sieht es meistens in etwa wie folgt aus:
rwxrwx--- 1 root vboxsf 238 Jul 22 22:36 sf_workspaces
Dabei fällt uns auf, dass die Standardberechtigung auf den Benutzer root
und der Gruppe vboxsf
begrenzt ist.
Ihr habt jetzt zwei Möglichkeiten die Berechtigung für euren Webserver an diesem Ordner zu erhöhen.
- Ihr ändert die Gruppenberechtigung von
vboxsf
zuwww-data
- Ihr fügt dem Benutzer
www-data
der Gruppevboxsf
hinzu
Ihr empfehle Variante zwei, da dies etwas näher an den Standardeinstellungen ist.
Ein schneller Konsolenbefehl zur Rettung:
sudo usermod -aG vboxsf www-data
Wenn Ihr euch nun die Gruppen mit dem Befehl cat /etc/group
anschaut sollte der Eintrag in etwa so aussehen:
vboxsf:x:999:www-data,sunlix
Als letztes müsst Ihr ggf. den Webserver einmal neustarten, damit der Benutzer seine neue Gruppenberechtigung berücksichtigt.