経緯
スマホの写真バックアップ及び端末間ファイル共有のためにNextcloudを導入しています。
FreeBSDのJail環境で、nginxで動いています。
訳あってドメインホスト名を変更することになったため備忘録として記録します。概要だけで、細かい手順などは記載していません。
変更イメージとしては以下です。
変更前 | https://nextcloud.example.com |
変更後 | https://mynextcloud.example.com |
作業タスク
事前準備
Configファイルの編集などの際は今まで利用していたConfigファイルのバックアップを採取する事をおすすめします。
今回設定するにあたって弄るファイルは以下の通りでした。
(※環境によって異なります)
- /usr/local/etc/nginx/conf.d/nextcloud.conf
- /usr/local/www/nextcloud/config/config.php
更にJail環境など仮想環境の場合は利用しているボリュームのSnapshotが採取可能な場合が多いため、失敗した際にロールバック出来るよう採取します。
採取する場合は仮想マシンを停止状態にするか、Nextcloudをメンテナンスモードにすることをおすすめします。
DNSサーバでAレコードを追加
言わずもがな、DNSサーバで新しいホスト名を Aレコードとして登録します。
この時古い(今まで使っていた)レコードはそのままにしておかないと、作業中はNextcloudが利用できなくなってしまいます。
nginxのnextcloud.confを修正
Nextcloudを構築した際に設定したファイルだと思います、既存のホスト名を新しいホスト名に書き換え。
環境によってPathは異なるかも知れませんが、/usr/local/etc/nginx/conf.dに配置してありました。
なお証明書用のファイルPathはここで変更すると(まだ新しい証明書を発行していないので)nginxの再起動時にファイルが無いと怒られます。
証明書発行してからにしましょう。
nextcloudのconfig.phpを修正
これも構築時に設定したファイルだと思います、trusted_domainの部分を書き換えました。
Pathは /usr/local/www/nextcloud/config でした。
ここの時点で一度nginxを再起動し、新しいURLでアクセスできる事を確認します。
証明書が前のホスト名用なのでブラウザで証明書エラーは出ますがアクセスはできると思います。
let’s encryptで新たな証明書を発行
新しいホスト名で発行します。
証明書更新をCronで回している場合は、必要に応じて修正しておきましょう。
また、旧ホスト名で発行した証明書のRevokeを忘れずに。
nginxのnextcloud.confを更に修正
証明書が発行できたので、nextcloud.confの証明書Pathを修正してnginxを再起動しておきます。
ブラウザを開き新しいURLでアクセスし、証明書エラーが出ない(新しい証明書となっている)事を確認します。
クライアント端末側の情報修正
スマホやタブレット、PCの設定を修正します。
どうやら接続先のみの修正は出来ないようで、新たにアカウントを追加することになります。
設定が初期化されるので、少し面倒です。。。
iOS Appは自動アップロードの設定で、ソースフォルダの設定は真っ先に行いましょう。そうでないとデフォルトのPathにイチからアップロードされてしまうと思います。
更に、サブフォルダーを使用する設定をしている場合はそちらも忘れずに。
バックグラウンドで自動アップロードはオンにするとカメラロールのサイズ次第では膨大な時間がかかるので最後にオンしましょう。
実際に変更してみた感じでは、iOS Appは過去アップロードしたファイルの再アップロードなどは発生しませんでした。
ダウンロードしたファイルは多分再ダウンロードが必要かと思います。
Windows Appは同期フォルダを再選択する過程でそのフォルダは初期化され再度ダウンロードが走ります。
Android Appも同期フォルダ設定が初期化されるので注意。
各クライアントで設定が完了したら古いアカウントは削除します。
動作確認後に古い Aレコードを削除
この時点でおおむね新しいURLでアクセス出来ていると思いますので、古いAレコードを削除します。
この手順で一定期間問題は出ていませんが、追加で必要な設定があれば追記していきます。
記事は以上