Lightsailを安いプランに切り替えるため、徒労日記の引っ越し=インスタンス再作成をしました。
今回は手作業ではなくDuplicatorプラグインを使ったら便利だったので、手順を紹介します。
また、長引いた理由も判明したのでそれについても書きます。
手作業とプラグインの違い
Amazon Lightsailを使っていると、インスタンスの入れ替え=Wordpressの引っ越しが割りと頻繁にあります。
コアモジュールのバージョンアップだったり、トラブルのためのスペックアップだったり。
その度に手順をブラッシュアップしてきたけれど、イメージが改版されるたび違いが出るため時間がかかっていました。
そこで今回は、基本お任せで作業が進む「Duplicatorプラグイン」を使った移行を試してみました。
これまでの手作業と並べるとこんな感じになります。
Duplicatorプラグイン | 手作業 | |
1.事前準備 | プラグインのインストール | ー |
2.バックアップ | WordPressの管理画面でアーカイブ作成 | SSHからコマンドでDBとファイルをバックアップ |
3.ファイルの退避 | ブラウザでローカルにダウンロード | SCPでローカルにダウンロード |
4.新インスタンスの起動 | Lightsailダッシュボードにて作成。IP割当。 | Lightsailダッシュボードにて作成。IP割当。 |
4.ファイル転送 | SCPでアップロード | SCPでアップロード |
5.リストア | ブラウザでinstaller.phpを開いて画面に従う | SSHからコマンドでファイルを解凍、DBをインポート |
6.リストアデータのカスタマイズ | ー | DBパスワードの復元 |
7.SSL化 | SSHからコマンドでbncert-toolを実行 | SSHからコマンドでbncert-toolを実行 |
こう書いてしまうとステップ数にあまり差は無いように見えますが・・・。
手作業の場合、2.バックアップや5.リストアにそれなりのノウハウが要ります。
6.では復元したwp-config.phpのパスワード部分を新ホストのデータで書き換える作業も必要。
Duplicatorではそういった手順は不要でした。
一度使い方を覚えた今、これからはこのプラグインでいいかな?と思うくらいです。
Duplicatorプラグインを使った引っ越し手順
元は英語のみなので、ブラウザの翻訳をONにして進めます。
なお作業を始めるまえに、サイトのテーマをWordpress標準添付のTwenty Twenty-Twoなどにしておきましょう。
理由はおまけで紹介します。
旧ホストでの作業
移行前のサイトにDuplicator – WordPress Migration Pluginをインストール。
管理画面からDuplicatorを開き、[新規作成]をクリックします。
名前だけ決めて[次]へ。
保存先のパスを変えたり、パスワードをつけたりもできます。クラウドはPro版のみ。
旧ホストの環境がスキャンされ、問題があれば表示されます。
徒労日記はDBの一部テーブルがデカいとか、特定のUploadディレクトリがデカいとか言われました。
引っかかったら考える事にして進みます。
チェックをつけて[ビルド]をクリック。
約3分ほどで圧縮が終わり、インストーラー(php)と1.6GBのアーカイブ(zip)が完成しました。
これをローカルにダウンロードしておきます。
新旧のホスト入れ替え
この段階で旧ホストを停止。
グローバルIPアドレスをデタッチします。
次に新しいインスタンスを作成し、数分の起動を待ちます。
その間にグローバルIPをアタッチ。IPv6は無効にします。
SSL化はまだなので、この後のWebアクセスにはブラウザのシークレットモードを使うと便利。
新ホストでの作業
SCPを使い、2つのダウンロードファイルをWebアクセス可能なパスにアップロードします。
自分は/opt/bitnami/wordpressに配置しました。
ブラウザからinstaller.phpにアクセス。(例 http://dolls.tokyo/installer.php)
”アーカイブファイル名”にアップロードしたファイル名を入れて[送信]。
このあとステップ1~4まで移行作業がはじまります。
早速ステップ1では「wp-config.phpが書き込めない」とエラー。
SSHで入ってパーミションを変更します。
$ sudo chmod 660 /bitnami/wordpress/wp-config.php
他は警告のみ。
1つは上書き確認。イメージに入っていたWordpressは上書きするので[サイト上書きモード]をチェックします。
2つ目はPHPバージョン。当然異なりますが、やむなしなのでそのまま[次]へ。
ステップ2。
データベースのチェックは何も変更せずに[テストデータベース]をクリック。
なにやら”照合機能を確認する”で引っかかりました。
指示に従い、オプションにて“不明な照合タイプにレガシー…”にチェック。
再度テストすると次に進めました。
ステップ3はそのまま[次へ]
ステップ4までくれば完了。
[管理ログイン]を押せばもう引っ越し後の環境に入れます。
これでいつもの管理画面が表示されたら完了。
おまけ:サイトに重大なエラーがありました。
今回の移行では予想外のトラブルがありました。
初のエラーに詰む
データベースのインポート直後、「サイトに重大なエラーがありました。」と表示され管理画面にも入れなくなる問題です。
過去数回インスタンスの作り直しをしていますが、このエラーは初めて。
例に従い、wp-config.phpを
define( 'WP_DEBUG', true );
と変更します。
しかし再度アクセスすると今度は真っ白になり、何も情報を得ることが出来ませんでした。
wp-contentディレクトリへのログファイルの生成もなし。
pluginディレクトリを丸ごと移動→変化なし。
themeディレクトリを丸ごと移動→「テーマLIONMEDIAが見つかりません(意訳)」に変わったけど、テーマを変更する手段なし。
ちなみにDuplicatorプラグインを使った時も問題は出ました。
問題はテーマ
結局themeディレクトリの移動時の変化がヒントになりました。
旧サイトのバックアップを取る時点でテーマを”Twenty Twenty-Two”に変更したところ無事移行完了。
その後、切り分けのためにWP_DEBUGをtrueにし、使っていたLION MEDIAをライブプレビューするとエラー表示。
どうやらfunction.phpなど多数のPHPでエラーを吐いていたようです。
ただし、LION MEDIAだけではなく、確保していた古いテーマは軒並み同じ重大エラーを吐きました。
純正や最新のテーマはすべて問題なし。
おそらく、前回(2022年4月)のLightsailイメージと最新ではPHPのサポートに差が出たのだと思います。
いつまでも古いテーマを使うなって事なのでしょう。
なお条件不明ですが重大なトラブルの際、WordpressからリカバリURLを含まれたメールが届くそうです。
Jetpackでしょうかね?
初心者向け・WPで「サイトに重大なエラーがありました」と表示される際にDEBUGの前にやること | 名古屋のホームページ制作会社・ゴリラウェブ
Masonry Gridにチェンジ
というわけで長らく使ったLION MEDIAに別れを告げ、同じMasonryレイアウトを持ったMasonry Gridに変更しました。
シンプルなデザインながらグリグリ動き、Free版であっても高いカスタマイズ性があります。
Wordpress6.0対応で当然PHPエラーはありません。
テーマを強化するプラグインなんかも付属でいじっていて楽しい。
もし見づらいとかありましたら教えてください。