はじめに
この記事は、筆者自身がVirtualBox上でUbuntu Serverを使ってApache2を構築し、標準のポート80ではなくポート8080で仮想ホストを動作させる構成に挑戦した記録です。
CLI環境での手作業にこだわった理由は、GUIに頼らずにサーバー管理や構築の本質を学びたいという動機があったからです。また、この構成は「複数サービスを同一サーバー上で分離・運用する」という実務でもよくある要件への理解につながり、さらに、ポートごとのサービス分離は可用性設計の導入にもなるため、その実践経験を積みたいという意図がありました。
今回の構成は商用レベルのHA(高可用性)構成とは異なりますが、「障害を局所化する」「サービスを分離して柔軟に運用する」といった可用性設計の初歩を実感しながら学べる非常に良い題材だと感じました。
使用環境
- Ubuntu Server 24.04.2 LTS(CLIのみ)
- VirtualBox 仮想マシン
- ホスト名: testserver
Ubuntu ISOの入手(簡易手順)
Ubuntu公式サイトから Server Edition のISOファイルをダウンロードします。 https://ubuntu.com/download/server
※ Desktop版ではなく、CLI環境に特化した「Server版」を使用します。ダウンロード後、VirtualBoxにマウントして仮想マシンを起動し、インストールを行います。
VirtualBoxでの仮想マシン設定(簡易)
- VirtualBoxを起動し、「新規作成」から仮想マシンを作成。
- 名前:任意(例:Ubuntu24-CLI)
- タイプ:Linux、バージョン:Ubuntu (64-bit)
- メモリ:2048MB程度を推奨
- 仮想ハードディスク:VDI形式で20GB以上
- ダウンロード済みの Ubuntu Server ISO を「起動ディスク」に設定
- ネットワーク設定:「ブリッジアダプター」または「NAT + ポートフォワーディング」で構成
- 起動してUbuntuのCLIインストールを進める
ネットワーク疎通確認
ip a
意味: 現在のネットワークインターフェースの状態とIPアドレスを確認します。
ping -c 4 8.8.8.8
意味: GoogleのDNS(8.8.8.8)に対してICMPパケットを4回送信し、インターネットとの通信確認をします。
Apache2 インストール
sudo apt update
sudo apt install apache2 -y
意味: パッケージリストを最新にし、Apache2をインストールします。
Apache2 が動作しているか確認
curl localhost
意味: curl
でローカルホストにアクセスし、Apacheの動作を確認します。
8080番ポート向けの仮想ホスト構築
sudo mkdir /var/www/html-8080
意味: Webコンテンツのルートディレクトリを作成します。
echo "8080service" | sudo tee /var/www/html-8080/index.html
意味: テスト用のindex.htmlを作成します。
ポート開放設定
sudo nano /etc/apache2/ports.conf
意味: Apacheがリッスンするポートを定義するファイル。
追記内容:
Listen 8080
仮想ホスト設定ファイル作成
sudo nano /etc/apache2/sites-available/8080.conf
内容:
<VirtualHost *:8080>
DocumentRoot /var/www/html-8080
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
サイト有効化 & Apache 再起動
sudo a2ensite 8080.conf
sudo systemctl reload apache2.service
意味: 設定を有効化し、Apacheをリロードして反映します。
動作確認
curl localhost:8080
意味: Apacheがポート8080で正しく応答しているかを確認。
ポートの開放状態確認
sudo ss -tulpn | grep :8080
意味: TCPポート8080がApacheによってLISTEN状態か確認します。
トラブルと対処
Listen 8080 の記述漏れ
症状: Apacheがポート8080で待ち受けない。curl localhost:8080
で応答がない。
対処: /etc/apache2/ports.conf
に Listen 8080
を追記し、Apacheをリロード。
仮想ホスト設定ファイル未有効化
症状: 設定ファイルを作成したのに反映されない。
対処: sudo a2ensite 8080.conf
を実行して設定を有効化。
Apache未再起動・未リロード
症状: 設定を変更したのに反映されない。
対処: sudo systemctl reload apache2
を実行。
ディレクトリやファイルの誤記
症状: サイトにアクセスしても 404 Not Found
や空白ページになる。
対処: DocumentRoot
のパスや index.html
の有無を確認。
まとめ
今回の構成は、Apacheをデフォルト以外のポート(8080)で運用するという構成をCLI環境で構築したものです。
これは「ポート単位でのサービス分離」や「障害時の影響局所化」といった高可用性設計の基本思想を体感する構成であり、実務で役立つ土台になります。
将来的には、以下のような拡張を行う予定です:
- 複数ポートを使った仮想ホスト構成(例:8080, 8443)
- Let’s Encryptを使ったSSL化
- ufwでのポート制御など
Apacheの構成・確認コマンドに慣れ、ポートによるサービス分離の重要性を理解するには非常に良い題材でした。
コメント