
Mein Setup
Ich möchte eine Ubuntu-VM als Webserver für die Entwicklung einrichten.
Grund
Ich möchte eine Entwicklungsumgebung haben, die der tatsächlichen Produktionsumgebung so nahe wie möglich kommt.
Problem
Die obige Einrichtung ist fehlgeschlagen. Ich erhalte immer die Meldung „Datei nicht gefunden“, wenn ich zuhttp://project1.localhost:8888
Was ich versucht habe
Ich habe www-data
der Gruppe hinzugefügt vboxsf
mit
sudo adduser www-data vboxsf
bevor Sie eine der folgenden Möglichkeiten ausprobieren.
- Wie erwähnt habe ich das obige Setup ausprobiert. Fehler „Datei nicht gefunden“ auf der Webseite.
- Ich habe das obige Setup ausprobiert, aber der symbolische Link von
/var/virtual/project1
zu lautet/media/sf_WebApps/project1
: „Datei nicht gefunden“-Fehler auf der Webseite. /media/sf_WebApps
Ich habe versucht, vonroot:vboxsf
nach zu wechselnwww-data:vboxsf
. Nicht möglich.- Ich habe versucht, den Chmod
/media/sf_WebApps
auf 755 zu ändern. Nicht möglich. - Ich habe eine Kopie von gemacht
/media/sf_WebApps/project1
und die Kopie darin platziert/var/virtual
. Das funktioniert,aber das ist nicht, was ich will. Warum nicht?Weil ich mit meinen Hostprogrammen wie der GitHub-Mac-App und dem Sublime-Texteditor problemlos Änderungen an der Codebasis vornehmen und diese beim Besuch im Browser angezeigt sehen möchte.
Antwort1
Die Antwort ist gefundenhier von Serverfault.
Grundsätzlich müssen Sie den (bereits gemounteten) freigegebenen Ordner als anderer Benutzer mounten.
Typ
mount -t vboxsf SHARE_NAME -o rw,dmode=777,gid=GROUP_ID,uid=USER_ID /path/on/guest
In diesem Fall wird es
mount -t vboxsf WebApps -o rw,dmode=777,gid=GROUP_ID,uid=USER_ID /var/virtual/some_folder_name
Wenn Sie dieses Mounten bei jedem Einschalten des Gastbetriebssystems durchführen möchten, erstellen Sie eine Datei in /etc/init/SOMETHING.conf mit etwa Folgendem:
description "SOME DESCRIPTION"
start on starting
task
exec mount -t vboxsf WebApps -o rw,dmode=777,gid=GROUP_ID,uid=USER_ID /var/virtual/some_folder_name
So finden Sie Ihre UID oder GID heraus
id -u username
id -g username
Fehlerbehebung:
Denken Sie immer daran, zuerst den Einhängepunkt zu erstellen.
Denken Sie immer daran, zuerst die GuestAdditions zu installieren. Weitere Informationen finden Sie unterhttp://docs-v1.vagrantup.com/v1/docs/base_boxes.htmlunter „Gasterweiterungen installieren“.
sudo apt-get install linux-headers-$(uname -r) build-essential
sudo apt-get install dkms -y
sudo mount /dev/cdrom /media/cdrom
sudo sh /media/cdrom/VBoxLinuxAdditions.run
Antwort2
- So bearbeiten Sie /etc/group
- So finden Sie die Zeile, die "vboxsf" enthält
- Um ein Konto nach dem Doppelpunkt hinzuzufügen (wie www-data). Wenn Sie mehrere Konten hinzufügen müssen, können Sie diese durch Kommas trennen.
- Erneut anmelden oder neu starten
Antwort3
Ich habe etwas Ähnliches wie die @KimStacks-Lösung gemacht, konnte es aber /etc/init/SOMETHING.conf
unter Ubuntu 18.04 LTS nicht zum Laufen bringen, selbst wenn ich es geändert habestart on starting
zu start on startup
mögen dieStack Overflow-Beispiel.
Diese Schritte fand ich viel einfacher:
Erstellen Sie einen permanenten Einhängepunkt (verwenden Sie diesen Speicherort statt
/media
der einmal eingehängten Position):sudo mkdir /some/location
Holen Sie sich die UID und GIDvon
www-data
:id www-data
Bearbeiten Sie die Crontab-Datei:
sudo crontab -e
Hinzufügen einer
@reboot
Zeiledamit es beim Booten läuft(ersetzen SieUSER_ID
undGROUP_ID
durch die UID und GID aus den vorherigen Schritten):@reboot mount -t vboxsf VirtualBoxFolderShareName /some/location -o uid=USER_ID,gid=GROUP_ID