web-dev-qa-db-ja.com

ゲストのNginxを許可する方法VMホストOSの共有フォルダーへのアクセス)

私のセットアップ

enter image description here

開発用のWebサーバーとして機能するようにUbuntu VMをセットアップしたいと思います。

理由

できるだけ実際の本番環境に近い開発環境を作りたいです。

問題

上記のセットアップは失敗しました。 http://project1.localhost:8888 に移動すると、ファイルが見つかりません。

私が試したこと

www-dataをグループvboxsfに追加しました

Sudo adduser www-data vboxsf

以下のいずれかを試す前に。

  1. 前述のように、私は上記の設定を試しました。 Webページにファイルが見つかりませんというエラーがあります。
  2. 上記の設定を試しましたが、/var/virtual/project1から/media/sf_WebApps/project1へのシンボリックリンクがあります。 Webページにファイルが見つかりませんというエラーがあります。
  3. /media/sf_WebAppsroot:vboxsfからwww-data:vboxsfにchownしようとしました。ありえない。
  4. /media/sf_WebAppsを755にchmodしようとしました。不可能です。
  5. /media/sf_WebApps/project1のコピーを作成し、そのコピーを/var/virtual内に配置しました。これは機能しますしかしこれは私が望むものではありません。なぜですか? githubmacアプリや崇高なテキストエディタなどのホストプログラムを簡単に使用したいコードベースに変更を加えて、ブラウザにアクセスしたときに反映されることを確認します。
3
Kim Stacks

答えは見つかりました ここでは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 を参照できます。

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
3
Kim Stacks
  1. / etc/groupを編集するには
  2. 行を見つけるには「vboxsf」が含まれています
  3. コロンの後にアカウントを追加するには(www-dataなど)。複数のアカウントを追加する必要がある場合は、commmaで区切ることができます
  4. 再ログインまたは再起動
1
gunblues

@KimStacksソリューションと同様のことをしましたが、 /etc/init/SOMETHING.confstart on startingに変更しても、start on startupをUbuntu18.04LTSで動作させることができませんでした。 スタックオーバーフローの例

これらの手順ははるかに簡単でした。

  • 永続的なマウントポイントを作成します(一度マウントすると、/mediaではなくこの場所を使用します):

    Sudo mkdir /some/location
    
  • idとgidを取得 of www-data

    id www-data
    
  • Crontabファイルを編集します。

    Sudo crontab -e
    
  • @reboot行を追加します 起動時に実行するためUSER_IDGROUP_IDを前の手順のuidとgidに置き換えます):

    @reboot mount -t vboxsf VirtualBoxFolderShareName /some/location -o uid=USER_ID,gid=GROUP_ID
    
1
SharpC