如何在虚拟机中运行 Apache,但让它从主机提供文件服务?

如何在虚拟机中运行 Apache,但让它从主机提供文件服务?

好吧,这有点难以解释,但我会尽力。

我在 VM(Windows XP 模式)中运行 Apache,并且我想要:

  1. 在我的主机上存储和编辑网站文件
  2. 将它们提供给虚拟机(客户机)内的浏览器

目前,我在虚拟机中存储、编辑和服务所有内容,但显然这对于​​备份、git 等来说是没用的,所以我想将它们从虚拟机中取出并放入物理目录中。

我的 VM 主机文件当前将所有域指向 127.0.0.1:

127.0.0.1    davestewart.local
127.0.0.1    davestewart.remote

我的 VM Apache httpd-vhosts.conf 文件如下所示:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "c:/xampp/htdocs"
</VirtualHost>

<VirtualHost *:80>
    ServerName davestewart.local
    ServerAlias www.davestewart.local
    DocumentRoot "c:/xampp/htdocs/davestewart.co.uk"
    <Directory "c:/xampp/htdocs/davestewart.co.uk">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName davestewart.remote
    DocumentRoot "//dave-desktop/work"
    <Directory "//dave-desktop/work">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

该网站的 .local 版本运行良好,并在 VM 中完全可见,但 .remote 版本输出 XAMPP 403 禁止访问!页面。

我的服务器技能扩展到一些 .htaccess 和 .conf 编辑,通常是根据在线教程拼凑一些东西,但并不真正了解自己在做什么(不像编码,我觉得编码容易得多)。

谢谢,戴夫

答案1

考虑使用流浪汉默认情况下,VM 将在 中提供根文件夹中的所有文件/vagrant。因此,您可以配置 Apache(在 VM 上)以在 中提供文件/vagrant/web- 并且提供的文件将是webVagrantfile 所在文件夹的子目录中的文件。您可以在文档

答案2

你为什么不试试符号链接?我知道它在 Linux 中有效。只需将文件放在主机驱动器上。然后在虚拟机中创建指向主机驱动器的符号链接。瞧。文件在主机上,但虚拟机“认为”它们是本地的。

我们目前使用这种设置,通过我们的办公室网站在我们的文件中设置后门,这样我们就可以访问现场的工作文件。但我们不希望我们的工作文件“在”网络服务器中,但我们需要网络服务器通过我们的网站将它们提供给现场。符号链接对我们来说非常有用。

相关内容