
私のセットアップ
開発用の Web サーバーとして機能する Ubuntu VM をセットアップしたいと考えています。
理由
実際の運用環境にできるだけ近い開発環境を実現したい。
問題
上記の設定は失敗しました。http://project1.localhost:8888
私が試したこと
www-data
私はグループにvboxsf
次の方法で追加しました
sudo adduser www-data vboxsf
以下のいずれかを試す前に。
- 前述のとおり、上記の設定を試しました。Web ページでファイルが見つからないというエラーが発生します。
- 上記の設定を試しましたが、 から へのシンボリックリンク
/var/virtual/project1
。Web/media/sf_WebApps/project1
ページでファイルが見つからないというエラーが発生します。 /media/sf_WebApps
からroot:vboxsf
へのchown を試みましたがwww-data:vboxsf
、できませんでした。- を 755 に chmod しようとしました。
/media/sf_WebApps
不可能です。 - のコピーを作成し
/media/sf_WebApps/project1
、そのコピーを の中に配置しました/var/virtual
。これでうまくいきます。しかし、これは私が望んでいることではありません。 なぜだめですか?github mac app や sublime text editor などのホスト プログラムを簡単に使用してコード ベースに変更を加え、ブラウザーでアクセスしたときにそれが反映されるようにしたいからです。
答え1
答えは見つかったserverfaultからはこちら。
基本的には、(すでにマウントされている)共有フォルダを別のユーザーとしてマウントする必要があります。
タイプ
mount -t vboxsf SHARE_NAME -o rw,dmode=777,gid=GROUP_ID,uid=USER_ID /path/on/guest
この場合は
mount -t vboxsf WebApps -o rw,dmode=777,gid=GROUP_ID,uid=USER_ID /var/virtual/some_folder_name
ゲスト OS を起動するたびにこのマウントを実行する場合は、/etc/init/SOMETHING.conf に次のようなファイルを作成します。
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
uidまたはgidを確認するには
id -u username
id -g username
トラブルシューティング:
必ず最初にマウント ポイントを作成してください。
必ず最初にGuestAdditionsをインストールしてください。http://docs-v1.vagrantup.com/v1/docs/base_boxes.html「Guest Additions のインストール」の下。
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
答え2
- /etc/groupを編集するには
- 「vboxsf」を含む行を見つけるには
- コロンの後にアカウントを追加します(www-dataのように)。複数のアカウントを追加する必要がある場合は、カンマで区切ることができます。
- 再ログインまたは再起動
答え3
@KimStacksの解決策に似たことをしましたが、/etc/init/SOMETHING.conf
Ubuntu 18.04 LTSでは変更しても動作しませんでした。start on starting
start on startup
好きになるスタックオーバーフローの例。
以下の手順の方がはるかに簡単だとわかりました:
永続的なマウント ポイントを作成します (
/media
一度マウントした場所ではなく、この場所を使用します)。sudo mkdir /some/location
uidとgidを取得するの
www-data
:id www-data
crontab ファイルを編集します。
sudo crontab -e
@reboot
行を追加する起動時に実行できるようにする(USER_ID
と をGROUP_ID
前の手順の uid と gid に置き換えます):@reboot mount -t vboxsf VirtualBoxFolderShareName /some/location -o uid=USER_ID,gid=GROUP_ID