透過本機主機存取“Windows 上的 Ubuntu”

透過本機主機存取“Windows 上的 Ubuntu”

有沒有辦法做到這一點?我已經啟動並運行了它,但希望在本地建置而不使用類似的 wamp 服務。

我想使用 ubuntu 子系統來在部署之前在本地建立網站/web應用程式。我已經有一個用於開發人員環境的伺服器,但如果可能的話想利用它。

答案1

這將運作良好- Win32(「普通」Windows 程式)和WSL(Linux 的Windows 子系統)之間的網路工作就像您期望的那樣,並且Win32 用戶端(如Web 瀏覽器)可以連接到WSL伺服器/ 監聽器沒有問題。當然,Win32 和 WSL 必須共享同一組端口,因此,如果您(例如)有一個 Win32 應用程式偵聽端口 8080,則您將無法同時讓 WSL 進程偵聽 8080時間。

然而,你做出了這個(完全合理的)假設,不幸的是這是不正確的:

我認為運行 linux sybsystem 表示它始終在背景運行。

由於我無法理解的原因(聲明是“節省資源”,但該死的,這是我的計算機,它可以而且應該使用盡可能多的資源來完成我想要它做的事情!),Microsoft 已決定 WSL 僅在您至少bash.exe開啟一個視窗(C:\Windows\System32\bash.exe即啟動並將您連接到 WSL 的副本的 Win32 程式/bin/bash)時執行。如果關閉所有bash.exe窗口,WSL 及其中運行的所有進程(包括守護程序(後台程序))都將終止。有關更多詳細信息,請參閱Linux 的 Windows 子系統概述+代表「守護程式CtrlF

因此,您只需在連接到 Linux 伺服器時保持一個bash.exe視窗開啟(並且您必須啟動該伺服器,因為每當您關閉所有bash.exe視窗(包括重新啟動時等)時,它就會被殺死),一切都應該正常工作。

如果你願意,你甚至可以安裝一個 X11 伺服器(有免費的 Win32 伺服器),運行它並將 WSL 設定為將其用作DISPLAY環境變量,然後安裝並運行圖形Linux 應用程式(Firefox 工作得還不錯,如果你不這樣做)不需要聲音)。

相關內容