我的设置

我的设置

我的设置

在此处输入图片描述

我想设置一个 Ubuntu VM 作为开发的 Web 服务器。

原因

我希望拥有一个尽可能接近实际生产环境的开发环境。

问题

上述设置失败。当我导航到http://project1.localhost:8888

我尝试过

我确实使用以下方式添加www-data到组中vboxsf

sudo adduser www-data vboxsf

在尝试以下任何操作之前。

  1. 如上所述,我尝试了上述设置。网页上出现文件未找到错误。
  2. 我尝试了上述设置,但从/var/virtual/project1到 的符号链接/media/sf_WebApps/project1在网页上出现未找到文件的错误。
  3. 我尝试将/media/sf_WebAppsfrom改为root:vboxsfto www-data:vboxsf。但不行。
  4. 我尝试将其 chmod/media/sf_WebApps为 755。不可能。
  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

如果您希望每次打开客户操作系统时都执行此挂载,请在 /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.conf在 Ubuntu 18.04 LTS 上工作,即使我改变了start on starting喜欢start on startupStack Overflow 示例

我发现这些步骤容易得多:

  • 创建永久挂载点(使用此位置而不是/media曾经挂载过的位置):

    sudo mkdir /some/location
    
  • 获取 uid 和 gidwww-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
    

相关内容