Virtualbox

從 VirtualBox 中的來賓作業系統訪問主機作業系統上的虛擬主機

  • June 25, 2014

通過 VirtualBox,我需要通過來賓作業系統(Windows XP 和 7)訪問主機(Mac OS X 10.6)的虛擬主機。

我能夠訪問該localhostURL,並且可以~/Username/Sites在來賓瀏覽器中通過主機(我的 Mac)的本地 URL 從來賓作業系統查看文件夾的目錄結構,但是當我嘗試深入了解文件結構時出現 403 錯誤例如,mymacsname.lcoal/~Username/Sites可以訪問,但是403當我瀏覽到ymacsname.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>

這絕對是權限問題。

通過添加解決:

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

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

我還需要編輯來賓作業系統(Windows XP 和 7)上的主機文件,如下所示:

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

您可能希望首先檢查 Web 伺服器的訪問日誌,以查看實際傳遞給它的內容 - 成功與失敗。

引用自:https://serverfault.com/questions/257994