我尝试通过 Windows 浏览器访问它但失败了。我的错误是什么?
我在 Windows 10 上使用 WSL2,带有 ubuntu 20。
我有一个 apache 服务器和一个 laravel 应用程序,我将它们安装在/var/www/law
我的 Windows Hosts 文件中,我添加了以下内容:
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>
答案1
您的 WSL2 Linux 系统有自己的 IP 地址。
您可以使用此命令获取其当前 IP 地址(在您的 Windows 主机上,使用 PowerShell 或 CMD.EXE):wsl hostname -I
您现在可以在您的 hosts 文件(在 Windows 主机上)中使用此 IP 地址。
您的 WSL2 系统的 IP 地址不是静态的,因此如果您重新启动电脑,您的 WSL2 主机将具有不同的 IP 地址。
查看此票以了解更多信息:https://github.com/microsoft/WSL/issues/4210
如果您想在本地主机上访问您的 apache 网络服务器,您必须使用使用 Windows 主机界面的 WSL1。
您可以使用此命令将 WSL2 Linux 系统转换为 WSL1(“Ubuntu”在您的系统上可能有所不同):
wsl --set-version Ubuntu 1
要获取 WSL2 系统的名称:
wsl --list --verbose
输出(示例):
NAME STATE VERSION
* Ubuntu Running 2