使用 WSL 作为服务器

使用 WSL 作为服务器

我最近安装了 WSL,玩了一会儿后,我对几件事产生了疑问……首先,是否可以将其视为服务器?例如,如果我想托管一个小型 mysql db,这看起来没问题。但是是否可以从另一台机器连接到该 mysql 实例?我该怎么做?

我可以将此子系统作为目标,从 Visual Studio 2015 开发 Linux 的 C++ 应用程序吗?如何连接到“远程计算机”-在本例中,它是我运行 VS2015 的同一台机器?

或者如果我正在运行一个网络服务器(可以吗?)并且我可以使用 chrome 或类似工具从我的 Windows 10 机器连接到该服务器吗?

答案1

它就像 Linux 机器一样工作。我们目前正在运行一个 LAMP 站点,它运行迅速。设置域也没有问题。

提示和注意事项:

  • 您需要正确设置 Windows 防火墙来转发外部域。
  • 不要从 Windows 文件夹访问或编辑子系统。这会搞砸事情(至少在当前版本中)
  • 如果您仍想在 Visual Studio(或其他编辑器)中编辑文件,只需设置对 WSL 的 SSH 访问(参见下面的链接),并将您的 Apache 站点添加为远程站点,或者将其配置为 git repo(这是最好的方法)
  • 使用专为 WSL 设计的这个出色的终端客户端https://github.com/goreliu/wsl-terminal
  • 创建另一个用户(默认为root
  • 如果使用 PHP7,您将需要“手动”进行设置,因为默认aptrepo 不包含它。

有用的网址:

祝你好运,发布任何具体问题,我会尽力提供帮助。

答案2

我已经能够“apt-get install apache2”并启动服务“/etc/init.d/apache2 start”。此时,您将能够本地访问服务器(从 Windows 10 框),如果您打开 Windows 防火墙,则可以从其他计算机访问它。我还没有尝试过 mysql 或 PHP,WSL 开发人员仍在添加新的系统调用(伪 ttys 是只是例如,目前不支持 timer_create,因此有些功能无法正常工作。例如,apache 警告您无法启用 APR_TCP_DEFER_ACCEPT。但是,我能够在 WSL 中运行 tightvncserver、twm、firefox 和 xterm,并从 VNC 远程连接到它(有趣!)。

值得注意的是,当你使用 WSL 启动 Windows 10 系统时,upstart 或 init.d 不会自动启动,因此你需要在脚本中或手动启动服务。

您可以通过网络或直接文件访问与 WSL 通信。WSL 可以通过 /mnt/c/ 访问 C: 驱动器,Windows 10 可以通过 c:\Users\%USERNAME%\AppData\Local\lxss 访问 WSL。要在 /mnt/c 上写入文件,您需要以管理员身份启动 bash。您无法通过 WSL 运行 Windows 可执行文件。

WSL 运行 Ubuntu 14.04 ELF 二进制文件,所以我想你需要用于 Linux 开发扩展的 Visual C++(我还没尝试过)。

祝你好运!

相关内容