📡 DVSwitch を Raspberry Pi(Bookworm)で動かす:Apacheのドキュメントルート変更と“勝手に変わる”現象の理由・対策
📡 DVSwitch を Raspberry Pi(Bookworm)で動かす:Apacheのドキュメントルート変更と“勝手に変わる”現象の理由・対策
DVSwitch の Web インターフェースを使うために、Apache の DocumentRoot を DVSwitch の配下に変更します。また、Raspberry Pi OS Bookworm環境で「ドキュメントルートが意図せず変わってしまう」現象についての背景と確認方法・対策もまとめます。
🖥️ 環境情報
- OS:Raspberry Pi OS (Legacy, 64-bit) Lite(Debian Bookworm ベース)
Released: 2025-11-24
※ ここでの「Legacy」はカメラスタックの種別を指す表記であり、OSのベースは Bookworm(Debian 12) です。Bullseye(Debian 11)ベースの旧世代とは異なります。Bookworm ではネットワーク管理や主要パッケージの更新などシステム構成が大きく変化しており、Apache や周辺設定にも影響が及びます。
🔎 まずは背景整理:「BookwormでDocumentRootが“勝手に変わる”ように見える理由」
1) Bookwormの構成変更と VirtualHost 優先
- Debian/Ubuntu 系ではサイトごとの設定を
sites-available/sites-enabledで管理し、VirtualHost が優先されます。パッケージやスクリプトが独自の VirtualHost を追加すると、デフォルトの000-default.conf(/var/www/html)より別設定が有効化されることがあります。
2) DVSwitch のインストールスクリプトの挙動
- DVSwitch の bookworm 向けインストールでは、Web UI を
/usr/share/dvswitchに配置し、Apache 側に該当パスを使う設定(新規 VirtualHost 追加/デフォルトの書き換え等)が入るケースがあります。これが「勝手に変わった」ように見える主因です。
3) 競合の起き方
sites-enabledに複数の設定があると、ポート 80 のデフォルトホストが DVSwitch 側に切り替わることがあります。動作確認はapache2ctl -Sが有効です(優先されている VirtualHost と DocumentRoot が一覧表示されます)。
要点:Bookworm の構成+DVSwitchの導入でVirtualHostが追加/有効化され、結果として DocumentRoot が
/usr/share/dvswitchに切り替わるのが自然なシナリオです。
🛠️ 実作業:Apache の DocumentRoot を DVSwitch に合わせて設定する(確実化)
すでに動作報告いただいた方法を、WordPress記事向けに整理しました。
① デフォルト VirtualHost を開く
sudo nano /etc/apache2/sites-enabled/000-default.conf
⚠️ ベストプラクティス補足:Debian/Ubuntu 系 Apache では、設定ファイルは /etc/apache2/sites-available/ で管理し、a2ensite コマンドで sites-enabled/ にシンボリックリンクを作成するのが正しい手順です。sites-enabled/ 内のファイルを直接編集すると、a2dissite/a2ensite による管理と整合性が失われる場合があります。今回は確認・テスト目的でこの方法を紹介していますが、本番運用では sites-available/000-default.conf を編集し sudo a2ensite 000-default で有効化する手順を推奨します。
② DocumentRoot を変更
変更前
DocumentRoot /var/www/html
変更後
DocumentRoot /usr/share/dvswitch
③ Directory ディレクティブを追加
DocumentRoot /usr/share/dvswitch の直下に追記します。
<Directory /usr/share/dvswitch>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
⚠️ セキュリティ注意:Options Indexes はディレクトリ一覧表示を有効にします。DVSwitch の Web UI 専用サーバーのため通常は問題ありませんが、一般的な Web サーバーでは Options -Indexes として無効化するのがセキュリティ上の推奨です。公開ネットワークに接続する環境では不要なファイルが見えないよう注意してください。
④ 保存して Apache を再起動
sudo systemctl restart apache2
ポイント:Debian/Ubuntu系では、VirtualHost(
sites-enabled)が主導します。DVSwitch インストーラや更新で新しい設定が追加された場合はそちらが優先されるため、必要に応じて無効化/調整してください。
🧭 競合チェック&対策(“勝手に変わる”を防ぐ)
🔎 有効な VirtualHost と DocumentRoot を確認
sudo apache2ctl -S(sudo が必要な環境もあります)
- どの設定ファイルが有効化され、どの DocumentRoot が効いているかが分かります。
⛔ 不要なサイト設定を無効化
# 例:DVSwitchが提供したサイト定義名を無効化する場合
sudo a2dissite dvswitch.conf
sudo systemctl reload apache2
- DVSwitch が追加する設定名は環境によって異なるため、
/etc/apache2/sites-enabled/のファイル名を確認してください。
📁 設定ファイルの所在(再確認)
- デフォルト:
/etc/apache2/sites-available/000-default.confをa2ensiteで有効化するとsites-enabledにリンクが張られます。 apache2.confの<Directory>設定も参照されますが、サイト単位の VirtualHost が優先されます。
📦 DVSwitch のインストールは「現行の通常手順」でOK
- DVSwitch の公式ガイド/コミュニティでは、bookworm 用スクリプトを使用→
aptでdvswitch-serverを導入する手順が案内されています。Apache や Web UI(/usr/share/dvswitch)はその流れで整備されるため、本記事の DocumentRoot 変更と整合します。

📝 改変履歴
| 日付 | 変更内容 |
|---|---|
| 2025-05-27 | ① 環境情報の「Legacy」表記について、カメラスタック種別の説明と Bookworm(Debian 12)ベースであることを明記 |
| 2025-05-27 | ② sites-enabled 直接編集に対するベストプラクティス補足(sites-available + a2ensite 推奨)を追記 |
| 2025-05-27 | ③ Options Indexes のセキュリティリスクに関する注意事項を追記 |
| 2025-05-27 | ④ apache2ctl -S に sudo が必要な環境がある旨を追記 |
| 2025-05-27 | ⑤ 末尾の図にキャプションおよび代替テキストを追加 |
| 2025-05-27 | ⑥ 記事末尾にクレジットを追加 |
— あいちデジタル通信ハムクラブ JJ2YYK