通过 localhost 访问“Ubuntu On Windows”

通过 localhost 访问“Ubuntu On Windows”

有办法吗?我已经启动并运行了,但希望在不使用 wamp 或类似服务的情况下在本地构建。

我希望使用 ubuntu 子系统在部署之前在本地构建网站/webapps。我已经有一个用于开发人员环境的服务器,但如果可能的话,我想利用它。

答案1

这将正常工作 - Win32(“普通” Windows 程序)和 WSL(适用于 Linux 的 Windows 子系统)之间的网络连接正如您预期的那样,并且 Win32 客户端(如 Web 浏览器)可以毫无问题地连接到 WSL 服务器/侦听器。当然,Win32 和 WSL 必须共享同一组端口,因此如果您有一个(例如)在端口 8080 上侦听的 Win32 应用程序,那么您将无法同时让 WSL 进程在 8080 上侦听。

然而,你做出了这个(完全合理的)假设,但不幸的是这是错误的:

我认为运行 linux sybsystem 意味着它始终在后台运行。

出于某些我不明白的原因(声称“为了节约资源”,但该死的,这是我的电脑,它可以而且应该使用尽可能多的资源来做我想要它做的事情!),微软已决定 WSL 仅在您至少bash.exe打开一个窗口(C:\Windows\System32\bash.exe即启动并连接 WSL 副本的 Win32 程序/bin/bash)时运行。如果您关闭所有bash.exe窗口,WSL 及其中运行的所有进程(包括守护程序(后台进程))都将终止。有关更多详细信息,请参阅适用于 Linux 的 Windows 子系统概述Ctrl+ 则F代表“守护进程”。

因此,您只需要bash.exe在连接到 Linux 服务器时保持一个窗口打开(并且您必须启动该服务器,因为只要您关闭所有bash.exe窗口(包括重新启动等),它就会被终止),然后一切都会正常工作。

如果您愿意,您甚至可以安装一个 X11 服务器(有免费的 Win32 服务器),运行它并将 WSL 设置为使用它作为DISPLAY环境变量,然后安装并运行图形 Linux 应用程序(如果您不需要声音,Firefox 可以很好地运行)。

相关内容