![Elementary OS (Ubuntu)、Virtual Box -> 在主机和客户机之间共享 www 数据](https://linux22.com/image/1596888/Elementary%20OS%20(Ubuntu)%E3%80%81Virtual%20Box%20-%3E%20%E5%9C%A8%E4%B8%BB%E6%9C%BA%E5%92%8C%E5%AE%A2%E6%88%B7%E6%9C%BA%E4%B9%8B%E9%97%B4%E5%85%B1%E4%BA%AB%20www%20%E6%95%B0%E6%8D%AE.png)
请问,有人可以在这里提供解决该请求的逐步解决方案吗?
我的家用电脑安装了 Elementary OS 和 Virtual Box。我有一个闪存驱动器,里面有装有 Elementary OS 的虚拟 PC (Virtual Box)。我的工作电脑安装了 Windows 10 和 VirtualBox。
我现在使用的是:我的主要编码计算机是虚拟机。我有 LAMP 和其他 PHP 开发工具。我需要在两台(家用和办公)电脑上运行虚拟 PC 才能工作。
我想要的是:我希望能够直接在家用电脑上处理包含 PHP 项目的共享文件夹(无需运行 VirtualBox)。在我的闪存驱动器上,我有虚拟 PC,大小约为 32GB,可用空间也相同。是否可以将 www 文件夹移到那里?我的意思是,在虚拟 PC 外部,但在我的虚拟 PC 内部始终可以访问该文件夹。下一件事(不是那么重要),是否可以使用 mysql(mariadb)数据库和 phpmyadmin 进行同样的操作?
因此,我希望在家里能够直接在桌面上工作,而在工作中我仍然应该使用虚拟电脑。
我已经尝试过的方法:我已将闪存格式化为两个分区 - vboxdrive 40GB 和 www 20GB。Vbox 驱动器包含虚拟 PC,www 包含所有项目。均格式化为 NTFS。通过共享文件夹,可以非常轻松地将 www 驱动器映射到 win 和 linux 主机上客户机内的 var/www/。问题是由于所有权和访问权限,apache 无法访问它。我无法在 ntfs 格式的分区上设置 www-data 所有权。当我尝试将其格式化为 ext4 时,在我将 vboxsrv 添加到 www-data 组后没有任何问题。但我无法在 Win 主机上映射该共享文件夹,因为 win 不支持 ext4。此外,我需要在 linux 主机上以某种方式在挂载后自动将该闪存分区映射到 var/www - 现在我不确定如何操作。
答案1
这不是一个一步一步的答案。
我以前也遇到过类似的问题。由于 Windows 不支持 ext4,所以第二种方法不适用。因此,您必须使用 ntfs 并修复权限问题。
在 Linux 中更改已安装的 ntfs 驱动器的权限和所有权不起作用,因为 ntfs 不支持该概念。发生的情况是,在安装 ntfs 分区时,Linux 会为驱动器中的所有文件分配“虚拟权限”,并且这些权限在安装后无法更改。您有两个选择:
- 编辑挂载选项,以便 www-data 在 /etc/fstab(管理自动挂载文件夹的文件)中挂载时具有那些“虚拟权限”,如下所示:
/dev/NTFS-partition /var/www ntfs-3g uid=<www-data user id>,gid=<www-data group id>,umask=0022 0 0
或者
- 将 www-data 用户添加到当前具有权限的组:挂载 ntfs 驱动器后,像以前一样,出现权限错误(我不知道你是怎么做到的),执行
sudo usermod -a -G groupname www-data
您可以通过执行 ls -l /var/www 获取组名称