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 化を行うことで、より実践的な開発環境を構築できます。 公開後はこのページからリンクを追加します。