VirtualHost設定(応用編)
このページでは、Apache2 の VirtualHost を使って
ローカルドメイン(miyada.home) で Web サイトを公開する方法を解説します。
また、DocumentRoot を /var/www/mint など別フォルダに変更する方法も紹介します。
最終更新:
1. VirtualHost とは?
VirtualHost(バーチャルホスト)とは、1台の Web サーバーで 複数のサイトを運用できる仕組み のことです。
例えば、以下のように複数のローカルサイトを作ることができます:
- http://miyada.home
- http://test.home
- http://sample.home
これにより、実際の Web サイトと同じように ドメイン単位で開発・検証 ができるようになります。
2. hosts にローカルドメインを追加
Linux Mint に「miyada.home」という名前でアクセスできるように、 hosts ファイルにローカルドメインを追加します。
sudo nano /etc/hosts
次の行を追加します:
127.0.0.1 miyada.home
保存して閉じたら、ブラウザで http://miyada.home に アクセスできるようになります(まだ中身は表示されません)。
3. VirtualHost(80番)の設定
次に、Apache に「miyada.home」というサイトを認識させるための VirtualHost 設定を作成します。
sudo nano /etc/apache2/sites-available/miyada.conf
以下の内容を入力します:
<VirtualHost *:80>
ServerName miyada.home
DocumentRoot /var/www/html
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/miyada_error.log
CustomLog ${APACHE_LOG_DIR}/miyada_access.log combined
</VirtualHost>
設定を有効化
sudo a2ensite miyada.conf
sudo systemctl reload apache2
これで http://miyada.home にアクセスすると、
/var/www/html の内容が表示されます。
4. DocumentRoot を /var/www/mint に変更する場合
VirtualHost のメリットのひとつは、サイトごとに公開フォルダ(DocumentRoot)を
分けられることです。ここでは例として /var/www/mint を
DocumentRoot として使用する方法を紹介します。
4-1. 公開フォルダを作成
sudo mkdir -p /var/www/mint
4-2. 権限設定(当サイト推奨)
FTP でアップロードできるように、Apache(www-data)と FTPユーザーが 共同で管理できる権限に設定します。
sudo chown -R www-data:www-data /var/www/mint
sudo chmod -R 775 /var/www/mint
※ FTPユーザーが www-data グループに所属している必要があります。
4-3. VirtualHost の設定例(/var/www/mint 用)
<VirtualHost *:80>
ServerName miyada.home
DocumentRoot /var/www/mint
<Directory /var/www/mint>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/miyada_error.log
CustomLog ${APACHE_LOG_DIR}/miyada_access.log combined
</VirtualHost>
4-4. 設定を反映
sudo systemctl reload apache2
これで http://miyada.home にアクセスすると、
/var/www/mint の内容が表示されます。
4-5. よくあるエラー
- 403 Forbidden → 権限不足(775 になっていない)
- Permission denied(FTP)→ 所有者が www-data になっていない
- CSS が読み込まれない → パス指定ミス or 権限不足
DocumentRoot を変更した場合は、必ず権限設定もセットで行うことが重要です。
5. よくあるエラーと対処法
① 403 Forbidden(アクセス拒否)
原因はほぼ次のどれかです:
- DocumentRoot の権限が 755 のまま
- 所有者が www-data になっていない
- <Directory> の設定が不足している
次の設定を確認してください:
sudo chown -R www-data:www-data /var/www/mint
sudo chmod -R 775 /var/www/mint
② VirtualHost が反映されない
設定を有効化していない可能性があります。
sudo a2ensite miyada.conf
sudo systemctl reload apache2
③ hosts の設定ミス
スペルミスが多いので注意してください。
127.0.0.1 miyada.home
④ CSS や画像が読み込まれない
パス指定ミスか、権限不足が原因です。
6. 次のステップ(HTTPS 化について)
VirtualHost(80番)の設定ができたら、次は HTTPS(443番)対応に進むことができます。 HTTPS 化では、ローカル CA の作成、証明書の発行、SAN 対応、ブラウザへの登録など、 いくつかの追加ステップが必要になります。
※ HTTPS(443番)対応については、後日公開予定のガイドで詳しく解説します。
HTTPS 化を行うことで、実際の Web サイトと同じ環境で開発・検証ができるようになります。 公開後はこのページからリンクを追加します。
7. まとめ
このページでは、Apache2 の VirtualHost を使って ローカルドメイン(miyada.home) を設定する方法を解説しました。
- hosts にローカルドメインを追加する
- VirtualHost(80番)を作成して有効化する
- DocumentRoot を
/var/www/mintに変更する場合の手順 - 権限設定(www-data + 775)が非常に重要
- よくあるエラー(403 / Permission denied / CSS 読み込み失敗)の対処法
VirtualHost を使うことで、実際の Web サイトと同じように ドメイン単位で開発・検証 ができるようになります。
※ HTTPS(443番)対応については、後日公開予定のガイドで詳しく解説します。
次のステップとして、HTTPS 化を行うことで、より実践的な開発環境を構築できます。 公開後はこのページからリンクを追加します。