Ubuntu 26.04 で Apache を使う場合、最初に押さえるべきことは、パッケージの導入、ServerName、DocumentRoot、default site、設定ファイルの検証、サービス状態の確認です。
この記事では Apache の基本設定だけを扱います。TLS、WAF、リバースプロキシは Apache の上に積む構成なので、基本設定ができた後に別の記事として整理する方が見通しがよくなります。
Apache の位置づけ
Apache は Web サーバーとして静的ファイルを配信するだけでなく、TLS 終端、リバースプロキシ、認証、WAF などの土台にもなります。まずは標準的な HTTP サイトとして動かし、設定検証とログ確認ができる状態を作ります。
- apache2 パッケージをインストールする
- ServerName を明示する
- DocumentRoot の Directory 設定を整理する
- default site を確認する
- apache2ctl で構文確認する
- systemd で起動と自動起動を管理する
インストールする
sudo apt update
sudo apt install -y apache2サービス状態を確認する
systemctl status apache2 --no-pager
systemctl is-enabled apache2
ss -lntp | grep apache2 || trueServerName を設定する
Apache は ServerName が未設定でも動きますが、警告を避けるためにサーバーの FQDN を明示しておくと管理しやすくなります。
sudo tee /etc/apache2/conf-available/servername.conf >/dev/null <<'EOF'
ServerName web01.example.local
EOF
sudo a2enconf servernameDocumentRoot の設定を確認する
標準の DocumentRoot は /var/www/html です。Directory 設定を明示して、どの範囲を公開するのかを分かりやすくしておきます。
sudo tee /etc/apache2/conf-available/www-options.conf >/dev/null <<'EOF'
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
EOF
sudo a2enconf www-optionsセキュリティ関連の基本設定
最低限、バージョン情報や署名を出しすぎない設定にしておきます。これは強固な防御というより、基本的な露出を減らすための設定です。
sudo tee /etc/apache2/conf-available/security.conf >/dev/null <<'EOF'
ServerTokens Prod
ServerSignature Off
TraceEnable Off
EOF
sudo a2enconf securitydefault site を確認する
まずは port 80 の default site を確認します。ここでは DocumentRoot を /var/www/html とし、追加の HTTP 用設定を include できる形にします。
sudo install -d -m 0755 -o root -g root /etc/apache2/http-custom-config.d
sudo tee /etc/apache2/sites-available/000-default.conf >/dev/null <<'EOF'
<VirtualHost *:80>
ServerAdmin webmaster@example.local
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
IncludeOptional /etc/apache2/http-custom-config.d/*.conf
</VirtualHost>
EOF
sudo a2ensite 000-defaultデフォルト index を整理する
検証環境では標準の index.html が残っていても問題ありませんが、実運用では意図しないデフォルトページを出さないように整理しておきます。
sudo rm -f /var/www/html/index.html
echo "Apache is running" | sudo tee /var/www/html/index.html設定を検証する
Apache の設定変更後は、サービス再起動前に必ず構文確認します。
sudo apache2ctl -t
sudo apache2ctl -Sサービスを再起動する
sudo systemctl restart apache2
sudo systemctl enable apache2
systemctl status apache2 --no-pager動作確認する
curl -I http://127.0.0.1/
curl http://127.0.0.1/ログを確認する
Apache の切り分けでは、systemd のログと Apache の access/error log の両方を見ます。
journalctl -u apache2 --since "1 hour ago" --no-pager
sudo tail -n 50 /var/log/apache2/error.log
sudo tail -n 50 /var/log/apache2/access.log次に分けて考える構成
基本設定ができたら、用途に応じて TLS、WAF、リバースプロキシ、PHP-FPM 連携へ進みます。これらは Apache の基本設定の上に積む構成なので、記事も分けた方が読みやすいです。
- TLS: 証明書と HTTPS VirtualHost を扱う
- WAF: ModSecurity などで通信を検査する
- リバースプロキシ: backend へ転送する
- PHP-FPM 連携: PHP アプリケーションを実行する
まとめ
Ubuntu 26.04 の Apache 基本設定では、インストール、ServerName、DocumentRoot、default site、セキュリティ基本設定、構文確認、サービス確認を一連の作業として扱うことが重要です。ここまで整えておくと、TLS、WAF、リバースプロキシへ進むときの土台が安定します。


