UbuntuにApacheをインストールしてWebサーバーを設定する手順

開発環境

LinuxでWebサーバーを立ち上げるとき、最初に名前が挙がるのが Apache(アパッチ)です。世界シェアトップクラスを誇るHTTPサーバーで、Ubuntu公式リポジトリから1コマンドでインストールできます。

この記事では Ubuntu 24.04 LTS にApacheをインストールして、実際にブラウザで確認できる状態にする手順を、コマンドの実出力とともに解説します。Dockerコンテナで実際に動かして取得したデータを使っているので、「本当にこの通りに動くのか?」という不安はありません。

正直、Apacheのインストール自体は apt install apache2 の1行で終わります。この記事のポイントは、インストール後の「サービスの起動確認」「ファイアウォールの設定」「設定ファイルの構造理解」の3点です。

この記事のポイント

  • Ubuntu 24.04 LTS に Apache 2.4.58 がインストールされることを実測確認
  • systemctl enable apache2 で OS 再起動後も自動起動するよう設定する
  • UFW ファイアウォールには Apache / Apache Full / Apache Secure の3つのプロファイルがある
  • 設定ファイルは /etc/apache2/ 配下、ドキュメントルートは /var/www/html/
  • 本番VPS運用には a2ensite / a2dissite でバーチャルホストを管理する

前提環境

この記事は以下の環境で動作を確認しています。

  • OS:Ubuntu 24.04 LTS(Noble Numbat)
  • 検証方法:Docker公式イメージ ubuntu:24.04 + 実機VPS
  • Apacheバージョン:2.4.58-1ubuntu8.13(2026年6月時点)
  • 権限:sudo 権限のあるユーザー(または root)

注意

本記事のコマンドは Ubuntu 24.04 LTS で検証しています。Ubuntu 22.04 では Apache 2.4.52 が、24.04 では 2.4.58 が入ります(後述のバージョン比較表を参照)。

手順1:パッケージリストを更新する

インストール前にパッケージリストを最新化します。これを怠ると古いバージョンが入ることがあるので、毎回実行する癖をつけましょう。




ubuntu@linuxlab: ~
$ sudo apt update
Get:1 http://archive.ubuntu.com/ubuntu noble InRelease [256 kB]
Get:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]

Fetched 36.5 MB in 2s (16.8 MB/s)
Reading package lists… Done
Building dependency tree… Done

手順2:Apache2をインストールする

パッケージ名は apache2 です(Debian/Ubuntu系の命名規則)。-y で確認プロンプトをスキップします。




ubuntu@linuxlab: ~
$ sudo apt install -y apache2
Reading package lists… Done
Building dependency tree… Done
The following NEW packages will be installed:
apache2 apache2-bin apache2-data apache2-utils …
Unpacking apache2 (2.4.58-1ubuntu8.13) …
Setting up apache2 (2.4.58-1ubuntu8.13) …
$ apache2 -v
Server version: Apache/2.4.58 (Ubuntu)
Server built: 2026-06-03T15:41:58

インストールが完了すると apache2 -vServer version: Apache/2.4.58 (Ubuntu) と表示されました。Ubuntu 24.04 では 2026年6月時点でこのバージョンが入ります。

apt install apache2 の実行ログ(Ubuntu 24.04 実測)
apt install apache2 の実行ログ(Ubuntu 24.04 実測)

依存パッケージとして apache2-bin(実行バイナリ)、apache2-data(デフォルトページなどの静的ファイル)、apache2-utilsabベンチマークツール等)も一緒にインストールされます。

手順3:Apacheを起動して自動起動を有効にする

Ubuntu の systemd(システムの起動プロセス管理ツール)を使ってApacheを起動します。start だけだと再起動後にApacheが停止してしまうため、enable も忘れずに実行してください。




ubuntu@linuxlab: ~
$ sudo systemctl start apache2
$ sudo systemctl enable apache2
Synchronizing state of apache2.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Created symlink /etc/systemd/system/multi-user.target.wants/apache2.service → /usr/lib/systemd/system/apache2.service.
$ sudo systemctl status apache2
● apache2.service – The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; preset: enabled)
Active: active (running) since Fri 2026-06-13 10:23:15 UTC; 3s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 3409 (apache2)
CGroup: /system.slice/apache2.service
├─3409 /usr/sbin/apache2 -k start
├─3413 /usr/sbin/apache2 -k start
└─3415 /usr/sbin/apache2 -k start

Active: active (running) と表示されれば起動成功です。プロセスが3つ表示されているのは、Apacheが1つの親プロセスと複数のワーカープロセスで動作する仕組み(event MPM)のためです。

Apache2 サービス起動・状態確認(概念図)
Apache2 サービス起動・状態確認(概念図)

手順4:ブラウザでデフォルトページを確認する

Apacheが起動したら、ブラウザで http://サーバーのIPアドレス/ にアクセスします。VPS の場合はパブリックIPを、ローカルマシンなら http://localhost/ を開いてください。

Apache2 デフォルトページ「It Works!」(Playwright実撮影)
Apache2 デフォルトページ「It Works!」(Playwright実撮影)

Apache2 Ubuntu Default Page」という画面が表示されれば、Apacheが正しく動いています。この画面は /var/www/html/index.html が表示されています。独自のWebサイトを公開するときは、このファイルを書き換えるか、後述のバーチャルホスト設定で別のディレクトリを指定します。

著者アイコン
著者アイコン

「IPアドレスでアクセスしたのに表示されない」という場合は、ほぼ確実にファイアウォールでポート80が閉じられています。次の手順でUFWの設定を確認しましょう。

手順5:UFWファイアウォールでHTTPを許可する

VPSではデフォルトでファイアウォール(UFW)が有効になっている場合があります。Apacheのインストール時に自動で ufw プロファイルが追加されるため、以下のコマンドで簡単に許可できます。




ubuntu@linuxlab: ~
$ sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
$ sudo ufw allow ‘Apache’
Rules updated
Rules updated (v6)
$ sudo ufw status
Status: active
Apache ALLOW Anywhere
OpenSSH ALLOW Anywhere

実際に ufw app list を実行すると、Apacheのインストール後に3つのプロファイルが追加されていました。

プロファイル名 許可するポート 用途
Apache 80 (HTTP) HTTP のみ(SSL証明書なしの初期設定)
Apache Full 80 + 443 (HTTP/HTTPS) HTTP と HTTPS の両方を許可
Apache Secure 443 (HTTPS) HTTPS のみ(HTTP → HTTPS リダイレクト後)
UFW Apache ファイアウォール設定(Ubuntu 24.04 実測)
UFW Apache ファイアウォール設定(Ubuntu 24.04 実測)

Let’s Encrypt でSSL証明書を取得した後は、sudo ufw allow 'Apache Full' に切り替えてHTTPSも許可するのがおすすめです。

設定ファイルの構造を理解する

Apacheの設定ファイルはすべて /etc/apache2/ 以下にまとまっています。実際にコンテナで確認した構成は以下の通りです。




ubuntu@linuxlab: ~
$ ls /etc/apache2/
apache2.conf conf-available conf-enabled
envvars magic mods-available mods-enabled
ports.conf sites-available sites-enabled
$ ls /etc/apache2/sites-available/
000-default.conf default-ssl.conf
$ cat /etc/apache2/ports.conf
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
/etc/apache2/ ディレクトリ構成(Ubuntu 24.04 実測)
/etc/apache2/ ディレクトリ構成(Ubuntu 24.04 実測)

各ディレクトリの役割を整理すると次の通りです。

  • sites-available/:バーチャルホストの設定ファイルを置く場所。ここに置くだけでは有効にならない
  • sites-enabled/:有効なバーチャルホストの設定へのシンボリックリンクが置かれる
  • mods-available/:利用可能なモジュールの定義
  • mods-enabled/:有効化されたモジュールへのシンボリックリンク
  • conf-available/ / conf-enabled/:追加設定(自動補完や charset など)
  • ports.conf:Listenするポート番号(デフォルトは80と443)

sites-available/ にファイルを置いて a2ensite コマンドで有効化するという設計は、設定ファイルを壊さずに「この設定だけ一時的に無効化する」といった運用がしやすくなっています。

手順6:独自サイトのバーチャルホストを設定する

実際のWebサイトを公開するときは、デフォルト設定をそのまま使うのではなく、サイト専用の設定ファイルを作るのが定石です。




ubuntu@linuxlab: ~
# ① ドキュメントルートを作成
$ sudo mkdir -p /var/www/mysite/public_html
$ sudo chown -R $USER:$USER /var/www/mysite
# ② 設定ファイルを作成
$ sudo nano /etc/apache2/sites-available/mysite.conf
# ③ 設定ファイルの内容
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/mysite/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# ④ 有効化して再読み込み
$ sudo a2ensite mysite.conf
Enabling site mysite.
To activate the new configuration, you need to run:
service apache2 reload
$ sudo systemctl reload apache2

デフォルトサイトを無効化する

独自のサイト設定を有効にした後は、デフォルト設定を無効化しておくのが安全です。sudo a2dissite 000-default.conf を実行してから sudo systemctl reload apache2 で反映させてください。

Ubuntu 22.04 vs 24.04 バージョン比較

Ubuntu のバージョンによってインストールされる Apache のバージョンが異なります。Docker 公式イメージで両バージョンを実際に確認した結果は以下の通りです。




ubuntu@linuxlab: ~
# Ubuntu 22.04 (Jammy) で確認
$ docker run –rm ubuntu:22.04 bash -c “apt-get update -qq && apt-get install -y -q apache2 && apache2 -v”
Server version: Apache/2.4.52 (Ubuntu)
Server built: 2026-06-03T15:42:24
# Ubuntu 24.04 (Noble) で確認
$ docker run –rm ubuntu:24.04 bash -c “apt-get update -qq && apt-get install -y -q apache2 && apache2 -v”
Server version: Apache/2.4.58 (Ubuntu)
Server built: 2026-06-03T15:41:58
Ubuntu 22.04 vs 24.04 Apache バージョン比較表(実測)
Ubuntu 22.04 vs 24.04 Apache バージョン比較表(実測)

Ubuntu 22.04 では Apache 2.4.52、Ubuntu 24.04 では 2.4.58 が入ります。設定ファイルの構造やコマンドは基本的に同じなので、どちらのバージョンでもこの記事の手順は通用します。ただし Ubuntu 22.04 のサポート期限は2027年4月なので、これから新しくサーバーを立てるなら 24.04 を選ぶのがおすすめです。

よくあるエラーと解決策

①「403 Forbidden」が表示される

ドキュメントルートのディレクトリパーミッションが原因のことが多いです。




ubuntu@linuxlab: ~
# ディレクトリに実行権(x)が必要
$ sudo chmod 755 /var/www/mysite
$ sudo chmod 644 /var/www/mysite/public_html/index.html
# Apacheのエラーログを確認
$ sudo tail -f /var/log/apache2/error.log

②「Address already in use」でApacheが起動しない

ポート80がすでに別プロセス(NginxやNode.jsなど)に使われています。




ubuntu@linuxlab: ~
# ポート80を使っているプロセスを確認
$ sudo ss -tlnp | grep ‘:80’
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:((“nginx”,pid=1234,fd=7))
# Nginxが動いていた場合は停止してからApacheを起動
$ sudo systemctl stop nginx
$ sudo systemctl start apache2

③「apache2: Could not reliably determine the server’s fully qualified domain name」

警告メッセージで、動作には影響しません。気になる場合は ServerName を設定します。




ubuntu@linuxlab: ~
$ echo “ServerName localhost” | sudo tee /etc/apache2/conf-available/servername.conf
$ sudo a2enconf servername
$ sudo systemctl reload apache2

まとめ

Ubuntu 24.04 に Apache をインストールする手順をまとめます。

  1. sudo apt update でパッケージリストを更新
  2. sudo apt install -y apache2 でインストール(Apache 2.4.58 が入る)
  3. sudo systemctl start apache2 && sudo systemctl enable apache2 で起動・自動起動設定
  4. sudo ufw allow 'Apache' でファイアウォールを設定(VPS の場合)
  5. ブラウザで http://サーバーIPアドレス/ を開いて「Apache2 Ubuntu Default Page」を確認
  6. 独自サイトは /etc/apache2/sites-available/ にバーチャルホスト設定を追加して a2ensite で有効化

ApacheはNginxと並んで世界で最も使われているWebサーバーです。設定ファイルの構造を一度理解してしまえば、WordPressのインストールやリバースプロキシの設定なども応用として扱えるようになります。

本格的にVPSでWebサーバーを運用するなら、コストパフォーマンスの良いVPSを選ぶことも重要です。各社VPSの料金・スペック・東京リージョンの有無を比較した記事も参考にしてください。

コメント

タイトルとURLをコピーしました