HTTPサイトの設定
Debian系でApache HTTP Serverをインストールし、
www.example.comをHTTPで公開する。
| 項目 | 値 |
|---|---|
| OS | Debian 13.x |
| サイト名 | www.example.com |
| ドキュメントルート | /var/www/html |
| VirtualHost設定 | /etc/apache2/sites-available/www.example.com.conf |
| HTTPポート | TCP 80 |
www.example.com がDNSまたはクライアントの/etc/hostsでApacheサーバーのIPアドレスへ解決できるようにする。
1. Apache2をインストールする
Section titled “1. Apache2をインストールする”sudo apt updatesudo apt install apache2サービス状態を確認する。
systemctl status apache2起動していない場合は起動する。
sudo systemctl enable --now apache2enable --nowは、自動起動を有効にすると同時にサービスを起動する。既に起動済みなら、状態確認だけでよい。
2. 公開するHTMLを配置する
Section titled “2. 公開するHTMLを配置する”Debianの既定ドキュメントルートである/var/www/htmlへ確認用ファイルを配置する。
sudo install -d -o root -g root -m 755 /var/www/htmlcat <<'EOF' | sudo tee /var/www/html/index.html<!doctype html><html lang="ja"><head> <meta charset="utf-8"> <title>www.example.com</title></head><body> <h1>www.example.com</h1></body></html>EOFApacheの子プロセスは、ファイルの内容を読み取り、親ディレクトリをたどれる権限が必要である。この例ではディレクトリを755、HTMLファイルをteeの既定権限で作成する。
3. HTTP用VirtualHostを作成する
Section titled “3. HTTP用VirtualHostを作成する”/etc/apache2/sites-available/www.example.com.confを作成する。
<VirtualHost *:80> ServerName www.example.com DocumentRoot /var/www/html
<Directory /var/www/html> AllowOverride None Require all granted </Directory>
ErrorLog ${APACHE_LOG_DIR}/www.example.com-error.log CustomLog ${APACHE_LOG_DIR}/www.example.com-access.log combined</VirtualHost>この構成では、www.example.comを/var/www/htmlへ対応付け、.htaccessによる上書きを使わずに公開する。エラーログとアクセスログは、このサイトの処理をほかのVirtualHostから分けて確認できる名前にする。各ディレクティブの役割とVirtualHostの選択順序はVirtualHostと設定セクションを参照する。
4. VirtualHostを有効化する
Section titled “4. VirtualHostを有効化する”sudo a2ensite www.example.com.confa2ensiteはsites-enabledへシンボリックリンクを作り、次回の設定読み込み対象にする。
既定の000-default.confを使用しない場合は、任意で無効化できる。
sudo a2dissite 000-default.conf000-default.confを残しても、Host: www.example.comがこのVirtualHostのServerNameと一致すればwww.example.com.confが選択される。
5. 構文を確認して反映する
Section titled “5. 構文を確認して反映する”sudo apache2ctl configtest期待する結果は次のとおり。
Syntax OK構文が正しいことを確認してからreloadする。
sudo systemctl reload apache2VirtualHostの認識結果を確認する。
sudo apache2ctl -STCP 80の名前ベースVirtualHostにwww.example.comと設定ファイルのパスが表示されることを確認する。
6. HTTPで確認する
Section titled “6. HTTPで確認する”curl -I http://www.example.com/期待する結果は200 OKである。
HTTP/1.1 200 OKDNSをまだ用意していない場合は、--resolveで接続先だけを指定できる。
curl -I \ --resolve www.example.com:80:192.0.2.10 \ http://www.example.com/--resolveはwww.example.comというHostヘッダーを維持したまま、指定したIPアドレスへ接続する。192.0.2.10はApacheサーバーの実際のIPアドレスへ置き換える。
確認コマンド
Section titled “確認コマンド”sudo apache2ctl configtestsudo apache2ctl -Ssudo apache2ctl -Msystemctl status apache2journalctl -u apache2sudo tail -f /var/log/apache2/www.example.com-error.logsudo tail -f /var/log/apache2/www.example.com-access.logapache2ctl -SはVirtualHostの選択、apache2ctl -Mは有効なモジュール、サイト別ログは実際のリクエスト処理を確認するために使う。