Ubuntu

Windows上的Wsl ubuntu虛擬主機和主機文件

  • March 31, 2021

我嘗試通過我的 Windows 瀏覽器訪問它並失敗。我的錯誤是什麼?

我在 Windows 10 和 ubuntu 20 上使用 WSL2。

我有一個 apache 伺服器和一個 laravel 應用程序,我安裝/var/www/law

在我的 Windows 主機文件中,我添加了這個:

127.0.0.1   law.dev
::1 law.dev

這是位於的law.conf文件/etc/apache2/sites-available

<VirtualHost *:80>
   ServerName law.dev


   DocumentRoot /var/www/law/public

   <Directory /var/www/law>
   Options Indexes MultiViews
   AllowOverride None
   Require all granted
   </Directory>

   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

您的 WSL2 linux 系統有自己的 IP 地址。

您可以使用以下命令獲取其目前 IP 地址(在您的 Windows 主機上,使用 PowerShell 或 CMD.EXE):wsl hostname -I

您現在可以在您的主機文件中使用此 IP 地址(在 Windows 主機上)。

您的 WSL2 系統的 IP 地址不是靜態的,因此如果您重新啟動您的 PC,您的 WSL2 主機將具有不同的 IP 地址。

查看這張票以獲取更多資訊:https ://github.com/microsoft/WSL/issues/4210

如果你想在 localhost 上訪問你的 apache 網路伺服器,你必須使用 WSL1,它使用 windows 主機的介面。

您可以使用以下命令將您的 WSL2 linux 系統轉換為 WSL1(“Ubuntu”可能在您的系統上有所不同):

wsl --set-version Ubuntu 1

要獲取 WSL2 系統的名稱:

wsl --list --verbose

輸出(範例):

 NAME      STATE           VERSION
* Ubuntu    Running         2

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