概要 (背景)
試験的にAWSで稼働していたWordPressのサイトを、無料枠の1年間が終了するのに合わせてローカルのテスト環境に移行することにしました。
また、元々 AWS で Apache のバーチャルホストを使用してWordPressのマルチサイトホストをしていたのですが、ACM 証明書を Let's Encrypt で取得した証明書に置き換えたところ、サイトがサブドメインで正常に表示できなくなったことも、移行の理由です。原因の切り分けのためにも一度クリーンな状態でローカル環境から構築し直すことにしました。
Hyper-V を使用するのは、はじめて Windows 11 Pro 環境を mini PC で入手したので、活用方法としてWordPress のテスト環境に利用することにしました。
親記事
次記事
作成中
2025/8/6 追記:
Alma Linux 9.6 VM は断念しました。dnf update
が内部依存ファイルの不整合により、エラーになり、LAMPが構築できません。
よって、VMのディストリビューションをかえると、タイトルと合わないので、本執筆プロジェクトはクローズします。
読んでいる人がいたら申し訳ないです。アップグレードに慣れている人はAlma Linux 9→ 10 にアップグレードしてみるなど工夫はできるんじゃないでしょうか。VMのインストールを 10 でやってもいいと思います。
私はパーティションのボリュームの関係で 9.6 を 2回インストール (クソだるすぎ) しましたが、10 までまた同じことをする気にはなれませんでした。時間の無駄です。Ubuntu Desktop があるので、わざわざ VMでやる必要を感じないので。
クラウドから仮想環境に移行
上記の概要の通り、AWS の EC2 から ローカルの Hyper-V 仮想環境にWord Pressのサイトを移行させます。
構築する環境
OS :
ゲストOS は Alma Linux 9.6
ホストOS は Windows 11 Pro ( Ubuntu Desktop とデュアルブートしている )
メモリ: 4 GB
ストレージ: 64 GiB (仮想ハードディスク, VHDX)
Hyper-V 環境構築
IP アドレス
-
Web サーバーとして稼働させたいので、IP アドレスを固定する。
-
移行元 WordPress データベースの MariaDBは Webサーバーの Amazon Linux インスタンスに 同居しているため、サブネットは分けていない。移行先でもとりあえずは PHP/WordPress をデータベースと同居させる。
-
localhost や 127.0.0.1 などの エイリアスや IPアドレスは、WordPressのマルチサイトホスティングを利用できない。そのため、別の IPアドレスをHyper-V の仮想環境で使用するように設定。また、ServerAlias を Apache のバーチャルホストの設定で任意のエイリアス (example.com のような文字列) を設定する。
Windows 仮想化機能の有効化
- Windows key + Rを押して ,
appwiz.cpl
と入力。
- 「プログラムと機能」で、左のメニューから「Windowsの機能の有効化または無効化」をクリック。
- Windowsの機能ウィンドウで、Virtual Machine Platformを見つけて選択します。
追記: ここで一緒に「Hyper-V」もチェックしとくと楽です(下記手順参照)
Hyper-Vのインストール
※上の仮想化機能の有効化の追加後、Hyper-V じたいを有効化する感じです
- 「スタート」を選択し、「コントロールパネル」を検索
- [プログラム]を選択し、[プログラムと機能] を選択
- [Windows の機能の有効化または無効化]を選択します。
- [Hyper-V]を選択し、[OK]を選択します
インストールメディア (起動ISOファイル) のダウンロード
Alma Linux 9 のISOファイルを 公式からダウンロード。
数分でダウンロードされます。
- Google (Edge) で検索したらミラーサイトからの方が早いと出てきますが。
- そんなに時間かからなかったので 公式からでok (almalinux org って検索したらEdgeで少し下に上記リンクの公式サイトが出てきます)
仮想マシン作成
仮想マシンをHyper-Vに作成します
Windows key を押し、「Hyper-V マネージャー」と検索
[Hyper-V マネージャー]を選択
注意: ここで Default Switch を選ばないようにします。Default Swich を使用するとIPアドレスを固定できなくなります。さらに、再起動でアドレスが変わってしまいます。
Hyper-V Default Switchは、ホスト システムの IP アドレスに基づいて、次の IP アドレス範囲をランダムに使用します。
- 開始IP: 192.168.0.0 – 終了IP: 192.168.255.255
- 開始IP: 172.17.0.0 – 終了IP: 172.31.255.255
また、ChatGpt いわく、
default Switch
はインターネット接続を NAT経由で提供するだけで、外部からの「着信通信」は通しません。そのため、サブドメインによる WordPress マルチサイトなどには不向きです。
とのこと。
8.仮想ハードディスクのサイズ (64GB)
WordPress のテスト環境で余裕を持たせてこのくらい (ChatGPTとかにきいて適宜調整)
9.ディスクイメージ選択 (ISOファイル形式)
ダウンロードした Alma Linux の起動ディスクを選択し、次へ。
ネットワークの設定
Web サーバーとしての設定を行う必要があります。
外部仮想スイッチを使用して外部アクセスを可能にする
以下の要素の理解が構築をスムーズに進めるカギだと思います。
構成要素 | 役割 |
---|---|
物理NIC | 実ネットワークとの接続 (実際のLAN 端子のポート) |
外部仮想スイッチ | 物理NICと仮想NICの橋渡し |
仮想NIC (仮想ネットワークアダプタ) | 仮想マシン内から外部への通信手段 |
物理的な Webサーバーは、たとえば 80番ポートに来たリクエストを受け付けて、そこからレスポンスを返します。これを仮想的に行う必要があります。
そのためには外部仮想スイッチを使用します。外部仮想スイッチを使用すると、物理 NIC のかわりに、仮想 NIC を使用して、外部ネットワークとやりとりを行います。
外部仮想スイッチを作成する
リンクの公式手順の通りです。仮想スイッチの種類は「外部」を選択します。
Hyper-V マネージャーを使用して仮想スイッチを作成する方法を次に示します。
Hyper-V マネージャーを開きます。
[操作]ペインから[仮想スイッチ マネージャー] を選択します。
仮想スイッチの種類を選択し、[仮想スイッチの作成] を選択します。
仮想スイッチの名前を入力し、次のいずれかの手順を実行します。
外部を選択した場合は、使用するネットワーク アダプタ (NIC) を選択し、[OK]を選択します。
変更によってネットワーク接続が中断される可能性があるという警告が表示されます。続行する場合は[はい]を選択します。
注意する点
-
外部仮想スイッチを適用する物理 NIC (今回は Wi-Fi なのでWi-Fi の方を選びました) をプルダウンから選択
【追記 : イーサネットアダプタを選択した方が無難です。後で詳述。】 -
[管理オペレーティング システムにこのネットワークアダプターの共有を許可する ] のチェックを外す
-
ただしネットワークアダプタ共有のチェックを外すと、ホストOS (Windows11) 側は Wi-Fi 経由でインターネットに接続できなくなります。インターネットには、LANケーブルを使用してイーサネットの物理NIC 経由で接続するなどして工夫します。
管理オペレーティングシステムの共有はしない
Hyper-V ホストでは 仮想 NIC を使用(共有)しない場合、Hyper-V の仮想スイッチマネージャーで [ 管理オペレーティング システムにこのネットワークアダプターの共有を許可する ] のチェックを外します。
デフォルトではチェックが入っているので外しておきます。
※普段はネットからホストを隔離させるが、ホストOS側で オンラインによる Windows Update を行うなど、環境の管理や調整したい時だけ一時的にインターネットに繋げるような方法 (USB Wi-Fi NICの使用など) が一般的みたいですがこの記事では触れません。(取り敢えずは LANケーブルを使う予定)
※また、ISOイメージをオフライン版 (Alma 9.6の場合 boot以外の種類のもの) にした場合はオンラインではなくても起動ができるかもしれませんが、今回はセキュリティの面を考えてオンライン版イメージにしました。 (ホストを必要な時だけオンラインにする想定)
仮想ネットワークアダプタ (NIC) を追加する
仮想スイッチがネットワークアダプタを認識するように設定します。
仮想マシン (Hyper-V マネージャー) を選択し、右クリック>設定
-
[ ハードウェアの追加 ] ウィンドウで、左のペインから[ネットワークアダプタ]を選択
-
仮想スイッチのドロップダウンリストから該当のスイッチ ( 今回は外部仮想スイッチ )を選択し、[OK]
追記: 正常に仮想 NIC が作成されていない場合、物理ネットワークアダプタの割り当てができていない可能性があります。その場合以下のリンク (筆者別投稿) を参照してみてください。PowerShell で手動割り当てすると、この問題が解決しました:
正常に外部スイッチの 仮想 NIC が作成されていない場合、以下の ipconfig
ifconfig
をホスト側のコマンドプロンプトで実行すると、vEhernet (Default Switch)
しか出てきません。
ifconfig
......
イーサネット アダプター vEthernet (Default Switch):
接続固有の DNS サフィックス . . . . .:
リンクローカル IPv6 アドレス. . . . .: fe80::6ad6:e867:1f03:5613%24
IPv4 アドレス . . . . . . . . . . . .: 172.18.0.1
サブネット マスク . . . . . . . . . .: 255.255.240.0
デフォルト ゲートウェイ . . . . . . .:
IPアドレスを固定する
次に、仮想 NIC を使用し、さらに IPアドレスを固定します。ホストOSじたいを再起動しても、IPアドレスが変わらないようにします。
外部スイッチはホストとブリッジする
上記にも書いたように、あらためて Default Switch ではなく、外部仮想スイッチを使用することを強調しておきます。Default Switch だと固定IP化ができないからです。
仮想NIC に例えば 192.168.xx.1
をわりあて、仮想マシン に192.168.xx.2 を付与するイメージになります。外部仮想スイッチがホストと仮想マシンとの架け橋の役割になります。
参考
2025/8/6 追記: ルーターの再起動によってDHCPの プライベートIP割り当てが変更されるのを防ぐ場合、別途 ホストマシン側で設定が必要になります。
【Ubuntuの場合】
仮想マシンを起動
まず仮想マシンを起動。
-
仮想マシンを選択>設定>セキュリティ>[セキュアブート] > テンプレートを「Microsoft UEFI 証明機関」にする
-
Hyper-V マネージャー上で仮想マシンを選択して、上の操作メニュー>[起動] から仮想マシンを起動
-
状態が実行中になったら仮想マシンを右クリック>[接続]
最終的にこのようながめんになりました。
※【重要】セキュアブートのテンプレートが “Microsoft Windows” になっている場合、Windows OS に署名されたブートローダーのみを許可 する (ChatGptいわく)ので、起動・接続に失敗します。
※一方「Microsoft UEFI 証明機関」は、Microsoftが信頼する複数のOS用の署名(Linux含む)を許可します。 (ChatGptいわく)
※[接続]後、"start PXE over IPv4
" と表示されて接続できない場合は、ISO が見つからずネットワーク経由で接続しようとしている (ChatGptいわく)。
ISO がマウントされていること (上記手順を参照)、マシンがインターネットにつながっているか、または接続不良じゃないか確認。
Alma Linux 9 のインストール時設定
以下のサイトを参考に設定を行います。(dvd版のISOの場合、インストールウィザードで設定)
インストールを行う前に必須となる3つの項目に注意を払います。それは次の通りです。
- インストール先 (パーティショニングの設定).
- ルートアカウントの設定。
- 通常アカウントの設定。
参考
- パーティショニングをおこなう
- 自動構成の場合
システム>[インストール先] をクリックし、完了を押します。これにより自動的にパーティショニングが選択されます。 - カスタム (手動) の場合
- ストレージの設定> [カスタム] を選択。
- ハードドライブが選択されていることを確認し、完了をクリック。
- 「手動パーティション設定」ウインドウが開く。[+] 記号を押してパーティションを設定。
- マウントポイントに作成するパーティションを入力。ここでは /boot, /boot/efi, /home, /, /Swap の5つを作成。
- それぞれのパーティションにサイズと単位を指定し、マウントポイントを追加。
- 完了をクリック>「変更を許可する」
2.root パスワードの設定
- ユーザーの設定>[ root パスワード ]
をクリック。 - root ユーザーのパスワードを設定する。(デフォルトで SSH ルートログインは無効化されている。有効にする場合は
"Lock root account"[パスワードによる root SSH を許可する] オプションのチェックを外されるチェックをされるとよいかと。)
3.ユーザー (通常アカウント)の作成
[ユーザー作成] をクリックし、アカウントを作成。
4.インストール
5.再起動
(固定) IPアドレスの設定
ゲスト OS側 ( Linux) で設定をおこないます。ゲストマシンの IP を固定します。
IPアドレス、デフォルトゲートウェイを手動設定する
# IPv4 アドレスを手動モードで設定する
nmcli con mod eth0 ipv4.method manual
# IPv4 アドレス を割り当てる
nmcli con mod eth0 ipv4.addresses 172.18.0.100/16
# eth0 のデフォルトゲートウェイにIPアドレスを割り当てる
nmcli con mod eth0 ipv4.gateway 172.18.0.254
# 設定を有効化
nmcli con up eth0
接続が正常にアクティベートされました(D-Bus アクティブパス:/org/freedesktop/....... )
hostname -I
や ip a
の eth0
で 172.18.0.100
のIP アドレス が見えるか確認してください。
そして dnf update
などのコマンドを実行してみて、外部のインターネットとゲストOS がデータをやり取りできるか確認してください。