2026年5月19日
2026年5月19日
Apacheのバーチャルホストを設定する方法
はじめに
Webサイトを複数運営する場合や開発環境を効率的に構築したい場合は、Apacheのバーチャルホスト機能を利用することで、1つのサーバー上で異なるドメインやポートを使用した複数のウェブサイトを管理できます。この記事では、基本的なバーチャルホスト設定手順と注意点について解説します。
手順・設定方法
ステップ1: 名前解決ファイル(/etc/hosts)に記載
# /etc/hosts ファイルを開く
sudo nano /etc/hosts
# 以下を追加
127.0.0.1 example.com www.example.com
ステップ2: Apacheのバーチャルホスト設定ファイルを作成
# virtual hostsディレクトリに新しい設定ファイルを作成
sudo nano /etc/apache2/sites-available/example.com.conf
# 以下のように設定する
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
ステップ3: 設定ファイルを有効化
# sites-availableディレクトリにある設定ファイルをsites-enabledにシンボリックリンクを作成
sudo a2ensite example.com.conf
# 一時停止している場合、Apacheを再起動または再ロードする
sudo systemctl restart apache2
ステップ4: 複数のバーチャルホスト設定
# 複数のドメインに対して同じ設定を行う場合は以下のように記述
<VirtualHost *:80>
ServerAdmin webmaster@example1.com
ServerName example1.com
ServerAlias www.example1.com
DocumentRoot /var/www/example1.com/public_html
ErrorLog ${APACHE_LOG_DIR}/example1.error.log
CustomLog ${APACHE_LOG_DIR}/example1.access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@example2.com
ServerName example2.com
ServerAlias www.example2.com
DocumentRoot /var/www/example2.com/public_html
ErrorLog ${APACHE_LOG_DIR}/example2.error.log
CustomLog ${APACHE_LOG_DIR}/example2.access.log combined
</VirtualHost>
ステップ5: テストとトラブルシューティング
# Apacheの設定ファイルが正しければ、以下で確認する
sudo apache2ctl configtest
# エラーや警告がないか確認し、修正した場合は再起動または再ロード
sudo systemctl restart apache2
注意事項
/etc/hostsファイルの編集は管理者権限が必要です。- 複数のドメインを設定する場合、各ドメイン用に独自のログファイルを作成することでアクセス解析や監視が容易になります。
- 一貫性のあるファイル名とパスを使用することによって誤認を避けることが重要です。
まとめ
1. /etc/hosts ファイルへの記載: ドメイン名とIPアドレスのマッピングを行う
2. バーチャルホスト設定ファイル作成: 複数ドメインや異なるドキュメントルートを管理するための設定を行う
3. 有効化と再起動: 既存の設定を反映させるためにApacheを再起動または再ロードする
4. 複数バーチャルホスト: 同じ構成で複数のドメインを追加できる
5. テストと監視: 設定が正しく機能しているか確認する
関連記事: