レンタルサーバからNetlifyでブログ運用するようにした
いままでレンタルサーバ+独自ドメインで運用していたブログを、Hugo+Netlifyで配信するようにした。というのは前回の記事で書いた。 WordPressからHugoに映る部分はともかくとして、運用していたドメインの切り替えとかについて備忘録を残すことにした。 同じ作業はもうやらないとは思うのだが、もしやることになったら絶対忘れてるので・・・。
すでに独自ドメインで運用していたものをNetlifyに移すのは別に難しくない。 これは単純にドメインが参照する先を、これまで自分のレンタルサーバだったものをNetlifyに向かわせればいいだけであるからだ。
ただNetlifyで独自ドメインを運用する場合、ネームサーバの設定はNetlify上でやるように変更する必要がある。 逆に言うとそれだけなので、これは大した手間ではない。
私の場合、独自ドメインで運用しているすべてをNetlifyに移すわけではない。 サブドメイン(wantit/android)で運用していたものだけNetlifyに移す。 この場合でも、すべてのネームサーバの設定をまるごとNetlifyに移さなければならない。
まあ関係ないサブドメインなどは、以前のままレンタルサーバに向けておけばよいだけである。
https://github.com/gen0083/blog_android.gcreate.jp/issues/17#issuecomment-495984310
GitHubのissueに書いたが、だいたいやることは次のもの。
- サーバ上で行っていたLet’s Encryptの証明書更新設定を停止する
- サーバ上で該当ドメインに関するhttpサーバの設定を削除する
- サーバから該当のデータを削除する
- サーバのデータベースから該当のWordPressのデータベースを削除する
今回の記事は、各内容についてもうちょっと詳しく書き記しておくのが趣旨だ。
すでに私の運用しているブログはHTTPSに移行していた。 レンタルサーバ上で自動的にLet’s Encryptの証明書更新が走るように設定していた。
Netlifyに移行する場合、この証明書の更新はNetlify側でやってくれる。 さらにいうと、Netlifyで運用するサブドメインは、レンタルサーバには行かなくなってしまう。 つまり、証明書の更新をやろうとしてもエラーになるというわけだ。
この作業を忘れたからといって、証明書の更新作業に影響があるわけではないだろう。 しかし、しなくてもよい作業をそのままにしておくのも行儀が悪いので、レンタルサーバ上での証明書自動更新処理を停止する。
私のサーバ上ではcertbot
コマンドを使っているのが、環境によっては使うコマンドが違うかもしれないので注意されたし。
certbot renew --dry-run
を実行したら、ドメイン名の解決ができないといったエラーが出ると思う。
ネームサーバの設定を変えた直後だと普通に成功するかもしれないが。
certbot delete --cert-name 削除するドメイン名
で証明書更新対象から該当ドメインを削除できる。
削除するドメイン名は私の場合/etc/letsencrypt/live/
ディレクトリ下に証明書を管理しているドメインがリストされているので、そこにあるドメイン名を入力する。
最後に再度certbot renew --dry-run
を実行してエラーがなくなればOK。
ちなみに私は一部のドメインに関しては、継続してレンタルサーバで動かすので、一部だけ更新設定を削除している。
前ステップの作業で、サーバ上から証明書が削除される。 するとこの証明書を参照していたhttpサーバがエラーを起こす。 そのため、今度は該当のサブドメインのhttpサーバの設定を削除する。
私の場合はapacheを使っているので、apacheから該当のサブドメインを削除する。
私の環境では/etc/apache2/sites-enabled/
に有効化されているドメインの設定がある。
この設定を削除するにはa2dissite 削除するドメイン設定ファイル
で無効化できる。
設定ファイルの実体は/etc/apache2/sites-availabled/
にある。enabledにあるのは単なるシンボリックリンクで、a2dissite
でシンボリックリンクを消している。
実際エラーになるのはSSL設定しているものだけだ。しかしどうせそのサブドメインはもう使わないので、あわせて一緒に消しておけば良い。
apacheの設定を変更したらsystemctl reload apache2
で設定ファイルの再読込を行う。
ここから先の作業は、念の為バックアップをとってからやるといい。
サーバ上で運用していたWordPressのデータを消す。もう使わないので。
気をつけるべきは、全く別のディレクトリを消してしまわないようにということくらいだろうか。
WordPressで使っていたデータベースはMySQLなのでmysql
コマンドを使う。
show databases;
でデータベース一覧が確認できる。ここでデータベース名を確認する。
drop database 確認したデータベース名;
でデータベースを削除する。
以上で作業は終了となる。