使用虛擬 Windows 機器瀏覽本地網站:可能嗎?
在我們的 Web 開發過程中,我們經常需要在多個瀏覽器中測試我們的應用程序和網站的佈局。由於獨立執行所有這些瀏覽器幾乎是不可能的,並且諸如IETester之類的應用程序無法完美執行並且無法在 Windows 7 上執行,因此能夠為這些瀏覽器執行虛擬機以擁有“本機”將是一件好事經驗。
目前,我正在使用執行IE7的****Virtual Windows XP進行嘗試。我自己的設置是Windows 7 RC1 64bit。我們的大多數網站和應用程序都是使用 Windows 主機文件中的映射在本地開發的。
問題:
從虛擬機中導航到http://mywebsite.localhost時,會查詢虛擬機的主機文件,而不是虛擬機頂部的實際作業系統。此外,當添加完全相同的映射時,瀏覽器(顯然)仍然導航到“虛擬本地主機”。
- 有沒有辦法讓虛擬機查詢 Windows 7 主機文件?
- 有沒有辦法使虛擬機的本地主機與實際的 Windows 7 本地主機相同?
請在開始之前閱讀下面的全部說明,並檢查您必須執行哪些操作才能撤消這些說明。這是憑記憶,我現在用的是Mac。
我假設你使用 VMware 和你的虛擬機
$$ the usual abbreviation for Virtual Machine $$在 NAT 組網模式下。 按照通常的 VMware 說法,我使用術語主機系統來安裝執行 VMware 的作業系統,使用來賓系統來表示在 VMware 內部執行的系統。
第一部分:在VMware模擬的NAT網路(通常為8號網路)上找到主機系統的IP地址:
在主機上打開一個 cmd.exe 並輸入:
ipconfig /全部
記下 VMware NAT 介面的 IP 地址
第二部分:使主機文件統一
更改主機系統上的主機文件 %systemroot%\System32\Drivers\Etc\hosts,使其使用 VMware NAT 適配器的 IP 地址,而不是本地網站的 127.0.0.1。
確保 Web 伺服器偵聽該 IP 地址。
第三部分:使 hosts 文件可用
在主機系統上,在命令行中:
rmtshare \\name-of-host-system\hostspath=%systemroot%\System32\Drivers\Etc /grant Everyone:r
確保該路徑中沒有敏感資訊。
第四部分:獲取主機文件
在來賓系統上創建一個批處理文件 c:\hostsfile\vm_hosts_copy.bat,其中包含以下內容:
copy \\name-of-host-system\hostspath\hosts %systemroot%\System32\Drivers\Etc
將其導入您的系統資料庫:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run] "CopyHostsFile"="c:\hostsfile\cm_hosts_copy.bat"
如果所有這些都完成了,您應該能夠在主機系統和所有來賓系統上使用相同的主機文件。來賓系統上的主機文件將在每次重新啟動時更新。您只需在主機系統上的正常位置 %systemroot%\System32\Drivers\Etc\hosts 進行更改。
您可以在所有 Windows VM 上使用它,並在大多數 Unix 系統上使用帶有 smbclient 和 /etc/rc.local 的類似腳本進行多平台測試。