【Ubuntu26.04】Apache HTTP Serverをインストールしてテストページを公開する

【Ubuntu26.04】Apache HTTP Serverをインストールしてテストページを公開する

Ubuntu ServerでWebサーバーを構築する場合、Apache HTTP Serverは定番の選択肢の一つだ。

この記事では、Ubuntu 26.04 LTSにApacheをインストールし、/var/www/html/へ確認用のHTMLファイルを配置する。最後に、Apacheの設定、サービスの稼働状態、HTTP応答を確認するところまで進める。

今回はVirtualHostやHTTPSまでは設定せず、まずはローカルネットワークからテストページを表示できる最小構成を作る。

今回作るもの

  • Ubuntu 26.04 LTS上でApacheを起動する
  • HTTPの80番ポートで待ち受ける
  • /var/www/html/index.htmlを公開する
  • curlとブラウザから表示を確認する

検証環境

項目内容
OSUbuntu 26.04 LTS
WebサーバーApache HTTP Server(apache2パッケージ)
HTTP確認ツールcurl
Webコンテンツ配置先/var/www/html/
検証回数新規作成したVM 2台

この記事の構築コマンドと動作確認コマンドは、新しく作成した2台のVMで実行し、いずれも正常に完了することを確認している。

前提条件

以下の状態を前提とする。

  • Ubuntu 26.04 LTSがインストールされている
  • インターネットへ接続できる
  • sudoを実行できるユーザーでログインしている
  • サーバーへSSHまたはコンソールから接続できる

外部ネットワークからアクセスする場合は、Ubuntu側のファイアウォールだけでなく、ルーター、クラウドのセキュリティグループ、VPS事業者側のファイアウォール設定も確認する必要がある。

Apacheとcurlをインストールする

最初にパッケージ情報を更新する。

sudo apt update

Apacheとcurlをインストールする。

sudo apt install -y apache2 curl

apache2がWebサーバー本体、curlがHTTP応答をコマンドラインから確認するためのツールである。

インストール後、Apacheのバージョンを確認する。

apache2 -v

以下のようにApacheのバージョン情報が表示されれば、パッケージはインストールされている。

ubuntu@ubuntu-2604-autoinstall:~$ apache2 -v
Server version: Apache/2.4.66 (Ubuntu)
Server built:   2026-07-06T15:33:20

細かいバージョン番号は、適用されている更新状況によって異なる。

Apacheを起動する

Apacheを起動し、OS起動時にも自動で起動するように設定する。

sudo systemctl enable --now apache2

サービスの状態を確認する。

systemctl status apache2 --no-pager

以下のようにactive (running)と表示されていれば、Apacheは起動している。

ubuntu@ubuntu-2604-autoinstall:~$ systemctl status apache2 --no-pager
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: enabled)
     Active: active (running) since Sun 2026-07-19 22:03:22 JST; 50s ago

状態だけを短く確認する場合は、以下でもよい。

systemctl is-active apache2

正常に起動していれば、次のように表示される。

active

Apacheの初期ページを確認する

Apacheをインストールすると、初期状態では/var/www/html/がWebコンテンツの配置先として使用される。

まずはローカルホスト宛てにアクセスする。

curl http://127.0.0.1/

Apacheの初期ページに含まれるHTMLが表示されれば、Webサーバーとして応答している。

HTTPステータスだけを確認する場合は、-Iを付ける。

curl -I http://127.0.0.1/

正常な場合は、以下のようにHTTP/1.1 200 OKが確認できる。

ubuntu@ubuntu-2604-autoinstall:~$ curl -I http://127.0.0.1/
HTTP/1.1 200 OK

確認用のWebページを配置する

Apacheの初期ページを、今回の確認用ページへ置き換える。

念のため、現在のindex.htmlをバックアップする。

sudo cp /var/www/html/index.html /var/www/html/index.html.bak

確認用のHTMLファイルを作成する。

sudo tee /var/www/html/index.html > /dev/null <<'EOF'
<!doctype html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Apache Test Page</title>
</head>
<body>
  <h1>kyororo Apache test OK</h1>
  <p>Ubuntu 26.04 LTSでApacheが動作しています。</p>
</body>
</html>
EOF

配置した内容を確認する。

cat /var/www/html/index.html

今回は静的なHTMLファイルを置き換えただけなので、Apacheの再起動や再読み込みは不要である。ファイルを保存した時点で、次のHTTPアクセスから新しい内容が返される。

Apacheの設定を確認する

Apacheの設定ファイルに構文エラーがないことを確認する。

sudo apache2ctl configtest

正常な場合は、以下のようにSyntax OKが表示される。

ubuntu@ubuntu-2604-autoinstall:~$ sudo apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

今回の作業ではApacheの設定ファイル自体を変更していないが、Webサーバー構築時の基本的な確認として実行しておく。

ローカルからHTTP応答を確認する

確認用ページが返されることをcurlで確認する。

curl http://127.0.0.1/

以下の文字列が含まれていれば、配置したページがApacheから返されている。

  <h1>kyororo Apache test OK</h1>
  <p>Ubuntu 26.04 LTSでApacheが動作しています。</p>

終了コードを確認する。

echo $?

0と表示されれば、HTTP応答に指定した文字列が含まれている。

ubuntu@ubuntu-2604-autoinstall:~$ echo $?
0

80番ポートの待ち受けを確認する

ApacheがHTTPの80番ポートで待ち受けていることを確認する。

sudo ss -ltnp | grep ':80'

以下のように:80を含む行が表示されれば、80番ポートで待ち受けている。

ubuntu@ubuntu-2604-autoinstall:~$ sudo ss -ltnp | grep ':80'
LISTEN 0      511                *:80              *:*    users:(("apache2",pid=2893,fd=4),("apache2",pid=2892,fd=4),("apache2",pid=2876,fd=4))
ubuntu@ubuntu-2604-autoinstall:~$

IPv6が有効な環境では、[::]:80も表示されることがある。

UFWを使用している場合は80番ポートを許可する

UFWの状態を確認する。

sudo ufw status

Status: inactiveの場合、この作業は不要である。

Status: activeの場合は、HTTPの80番ポートを許可する。

sudo ufw allow 80/tcp

設定を確認する。

sudo ufw status

以下のように80番ポートが許可されていればよい。

80/tcp ALLOW Anywhere

インターネットへ直接公開するサーバーでは、接続元IPアドレスを制限する、HTTPSを使用するなど、用途に合わせた追加対策が必要になる。

別のPCのブラウザから確認する

Ubuntu ServerのIPアドレスを確認する。

ip -br addr

または、割り当てられているIPアドレスを簡単に確認する。

hostname -I

例として、サーバーのIPアドレスが192.168.1.50の場合、同じネットワーク上のPCから以下へアクセスする。

http://192.168.11.50/

ブラウザに以下が表示されれば、別の端末からもApacheへ接続できている。

kyororo Apache test OK
Ubuntu 26.04 LTSでApacheが動作しています。

動作確認コマンドまとめ

構築後は、以下を順番に実行すると確認しやすい。

sudo apache2ctl configtest
systemctl is-active apache2
sudo ss -ltnp | grep ':80'
curl -I http://127.0.0.1/

確認するポイントは以下の5つである。

  1. Apacheの設定がSyntax OKになる
  2. apache2サービスがactiveになる
  3. 80番ポートで待ち受けている
  4. HTTPステータス200 OKが返る
  5. 配置した確認用文字列が返る

トラブルシューティング

Apacheが起動しない

サービスの状態を確認する。

systemctl status apache2 --no-pager

直近のログを確認する。

sudo journalctl -u apache2 -n 50 --no-pager

Apacheの設定に問題がないか確認する。

sudo apache2ctl configtest

Syntax OKにならない場合は、表示されたファイル名と行番号を確認する。

80番ポートがすでに使用されている

80番ポートを使用しているプロセスを確認する。

sudo ss -ltnp | grep ':80'

Nginxなど別のWebサーバーがすでに起動している場合、Apacheは同じIPアドレスとポートを使用できない。既存サービスを停止するか、どちらかの待ち受けポートを変更する必要がある。

ローカルでは表示できるが、別のPCから接続できない

サーバー自身で以下が成功する場合、Apache自体は動作している。

curl -I http://127.0.0.1/

別のPCからだけ接続できない場合は、以下を確認する。

  • Ubuntu側のUFWで80番ポートが許可されているか
  • クラウドやVPS側のファイアウォールで80番ポートが許可されているか
  • 接続先のIPアドレスが正しいか
  • PCとサーバーの間に通信可能な経路があるか
  • ルーターで外部公開に必要な設定が行われているか

確認用ページではなくApacheの初期ページが表示される

配置したファイルを確認する。

sudo cat /var/www/html/index.html

別のVirtualHostやDocumentRootを設定している環境では、/var/www/html/以外のファイルが公開されている可能性がある。

有効になっているVirtualHostを確認する。

sudo apache2ctl -S

ブラウザのキャッシュが残っている場合は、再読み込みまたはシークレットウィンドウでも確認する。

初期ページへ戻す

バックアップしたApacheの初期ページへ戻す場合は、以下を実行する。

sudo mv /var/www/html/index.html.bak /var/www/html/index.html

静的ファイルの差し替えなので、この場合もApacheの再起動は不要である。
戻したあとは下記のデフォルトページが表示される。

実運用へ進む場合に必要なこと

今回の構成は、Apacheの導入とHTTP応答を確認するための最小構成である。

まずは今回の最小構成でApacheからHTMLを返せることを確認し、その後にVirtualHostやHTTPS設定へ広げると切り分けしやすい。

まとめ

Ubuntu 26.04 LTSへApacheを導入する基本的な流れは以下である。

  1. aptapache2curlをインストールする
  2. systemctl enable --now apache2でApacheを起動する
  3. /var/www/html/index.htmlへ確認用ページを配置する
  4. apache2ctl configtestで設定を確認する
  5. systemctl is-activeでサービスの状態を確認する
  6. ssで80番ポートの待ち受けを確認する
  7. curlとブラウザでHTTP応答を確認する
  8. 必要な場合だけUFWで80番ポートを許可する

Apacheの動作確認では、「サービスが起動している」だけでなく、「ポートで待ち受けている」「HTTPで200が返る」「意図したHTMLが返る」の3段階まで確認しておくと、問題が起きたときに切り分けやすい。

参考

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *