从 VirtualBox 中的客户操作系统访问主机操作系统上的虚拟主机

从 VirtualBox 中的客户操作系统访问主机操作系统上的虚拟主机

通过 VirtualBox,我需要通过客户操作系统(Windows XP 和 7)访问主机(Mac OS X 10.6)的虚拟主机。

我可以访问该localhostURL,并且可以~/Username/Sites通过主机(我的 Mac)的本地 URL 在客户机浏览器中从客户机操作系统查看文件夹的目录结构,但是当我尝试深入了解文件结构时出现 403 错误,例如,可以访问,但当我浏览到 时mymacsname.lcoal/~Username/Sites出现。403ymacsname.lcoal/~Username/Sites/somewebsite/

403注意:当我尝试ymacsname.lcoal/~Username/Sites/somewebsite/从我的 Mac(主机)的浏览器访问时也会出现此问题。

编辑:

我检查了主机操作系统 (Mac) 上的访问日志,奇怪的是,如果我浏览一个没有文件的目录,.htaccess我会收到"HTTP/1.1" 200 1935响应,并且可以浏览该目录的索引或访问其默认网页。如果.htaccess目录中有文件,我会收到"HTTP/1.1 403 247"响应!

这将很多问题缩小到.htaccess文件上,所以我会继续研究这个问题,非常感谢您的帮助!

重新编辑

进一步说,这似乎是我.htaccessmod_rewrite规则的问题。我在下面包含了我的.htaccess代码,看起来,就像应该的那样,它将浏览器重定向到/Users/Jay/Sites/chassis/library/bootstrap.php但似乎我没有访问该文件的权限(bootstrap.php)。

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{DOCUMENT_ROOT}/public/index.html !-f
RewriteRule ^$ library/bootstrap.php [L]

RewriteRule ^$ public/index.html [L]

RewriteRule ^([a-z0-9/-]+)$ library/bootstrap.php?url=$1 [L,QSA]

太接近了!请帮我解决这个问题!

重新编辑

如果有帮助的话,下面是我的主 Apache 配置文件的一个片段(/private/etc/apache2/httpd.conf):

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>

答案1

您可能希望首先检查 Web 服务器的访问日志,看看实际传递了什么信息 - 成功和失败。

答案2

这肯定是权限问题。

解决了通过增加:

<Directory />
    Options +FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

/private/etc/apache2/extra/httpd-vhosts.conf

我还需要像这样编辑客户操作系统(Windows XP 和 7)上的 hosts 文件:

192.168.123.123 somevhost
192.168.123.123 someothervhost.dev

其中,所述的 IP 地址是主机操作系统的 IP 地址,somevhost... 是主机操作系统上的虚拟主机的名称。

我需要将主机操作系统设置为使用静态 IP,就好像它是由 DHCP 分配的一样,每次主机操作系统的 IP 发生变化时,您都必须在客户操作系统上编辑主机文件。

这些网站确实很有帮助:

http://support.microsoft.com/kb/972034#LetMeFixItMyselfAlways

http://mark-kirby.co.uk/2008/setting-up-virtual-hosts-on-os-x-leopard/

http://adactio.com/journal/1395

相关内容