私のセットアップ

私のセットアップ

私のセットアップ

ここに画像の説明を入力してください

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

理由

実際の運用環境にできるだけ近い開発環境を実現したい。

問題

上記の設定は失敗しました。http://project1.localhost:8888

私が試したこと

www-data私はグループにvboxsf次の方法で追加しました

sudo adduser www-data vboxsf

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

  1. 前述のとおり、上記の設定を試しました。Web ページでファイルが見つからないというエラーが発生します。
  2. 上記の設定を試しましたが、 から へのシンボリックリンク/var/virtual/project1。Web/media/sf_WebApps/project1ページでファイルが見つからないというエラーが発生します。
  3. /media/sf_WebAppsからroot:vboxsfへのchown を試みましたがwww-data:vboxsf、できませんでした。
  4. を 755 に chmod しようとしました。/media/sf_WebApps不可能です。
  5. のコピーを作成し/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

  1. /etc/groupを編集するには
  2. 「vboxsf」を含む行を見つけるには
  3. コロンの後にアカウントを追加します(www-dataのように)。複数のアカウントを追加する必要がある場合は、カンマで区切ることができます。
  4. 再ログインまたは再起動

答え3

@KimStacksの解決策に似たことをしましたが、/etc/init/SOMETHING.confUbuntu 18.04 LTSでは変更しても動作しませんでした。start on startingstart 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
    

関連情報