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とブラウザから表示を確認する
検証環境
| 項目 | 内容 |
|---|---|
| OS | Ubuntu 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 updateApacheとcurlをインストールする。
sudo apt install -y apache2 curlapache2が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正常に起動していれば、次のように表示される。
activeApacheの初期ページを確認する
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 $?
080番ポートの待ち受けを確認する
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 statusStatus: 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つである。
- Apacheの設定が
Syntax OKになる apache2サービスがactiveになる- 80番ポートで待ち受けている
- HTTPステータス
200 OKが返る - 配置した確認用文字列が返る
トラブルシューティング
Apacheが起動しない
サービスの状態を確認する。
systemctl status apache2 --no-pager直近のログを確認する。
sudo journalctl -u apache2 -n 50 --no-pagerApacheの設定に問題がないか確認する。
sudo apache2ctl configtestSyntax 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を導入する基本的な流れは以下である。
aptでapache2とcurlをインストールするsystemctl enable --now apache2でApacheを起動する/var/www/html/index.htmlへ確認用ページを配置するapache2ctl configtestで設定を確認するsystemctl is-activeでサービスの状態を確認するssで80番ポートの待ち受けを確認するcurlとブラウザでHTTP応答を確認する- 必要な場合だけUFWで80番ポートを許可する
Apacheの動作確認では、「サービスが起動している」だけでなく、「ポートで待ち受けている」「HTTPで200が返る」「意図したHTMLが返る」の3段階まで確認しておくと、問題が起きたときに切り分けやすい。
