1. HOME
  2. »
  3. ソフトウェア
  4. »
  5. 仮想化ソフト
  6. »
  7. UTM
  8. »
  9. UTMでの仮想環境(Ubuntu)でWebサーバを立ち上げる方法

UTMでの仮想環境(Ubuntu)でWebサーバを立ち上げる方法

M1 MacではVirtualBoxがうまく動作せず、UTMを使っているのですが、UTMの情報がまだまだ少ない気がします。

さて、VPSなどで運用するサイトをお持ちの方でしたら、サーバなどの知識が必要になります。
外部からのSSH接続、ApacheやNGINXでのWebサーバの構築、といった知識です。

しかし、実際に運営するサイトのサーバに様々な変更を加えるのは、ちょっと怖かったりします。
そんなとき、仮想化ソフトを使って、VPSで使っているOSをインストールし、サーバを立ち上げることで、まずはローカル環境で試してみることができます。

そこで、今回はUTMで構築した仮想環境(Ubuntu)でWebサーバを立ち上げる方法を紹介します。

目次
  1. 今回の環境について
  2. 仮想環境の設定について(ポートフォワーディング)
  3. ファイアウォールの設定
  4. SSHのインストールとSSHDの立ち上げ。(外部からアクセスできるようにする)
  5. Macのターミナルから仮想環境にSSH接続する
  6. NGINXでのWebサーバ構築
  7. ApacheでのWebサーバ構築
  8. ネットワーク内の、別のPC(Mac)、スマホなどからアクセスする方法
  9. まとめ

今回の環境について

今回は以下の環境で、仮想環境を作っています。

  • ハード: MacBook Air (M1, 2020)
  • OS: macOS Big Sur
  • 仮想化ソフト: UTM
  • 仮想環境のOS: Ubuntu Server

また、UTMを使ってM1 MacにUbuntuの仮想環境を構築する方法は、以下の記事をご覧ください。

※今回はサーバの構築方法ですので、デスクトップ環境は必要ありません。もしデスクトップ環境をインストールしている場合は、Ubuntuのターミナルを開いて、以下で紹介するコマンドを実行することができます。

仮想環境の設定について(ポートフォワーディング)

では、仮想環境の設定を変更していきましょう。
Ubuntuの仮想環境を右クリックして「Edit」を選択します。

「Network」を選択し、「New」をクリックします。
Guest PortとHost Portには「80」と入力し、「Save」で保存します。

同じように「22」と「443」を追加します。

「Save」をクリックして、設定完了です。

設定が済んだら、仮想環境を立ち上げておきましょう。

ファイアウォールの設定

続いて、ファイアウォールの設定をしていきましょう。
この設定がうまくされていないと、外部から接続できない場合があります。

以下のコマンドを実行すると、おそらくinactive(非アクティブ)と表示されます。

$ sudo ufw status
Status: inactive

そこで、以下のコマンドを実行し、ファイアウォールをアクティブにします。

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

もう一度、以下のコマンドで、アクティブになっているかどうかを確認します。

$ sudo ufw status
Status: active

この状態だと、外部からアクセスできなくなってしまうので、ufw allowを使って、特定のポートへのアクセスを許可します。

$ sudo ufw allow 22
$ sudo ufw allow 80
$ sudo ufw allow 443

SSHのインストールとSSHDの立ち上げ。(外部からアクセスできるようにする)

外部、たとえばMac本体などから、仮想環境に接続したいときは、SSHを使うことが多いです。

SSHは、離れたところにあるコンピュータを遠隔操作する仕組みです。サーバを操作するときによく使いますね。
また、SSHDは、SSHでの接続を待ち受ける側のプログラムです。

つまり仮想環境(Ubuntu)側でSSHDを立ち上げておくと、Mac側から仮想環境(Ubuntu)を操作できるようになります。
では、UbuntuにSSHをインストールし、SSHDを立ち上げます。

$ sudo apt install ssh
$ systemctl start sshd

Ubuntuにデスクトップ環境をインストールしていない場合は、そのまま上記コマンドを実行します。
もし、デスクトップ環境を作っている場合は、Ubuntuのターミナルを開いて、上記コマンドを実行してください。

Macのターミナルから仮想環境にSSH接続する

ではUTMで立ち上げたUbuntuに、Mac側からSSHで接続してみましょう。

Macでターミナルを開き、以下のコマンドを実行します。
ユーザ名のところは、各自設定したユーザ名を入力してください。

$ ssh ユーザ名@127.0.0.1

また、127.0.0.1はローカルホストです。
ですので、こんなふうにもできます。

$ ssh ユーザ名@localhost

しかし、SSHで接続しようとすると、以下のような警告が出ることがあります。

$ ssh ユーザ名@127.0.0.1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
〜省略〜

そのときは、ssh-keygenというコマンドを使います。

$ ssh-keygen -R 127.0.0.1
# Host 127.0.0.1 found: line 3

このあと、もう一度sshコマンドで接続しましょう。

もし接続できない場合は、UbuntuでSSHDが立ち上がっているか、ポートフォワーディングがちゃんと設定されているか(22番ポート)、などを確認してください。

NGINXでのWebサーバ構築

つづいて、NGINX(エンジンエックス)を使って、UbuntuをWebサーバとして使えるようにしていきます。(Apacheを使いたい場合の方法は、このあとに紹介しています)

まず、以下のコマンドでNGINXをインストールします。

$ sudo apt install nginx

以下のコマンドで、NGINXの状態を確認できます。

$ systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset:>
     Active: active (running) since Xxx xxxx-xx-xx xx:xx:xx UTC; 8h left
       Docs: man:nginx(8)

この場合、Active: active (running)になっているので、NGINXは立ち上がっています。
もし、Active: inactive (dead)となっている場合は、以下のコマンドで起動します。

$ systemctl start nginx.service

ブラウザから127.0.0.1へアクセスしてみましょう。

Welcome to nginx!というページが開けば成功です。

ApacheでのWebサーバ構築

NGINXでなく、Apacheを使いたい場合の方法を紹介します。

$ sudo apt install apache2

以下のコマンドで、Apacheの状態を確認できます。

$ systemctl status apache2.service
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
     Active: active (running) since Tue 2021-04-27 08:54:10 UTC; 2min 20s ago
       Docs: https://httpd.apache.org/docs/2.4/

この場合、Active: active (running)になっているので、Apacheは立ち上がっています。
もし、Active: inactive (dead)となっている場合は、以下のコマンドで起動します。

$ systemctl start apache2.service

ブラウザから127.0.0.1へアクセスしてみましょう。

Apache2 Ubuntu Default Pageというページが開けば成功です。

ネットワーク内の、別のPC(Mac)、スマホなどからアクセスする方法

自身の仮想環境に他の端末から接続したいときや、サイトを他の端末のブラウザで確かめたいときがあると思います。
そんなときは、仮想環境(Ubuntu)を起動した状態で、MacのIPアドレスを使うことで、それが可能になります。

SSHで接続したい場合は以下のようにします。
192.168.xx.xxは、ご自身のMacのIPアドレスに置き換えてください。

$ ssh ユーザ名@192.168.xx.xx

また、他の端末のブラウザで確かめたいときは、ブラウザにMacのIPアドレスを入力します。

まとめ

VPSなどでサイトを運営しているときなど、自身でWebサーバを立ち上げる必要がありますが、そのサーバに、いきなり慣れない変更を加えたりするのは、すこし抵抗があるときがあります。

そんなときは、自分のパソコンやMacに仮想環境を作り、そこでWebサーバを立ち上げて、試してみることをおすすめします。
そんなわけで、今回はUTMを使ってWebサーバを構築する方法を紹介しました。

サーバの設定を変更するとき抵抗がある場合は、ぜひお試しください。

スポンサードリンク

関連コンテンツ

オススメ記事

YouTubeのおすすめやコメントを非表示にする方法。もう時間を無駄にしたくない!

YouTubeを見ていると、つい時間を無駄にしてしまうことってありますよね。気がつくと時間が過ぎていて、あとから、全然作業進んでない……ってなる方も多いと思います。 そんなときは、Chrome

rufus

Rufusの使い方。ブータブルUSBを簡単に作成可能!

起動にとても時間がかかる@It_is_Rです。 Rufusは、起動可能なUSBドライブを作成するのに、とても便利なソフトです。今回はRufusの使い方ということで、CentOSのインストールU

Vim

vimrc 設定で、 Vim をまるで普通のテキストエディタの様に使う方法。

寒い日が続いております。 @It_is_R です。 寒いと手がかじかむし、部屋を暖めると眠くなるし、何かいい方法はないものでしょうかね。 何も設定しない状態で Vim を使うと、真っ白な画面に

franz

便利すぎ! Franz 5で普段使うチャットサービスを管理してみよう!

Franzは様々なチャットサービス等を、1つのアプリ上で管理できる便利なツールです。 このツールを初めて使ってみたのですが、一瞬で使いたいチャットサービス等を開くことができ、とても便利なので、今

vagrant virtualbox

【 Mac 】 Vagrant と VirtualBox のインストール方法。

夢は大きければ大きいほど、叶わない。@It_is_Rです。 今回の記事は、Vagrant & VirtualBox のインストール方法です。 サイトからダウンロードしてインストール

Vim

【Vim】Macで高機能テキストエディタ。最新版のインストール方法。

妖怪人間Vim。。。はいすいません。@It_is_Rです。 これから複数回の記事に分けて、Vimの使い方を解説していきたいと思います。 今回は、Macに最新版のVimをインストールする方法です

software

【Mac可】CrossFTPを使ってサーバーとデータを送受信する方法!!

目に入れても痛くないほど動物が好きな@It_is_Rです。もちろん目に入れたことはありません。だって痛いじゃん。 いままでサーバーとのファイルのやり取りにはDWを使っていたのですが、少し使い勝手

office

WordやExcel、PowerPointなど、Officeを無料で使う方法

学校などで、WordやExcelを使って提出物を作らなければいけないことはありませんか? Microsoft Officeの購入を考えている方もいるかもしれません。しかし、今後使用するかどうかも分か

Data Recovery Wizard

無料データ復元ソフト「Data Recovery Wizard」の機能を徹底検証!

大切なデータを誤って削除してしまった、必要ないと思って削除したファイルが後々必要になった、などといった経験はありませんか? 通常ですと、削除したファイルはゴミ箱に保存されるので、復旧することは容易で

【Vim使い方】行番号を表示&非表示にする方法。

もしも魔法が使えたら猫になります。@It_is_Rです。 Vimの使い方、第7回目です。 今回はVimの画面に行番号を表示&非表示にする方法を紹介したいと思います。 前回の記事はこちらに

4件のコメント “UTMでの仮想環境(Ubuntu)でWebサーバを立ち上げる方法

  1. 初めまして.
    M1 mac に仮想マシンを入れて,リモートログインして使用するためにこの記事を参考にしました.
    おかげで解決することができました.ありがとうございました.

    1点質問なのですが,ネットワークの設定に使用したポート番号はなぜ 80, 22, 443 の3つなのでしょうか?
    この番号や使用するポートの数に意味はありますか?

    1. >名無しさん
      はじめまして。コメントありがとうございます。

      使用したポート番号についてですが、デフォルトで80番のポートはHTTPに使われます。これを設定しないと、NGINXやApacheでWebサーバを構築しても、Mac側からページを開くことができません。
      同じように443はHTTPSで使われます。ただ、今回の記事内でHTTPSは使っていないので、これに関しては、今回の場合は設定しなくても動作します。

      SSH接続するときには、デフォルトで22番ポートが使われます。これを設定しておかないと、MacのターミナルからUbuntuにSSHで接続ができません。

      参考になれば幸いです。

コメントをどうぞ!(コメントは承認後に反映されます)

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です