LoginSignup
4
2

【Linux】仮想環境でWEBサーバーを構築【Apache】

Posted at

はじめに

今回初めてWEBサーバーを構築しましたので、どのような手順で構築したか見返せるようにアウトプットしていきたいと思います。

目的

  • サーバー構築とはどのようなものか理解を深めること。
  • 簡単なWEBサーバーの構築手順を知ること。

環境

以下を用いてサーバーを構築しました。ホストOSはwindows11です。

  • VirtualBox
  • CentOS7
  • Apache

結果

webブラウザから今回作成したサーバーにアクセスし、「hello world!」と表示することができました。
image.png

手順

VirtualBoxをインストールした状態からの手順を説明します。
また、事前にCentOS7インストール用のISOイメージファイルをダウンロードしておいてください。

1.仮想マシンの作成

VirtualBoxの「仮想マシン」タブから新規を選択します。
image.png

「仮想マシンの作成」というウィンドウが開きます。
ここでは名前とフォルダのみ設定します。

名前 : 仮想マシンの名前(今回はCentOS_webserverという名前)を入力します。
フォルダ : 自分の保存したいフォルダを選択します。

上記の設定ができたら「次へ」ボタンをクリックします。
image.png

続いてハードウェアの設定をします。
メインメモリーは1024MBに設定します。
今回は最終的にwebブラウザで「hello world!」と表示するだけなので、メモリは少なくて問題ありません。
プロセッサー数は1CPUで十分なので初期設定のまま変更しません。
「EFIを有効化」は必要に応じてチェックをつけます。
CentOSのISOイメージがUEFI対応している場合、EFIを有効化してインストールすることが推奨されていますが、今回は有効化しなくてもwebサーバーを構築することができるのでチェックをつけません。
上記が完了したら「次へ」ボタンを押します。
image.png

続いて仮想マシンハードディスクの設定をします。
「仮想ハードディスクを作成する」を選択してディスクサイズを8GBに設定します。
デフォルトでは20GBとなっていますが、今回は簡易的なサーバーを作るので8GBあれば十分です。
image.png

概要を確認して問題なければ完了ボタンを押します。
これで仮想マシンの作成完了です。
image.png

2.CentOSのインストール

「VirtualBoxマネージャー」ウィンドウに戻り、作成した仮想マシンを選択します。
image.png

「起動」ボタンをクリックします。
image.png

以下の画面が表示されるまで待ちます。
image.png

事前にダウンロードしておいたISOファイルの選択をして「マウントとブートのリトライ」をクリックします。
image.png

下記の画面になるのでENTERを押します。
image.png

「Install CentOS 7」を選択してtabキーを押します。
image.png

以下の画面になります。
image.png

下記画像のように「inst.resolution=1024×768」を末尾に追加し、ENTERを押します。
1024×768の「x」はアルファベットのエックスです。
「=」の入力は「Shift」+「ほ」のキーでは入力できません。
シフトを押さずに「へ」を押すことで入力できます。
この設定によりCentOSのインストール画面が見切れるのを防ぎます。
image.png

少し待つと以下の画面になるので日本語を選択して続行をクリックします。
image.png

以下の画面になりますので、「ソフトウェアの選択」、「インストール先」、「ネットワークとホスト名」を設定します。
image.png

まず、「ソフトウェアの選択」をクリックします。
「最小限のインストール」が選択されていることを確認し、完了ボタンを押します。
image.png

続いて「インストール先」をクリックします。
ここではCentOSをどこにインストールするか決めます。
特に初期設定から変更せずに完了ボタンをクリックします。
設定を変更しているわけではないですが、一度「インストール先」をクリックして「完了」ボタンを押さないと設定が反映されません。
「ATA VBOX HARDDISK」は実際のハードディスクではなく、VirtualBoxによって作成された仮想ハードディスクを指します。仮想マシンはこの「ATA VBOX HARDDISK」を実際のハードディスクとして認識し、そこにOSをインストールしたり、データを保存したりします。
image.png

最後に「ネットワークとホスト名」の設定をしますが、その前に事前準備をします。
「VirtualBoxマネージャー」ウィンドウに戻り、「ネットワーク」をダブルクリックします。
image.png

初期設定では「割り当て」が「NAT」になっていますが、「ブリッジアダプター」に変更します。
初期設定の「NAT」では、ゲストOSとホストOSは同一ネットワークにはならず、ホストOSからアクセスできません。
「ブリッジアダプター」に変更することで、ゲストOSはホストOSのネットワークに直接接続され、ホストOSやその他のデバイスからアクセスできるようになります。
image.png

Ethernet(enp0s3)の隣のボタンをオンにします。
image.png
これによってIPアドレスを取得できます。
後々使用するのでIPv4アドレスをメモしておきます。
上記ができましたら完了ボタンを押します。
image.png

上記の設定ができましたら、右下の「インストールの開始」ボタンをクリックします。
image.png

下記画像のようにCentOSのインストールが開始されます。
インストールしている間にROOTの設定をします。
「ROOTパスワード」をクリックします。
image.png

rootのパスワードを決めて完了ボタンを押します。
image.png

インストールが完了したら下記画像のようになるので、右下の「再起動」ボタンを押します。
これでCentOSのインストール完了です。
image.png

3.webサーバーの作成

3-1.ログイン

再起動後少し待つと以下の画面になります。
image.png

今回はrootでログインしてwebサーバーを作成します。
本来は誤操作防止などの観点からユーザーでログインしてsudoで作業することが推奨されていますが、今回は簡易的なサーバーを作成するだけなのでrootで作業します。
rootと入力してENTERを押します。
image.png

CentOSのインストール時に設定したパスワードを入力してENTERを押します。
image.png

3-2.Apacheのインストール、起動

下記コマンドを実行し、Apache HTTP Serverをインストールします。

yum install httpd

image.png

途中で2回ほど[y/N]と確認されますが、どちらも[y]と入力してENTERを押します。
yum install -y httpdを実行することで確認内容をすべて「yes」とすることもできます。
image.png

続いて下記コマンドを実行し、Apache HTTP Serverがインストールできているか確認します。

yum list installed | grep httpd

image.png

以下のパッケージがインストールされていることがわかります。
httpd: Apache HTTP Serverの本体
httpd-tools: httpdに関連するツール群

image.png

これでApacheのインストールは完了です。
続いて下記コマンドを実行し、Apache HTTP Serverの起動に関する設定を確認します。

systemctl status httpd.service

Activeの項目がinactiveとなっており、Apache HTTP Serverが停止していることが確認できます。
image.png

下記コマンドを実行し、Apache HTTP Serverを起動します。

systemctl start httpd.service

image.png

再び下記コマンドを実行します。

systemctl status httpd.service

image.png

Activeの項目がactiveになっていることが確認できます。
これでApache HTTP Serverの起動が完了です。
続いて下記コマンドを実行し、システムの起動時にApache HTTP Serverが動的に起動されるようにします。

systemctl enable httpd.service

3-3.ポートの開放

下記コマンドを実行し、ポートを確認します。

firewall-cmd --list-all

servicesの項目にhttpがないことが確認できます。この状態ではhttpサービスが有効になっておらず、ブラウザからアクセスすることができません。
image.png

下記コマンドを実行し、ファイアウォールの設定を変更します。

firewall-cmd --zone=public --add-service=http --permanent

各オプションの意味は下記のようになります。
--zone=public : publicゾーンに対する操作を指定します。
--add-service=http : 指定したゾーンにhttpサービスを追加します。
--permanent : 再起動後も設定が維持されるようにします。
実行結果が以下のようになります。

image.png

下記コマンドを実行し、ファイアウォールの設定変更を反映します。

firewall-cmd --reload

これにより、Webサーバーが使用するポート80を通信に利用できるようになります。
実行結果は以下のようになります。

image.png

改めて下記コマンドを実行し、ポートを確認します。

firewall-cmd --list-all

servicesの項目にhttpが追加されたことが確認できます。
httpサービスが有効になっており、ブラウザからアクセスすることができます。
image.png

続いて下記コマンドを実行します。

echo 'hello world!' > /var/www/html/index.html

これにより/var/www/html/ディレクトリにindex.htmlを作成し、テキストを "hello world!" にします。
/var/www/html/ディレクトリはApacheのインストール時に自動で作成されます。
このディレクトリにウェブページや画像、スタイルシート、JavaScriptファイルなどのウェブコンテンツを配置します。

最後にブラウザの検索バーにCentOSインストール時に取得したIPアドレスを入力し、今回作成したwebサーバーにアクセスします。

image.png

上記画像のように無事表示することができました。
以上でwebサーバーの構築は完了です。ここまで見ていただきありがとうございました。

振り返り

今回初めてのwebサーバーを構築してみましたが、なかなか苦労したなと感じています。
構築記事などを参照しながら進めたのですが、全く同じように進めてもうまくいかない部分があったりしてその都度調べながら進めていました。
例えば、CentOSインストール時の画面が見切れて再起動ボタンが押せなくて先に進めなかったりしました。
参考にした記事には対処法が載っていなかったので、「virtualbox centOS インストール 見切れ」などと検索したり、chatGPTに質問したりして対処していました。

今回記事を作成することで、構築の一連の流れを復習できました。記事を見ながら操作しているときはどうしてその操作をするのかということを理解できずに進めてしまっているところがあったので、この記事を作成する際に、この操作ってなんで必要なんだっけと振り返って調べることで理解を深められたので良かったと思います。

次回以降、より複雑なサーバーを構築していく際に今回の経験が活かせればと思います。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2