手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 Apache 基本構築 – VirtualHost と DocumentRoot を整理する

Ubuntu 22.04 で Apache HTTP Server を構築する基本手順です。この記事では、Apache のインストール、VirtualHost、DocumentRoot、待ち受けポート、設定確認、サービス再読み込みまでを扱います。

TLS、PHP、HTTP/2、WAF は後続の記事で扱うため、ここではまず HTTP の基本的な Web サーバーとして動作する状態を作ります。

参考書籍
参考書籍

Apache HTTP Server ポケットリファレンス

Apache HTTP Server の設定、ディレクティブ、モジュール、運用項目を確認したい場合の参考書籍です。古い 2.0 / 2.2 系対応書籍のため、価格や在庫、現在の Apache 2.4 との差分はリンク先や公式ドキュメントで確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

関連する Apache 記事

Apache の基本設定、TLS、PHP、HTTP/2、WAF は役割が分かれます。必要な機能を順番に追加していくと、設定の責務を切り分けやすくなります。

Apache 基本構築で確認するもの

項目役割
apache2 パッケージApache HTTP Server 本体
DocumentRoot公開するファイルの配置場所
VirtualHostサイト単位の設定
ports.confApache が待ち受けるポート
a2ensite / a2dissiteサイト設定の有効化と無効化
apache2ctl configtest設定構文の確認

Apache をインストールする

sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y apache2

サービス状態を確認する

systemctl status apache2 --no-pager
ss -ltnp | grep ':80'

Apache が起動していれば、80 番ポートで待ち受けます。まずはローカルから HTTP 応答を確認します。

curl -I http://127.0.0.1/

DocumentRoot を作成する

サイト用の DocumentRoot を作成します。ここでは server.example.local という内部向けサイトを例にします。

sudo install -d -m 0755 /var/www/server.example.local
sudo tee /var/www/server.example.local/index.html <<'EOF'
<!doctype html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>server.example.local</title>
</head>
<body>
  <h1>server.example.local</h1>
</body>
</html>
EOF

VirtualHost を作成する

サイトごとの設定は /etc/apache2/sites-available/ に作成し、a2ensite で有効化します。

sudo tee /etc/apache2/sites-available/server.example.local.conf <<'EOF'
<VirtualHost *:80>
    ServerName server.example.local
    ServerAdmin webmaster@example.local

    DocumentRoot /var/www/server.example.local

    <Directory /var/www/server.example.local>
        Options -Indexes +FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/server.example.local-error.log
    CustomLog ${APACHE_LOG_DIR}/server.example.local-access.log combined
</VirtualHost>
EOF

サイトを有効化する

sudo a2dissite 000-default.conf
sudo a2ensite server.example.local.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

a2dissite 000-default.conf は必須ではありませんが、デフォルトサイトと自分で作った VirtualHost を混在させたくない場合は無効化しておくと見通しがよくなります。

名前解決を用意する

検証用にクライアント側の /etc/hosts へ名前を追加するか、内部 DNS へ登録します。

sudo tee -a /etc/hosts <<'EOF'
192.0.2.10 server.example.local
EOF

動作確認する

curl -I http://server.example.local/
curl http://server.example.local/

ログを確認する

sudo tail -n 20 /var/log/apache2/server.example.local-access.log
sudo tail -n 20 /var/log/apache2/server.example.local-error.log

運用上の注意

  • サイトごとに VirtualHost ファイルを分ける
  • DocumentRoot とログファイル名をサイト名に合わせる
  • 設定変更後は apache2ctl configtest を実行してから reload する
  • TLS、PHP、HTTP/2、WAF は基本設定が安定してから追加する

まとめ

Ubuntu 22.04 の Apache 基本構築では、パッケージのインストール、DocumentRoot、VirtualHost、サイト有効化、設定検査、HTTP 応答確認を順に行います。

Apache は機能を追加しやすい一方で、設定の責務が混ざると分かりにくくなります。まず HTTP の基本サイトを安定させ、その後に TLS、PHP、HTTP/2、WAF を追加する流れにすると管理しやすくなります。

Ubuntu 22.04 Apache 基本構築 – VirtualHost と DocumentRoot を整理する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る