本番のWebサーバーへいきなり環境設定するのは怖いので、ローカルの環境のHyper-Vを使い、Webサーバーを構築してみました。
まず、Ubuntu Server 20.04LTS版をインストールするところから。
PHP、NGINX(エンジンエックスと呼ぶらしい)、MySQLのインストール・セットアップは次回やります。
今回の記事では画面はWindows 8.1 Professionalを使用していますが、Windows10でも手順はほぼ変わりません(細かい名称とネットワークの設定あたりが少し違う)。
Windows10でも実際にほぼ同じ手順で実施しています。
ちなみに、Hyper-VはProfessionaエディション以上でしか使用できません(Homeエディションでは無理です)。
商用利用以外の個人利用であればVMware Workstation Playerが無償で利用可能なので、そちらもご検討下さい。
インストールしたUbuntu Serverのバージョンは、20.04 LTSです。
Hyper-Vのインストール
インストールした最初の状態ではHyper-Vはインストールされていません。
コントロールパネル→プログラム→プログラムと機能の中にある、Windowsの機能の有効化または無効化を選択すると、以下の画面が出てきます。
Hyper-Vを有効化し、OKを押し、再起動します。

※補足ですが、CPUがIntelの場合、BIOSの設定でIntel Virtualization Technology(VT)を有効化しておく必要もありますので、確認して下さい。
これでHyper-Vを使う準備はできました。
仮想マシンの作成
Hyper-Vマネージャーを起動します。
操作→新規→仮想マシンを選択します。

いきなり完了にしてもいいのですが、細かく設定をしたいので「次へ」を押します。

名前を決めます。
今回は「UbuntuServer20.04」にしました。

第1世代を選択します。

メモリ量を指定します。
今回は1GBにします。

Windows 8 Proだと選択できるネットワークがないので、このまま「次へ」を押します。
Windows10 Proだと「既定のスイッチ」が出ると思います(後述)。

ハードディスクの名称は特に変更しないので、このままで。
容量を変更したい場合は、ここで指定します。

後でも指定できますが、インストール用のUbuntuのISOイメージをここで指定します。
もしまだダウンロードしていない場合は、Ubuntuの公式サイトからダウンロードします。

確認画面がでkるので、「完了」を押します。

これで、仮想環境の器ができました。
ネットワークの作成
Windows 8 Proだとデフォルトで仮想スイッチが選択できませんので、ここで作成します。
ちなみに、Windows 10 Proでは「既定のスイッチ」というものが既にあり、これを選ぶことでDNSの名前解決とNAT経由のインターネットアクセスが可能です(Windows 8 Proでは無理です)。
とりあえず、内部ホストOSとゲストOSを繋ぐネットワークは最低限作成します(そうしないとファイル送れない)。
操作→仮想スイッチマネージャーをクリックします。

「内部」を選択し、「仮想スイッチの作成」をクリック。

外部、内部、プライベートの違いは以下の通りです。
- 外部:物理ネットワークへのアクセスを提供する。外部ネットワークと直接通信するのと同様の形態で、かつ、仮想OS間も通信可能。
- 内部:仮想OSと管理側のホストOSの間の通信を許可する形態(ゲストOS間の通信も可)。
- プライベート:仮想OS間の通信のみ可。
今回は「内部」を選択します(テスト用Webサーバーだから、ゲストOS-ホストOS間の通信さえできればそれでいい)。
そして、「OK」を押します。

これで仮想スイッチは作成されました。
次に、先ほど作成した仮想マシンの設定をします。
右クリック→設定をクリックします。

ネットワークアダプターの「仮想スイッチ」で、先ほど作成した仮想スイッチを選択し、「OK」をクリック。

これで、仮想ネットワークの設定ができました。
ただ、DHCPで動的にIPを割り振る仕組みもないので(Windows 10 Proの「既定のスイッチ」にはある)、管理側のホストOSのIPも設定しておきます。
Ubuntu Serverのインストール
いよいよ本命の、Ubuntu Serverをインストールします。
仮想マシンを右クリックし、起動を選択します。

ゲストOSが起動するので、画面に表示させるために再度右クリックして接続を選択します。

うまくいけば、おなじみの真っ黒な画面がでるはずです。
補足:エラー発生時の対処法
エラーメッセージ「ハイパーバイザが実行されていないため仮想マシンが起動できません」と出る場合
原因は2つ考えられます。
- そもそも、Hyper-V プラットフォーム(Windows10ならHyper-Vハイパーバイザ)がインストールされていない
- BIOSの設定でIntel-VT(Virtualization Technology)が有効になっていない
のどちらかです。
確認してみてください。
ゲストOSの画面が大きすぎてはみ出す時の対処法
ノートPCなど画面が小さいPCだと、ゲストOSの画面が大きすぎて画面からはみ出してしまい、画面下にある選択肢が見えなくなってしまいます。
回避的の方法ですが、仮想マシンの設定→ハードウェアの追加で、「RemoteFX 3Dビデオアダプター」を追加し、設定で解像度を低めに設定すると、ゲストOSの解像度を調整可能です。
ただし、この方法はWindows10 Proでしかできません(8 Proでは無理です)。
本題に戻ります。
言語の選択ですが日本語がないのでEnglishを選択します。

キーボードのレイアウトをJapaneseにし、Doneを選択します。

IPアドレスを設定します。
Windows 10 Proで既定のスイッチを選択している場合はDHCPで動的にIPアドレスを割り振ることも可能です。
ただ、今回は固定IPを設定します。
Manual(画面になくてすみません)を選択し、IPアドレスを設定します。

プロキシの設定はしないので、Doneで次へ進みます。

ここも変える必要はありません。
Doneで次へ進みます。

インストール先のディスクの設定です。
Doneで次へ進みます。

同じく、Doneで。

Continueを選択。

ユーザー名を入力します。

OpenSSHのインストールを選択します。
WinSCPなどでファイルのやりとりをする際必要なので「X」をつけてよいでしょう。

Reboot Nowを選択して、再起動します。

こういう画面が出ることがありますが、無視してEnterを押します。

これでインストールは終わりです。
rootのパスワード設定
再起動が終わると、こんな画面なります。
Enterを押すと、ログインを求められるので、インストール時に作成したユーザーでログインします。

rootユーザのパスワードを設定します。
以下のように入力します。
sudo passwd root
自分のパスワード、rootのパスワード、rootパスワードの確認、を求められますので入力します。
試しに、root権限に昇格してみましょう。
以下のように入力します。
su
パスワードを求めらるので、rootのパスワードを入れます。
下のようにroot@…と表示されれば成功です。
root@サーバー名:/home/...
これで、Ubuntu Server インストールからrootユーザのパスワード設定までが完成しました。
補足:インターネットにつなげる場合は、Windows 8 ProだとNATの設定が別途必要
すみません、、、見落としていたところです。
Windows 10 Proだと「既定のスイッチ」を選択していればNATあたりのことは気にしなくていいのだけど、Windows 8 Proだとそう簡単にはいかないようですね。
Win 8なら仮想スイッチを「外部」にしたほうが、手間が少ないかもしれません。
以上です。