WSLをサーバーとして使用する

WSLをサーバーとして使用する

最近 WSL をインストールしたのですが、少し試してみて、いくつか疑問に思ったことがあります... まず、これをサーバーとして扱うことは可能でしょうか? たとえば、小さな MySQL データベースをホストしたい場合、問題ないようです。 しかし、別のマシンからその MySQL インスタンスに接続することは可能でしょうか? どうすればよいでしょうか?

このサブシステムをターゲットにして、Visual Studio 2015 から Linux 用の C++ アプリケーションを開発できますか? この場合、VS2015 を実行しているのと同じボックスである「リモート マシン」に接続するにはどうすればよいでしょうか?

または、Web サーバーを実行している場合 (実行できますか?)、Chrome などのツールを使用して Windows 10 マシンからそのサーバーに接続できますか?

答え1

Linux マシンと同じように動作します。現在、LAMP サイトを運用していますが、動作は高速です。ドメインの設定も問題ありません。

ヒントと考慮すべき事項:

  • 外部ドメインを転送するには、Windows ファイアウォールを適切に設定する必要があります。
  • Windows フォルダからサブシステムにアクセスしたり編集したりしないでください。(少なくとも現在のバージョンでは)問題が起こります。
  • それでも Visual Studio (または他のエディター) でファイルを編集したい場合は、WSL への SSH アクセスを設定し (下のリンクを参照)、Apache サイトをリモート サイトとして追加するか、git リポジトリとして構成します (これが最適なアプローチです)。
  • WSL専用に設計されたこの優れたターミナルクライアントを使用してくださいhttps://github.com/goreliu/wsl-terminal
  • 別のユーザーを作成します(デフォルトはroot
  • aptPHP7 を使用する場合は、デフォルトのリポジトリに含まれていないため、「手動で」設定する必要があります。

便利なリンク:

頑張ってください。何か具体的な質問があれば投稿してください。できる限りお手伝いします。

答え2

私は「apt-get install apache2」を実行して「/etc/init.d/apache2 start」サービスを開始できました。その時点で、サーバーにローカルで(Windows 10ボックスから)アクセスできるようになり、Windowsファイアウォールを開くと他のマシンからアクセスできるようになります。私はmysqlやPHPを試したことがなく、WSL開発者は新しいシステムコール(疑似tty)をまだ追加中です。ただ追加され、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バイナリを実行するので、Visual C++ for Linux 開発拡張機能(私は試していません)。

幸運を!

関連情報