こんにちは、鯨井貴博@opensourcetechです。
今回は、Windowsに実装されている機能(WSL)を使って
Linux(LinuCなどの資格勉強もOK)を学習する方法を紹介します。
WSLとは?
「Windows Subsystem for Linux」の略で、
Windows上のプロセスとしてLinuxディストリビューションを動作させるものです。
動作させるLinuxディストリビューションは、ストアから入手します。
「linux」などで検索すると表示される「WindowsでLinuxを実行する」がWSLになります。
導入可能なLinuxディストリビューションは、現時点では以下のものとなりますが、
順次追加されていくのではないかと思います。
Kali Linux
Debian GUI/Linux
SUSE Linux Enterprise Server 12
openSUSE Leap 42
Ubuntu
WSLインストールの準備
Windowsが最新の状態である必要があるため、Windows Updateを実施します。
WSL(各Linuxディストリビューション)のインストール
ストアからそれぞれのLinuxディストリビューションを選択して、購入とします。
※購入となってますが、お金を請求されることはないので大丈夫です。
インストール後、起動します。
なお、以下のようになった場合、
WSLの機能がWindowsで有効になっていない為、次の手順で有効化します。
コントロールパネル > プログラム > Windowsの機能の有効化または無効化 にて、
Windows Subsystem for Linuxにチェックを入れ、
Windowsを再起動します。
再起動完了後は、スタートメニューから追加したLinuxディストリビューションを起動できます。
以下の場合Kali Linuxが起動しており、
使い方は通常のKali LinuxをCLIで操作していているのと変わりません。
Debian GNU/Linuxも同様です。
Debian GNU/Linuxの場合は、
ユーザーアカウント(一般ユーザー)を作成する必要があります。
ユーザー作成後は、lsなどの各種コマンドやディレクトリ構造、シェルのファイルなどを実施して、Linux(LPICやLinuCなどの資格)の学習が出来ます。
Webサーバ(Apache)のインストール・構築
各Linuxディストリビューションでは、パッケージインストーラー(apt-getなど)も使えますので、サーバパッケージをインストールできます。
sudo apt-get update(インストール関連情報を最新にする)
sudo apt-get install apache2(apache2のインストール)
dpkg -l | grep apache2(インストールパッケージの確認)
sudo /etc/init.d/apache2 start(apache2の起動)
設定ファイルは、/etc/apache2/apache2.confになります。
※後述する理由から、今回は「Linsten 8080」と使用するポート番号を変更しています。
また、apachectl configtestでコンフィグの構文チェックが出来、
ブラウザから「http://windowsのIPアドレス:8080」とすればデフォルトページが表示されます。
なお、スタートメニューから以外も、
以下のような起動方法もあります。慣れるとこちらの方が早そうですね。
Apache2をポート番号8080で起動した理由
WSLを使ってサーバを構築する際にハマりそうなポイントですが、
WSLはあくまでもWindowsの1プロセスとして動作しているので、
Windowsの別プロセスが各ポートを使用している場合には、
サーバプログラムが使用ポートの重複から起動が出来ないので注意が必要です。
重複しているプログラムがある場合は、
コマンドプロンプトやタスクマネージャなどから確認が出来ます。
netstat -nao(該当ポートのプロセスのPIDがいくつか確認します)
※以下だと、PID 4
調べたPIDのプロセス名を確認します。
※以下の場合、System(NT Kernel & System)となっており、IISやSkypeなどが該当します。
Windowsの機能から、IIS(インターネットインフォメーションサービス)を無効化すれば、TCPポート 80が空き、WSLで使用可能になります。