ちょっとした小技が役立ったのでメモに残しておきます。
環境
- Ubuntu 20.04系
- Apache 2.4系
で、バーチャルサイトでサイトを検証していました。
背景
検証で動かしているWebアプリAがaaa.hoge.comで動いていました。
そこに、同じ環境でWebアプリBを動かす需要がありました。
本来なら、DNSで
- aaa.hoge.com
- bbb.hoge.com
とするところ、
- DNS登録が間に合わない
- 2つ同時に動かせるようなスペックではない
という背景がありました。そこで、「一度WebアプリAを無効にしつつ、WebアプリBをaaa.hoge.com」として動かすようなすり抜けを使いました。
さっくりとした手順
- WebアプリAの設定ファイルを無効化します。
- WebアプリBの設定ファイルを作成します。
- WebアプリBを有効にします。
前に動いているサイトの無効化
sudo a2dissite app_a.conf
sudo systemctl restart apache2.service
WebアプリB用の設定ファイル作成
- /etc/apache2/sites-available/app_b.conf
に以下のように作っていきます。
略
<VirtualHost *:443>
# ドメイン名を指定します
ServerName aaa.hoge.com
# アプリB用のログディレクトリを指定します。
CustomLog /var/log/nextcloud/nextcloud_access.log combined
ErrorLog /var/log/nextcloud/nextcloud_error.log
# アプリB用のドキュメントルートディレクトリを指定します。
# アプリAno参照ドキュメントとは違うディレクトリにします
DocumentRoot /home/www-data/nextcloud
<Directory /home/www-data/nextcloud>
Options -MultiViews
AllowOverride All
Require all granted
</Directory>
略
サイトBを有効化します。
sudo a2ensite app_b.conf
sudo apache2ctl configtest
sudo systemctl restart apache2.service
動作を確認します。
aaa.hoge.com(など、今までアプリAが動いていたサイトのドメインで)アプリBのサイトが動くようになれば成功。
一時的な手段ではありますが、効果はありました。