レンタルサーバからNetlifyでブログ運用するようにした

Last Update: 2019-08-19

いままでレンタルサーバ+独自ドメインで運用していたブログを、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に書いたが、だいたいやることは次のもの。

  1. サーバ上で行っていたLet’s Encryptの証明書更新設定を停止する
  2. サーバ上で該当ドメインに関するhttpサーバの設定を削除する
  3. サーバから該当のデータを削除する
  4. サーバのデータベースから該当の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サーバがエラーを起こす。
そのため、今度は該当のサブドメインの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 確認したデータベース名;でデータベースを削除する。

以上で作業は終了となる。