AWS Lightsail Bitnami WordPressから新しいLightsail WordPressへ移行した

はじめに

このblogを開設した当時から、AWS Lightsail上でBitnami WordPressを利用していました。ただ、このBitnami版のWordPressのサポート終了と、その代わりに新しいLightsail WordPressへの移行の連絡がきました。これに伴い、今回、Bitnamiから新しいLightsail WordPressに移行したので、今後移行する人などに向けてやり方のまとめです。

今回の記事は公式の移行のユーザーガイド をベースに自分の環境による差異を補足したものになります。
私のWordPress環境を次に説明していきます。

移行前

移行前のWordPressの状態がどのような状態だったかを以下に簡単に示します。

  • AWS Lightsail Bitnami WordPress
  • Static IP利用
  • 独自ドメイン運用
  • HTTPS対応済み

ちなみに、移行の際に重要なポイントとして、サイトをエクスポートしたときにどれくらいのサイズになるか?ですが、事前に不要なログデータなどは削除しておいたので、300MB程度でした。このため、後ほど説明するAll-in-One WP Migrationを使って簡単に移行可能となっていました。

移行後

次に移行後の環境は以下の通りです。

  • AWS Lightsail WordPress 7.0
  • Static IP引き継ぎ
  • Let’s EncryptによるHTTPSサイト

重要なこととして、主題のAWS Lightsail WordPress 7.0への移行とそれ以外は基本同じように使えるようにするというものがありました。細かい移行方針は次に説明します。

移行方針

どのように移行していくつもりなのかで、話が変わると思うので、まずは移行方針を簡単に説明します。

今回は前々からバックアップや移行のときに利用していたAll-in-One WP Migrationを今回も利用して移行しました。このプラグインは以下のようなものを簡単に移行することができ、いつも重宝しています。

  • 記事
  • 画像
  • プラグイン設定
  • テーマ設定

ただ、バックアップからインポートするだけだと、完全に元の状態にならないので、インポート後少し、手直しするという方針でいきます。

次から実際の移行手順について順番に説明していきます。

Step1. 旧サイトのバックアップ作成

まず移行元のWordPressにログインしますし、以下の手順でバックアップを取得します。

プラグインのインストール

私の場合はすでにAll-in-One WP Migrationが入っていましたが、入れてないという方はまずはAll-in-One WP Migrationを入れます。これは他のプラグインと同じように管理画面から以下の手順でインストールできます。

プラグイン
↓
新規追加
↓
All-in-One WP Migration

All-in-One WP Migration を使ったエクスポート

インストール後、メニューから以下のようにしてエクスポートします。

All-in-One WP Migration
↓
Export
↓
Export To
↓
File

を選択します。しばらく待つと

xxx.wpress

というファイルが作成されます。

このファイルが移行元のバックアップになります。このタイミングでいくら待ってもエクスポートされないやエクスポートに失敗するという場合は、利用しているプラグインの中に大量にログを残しているものがあるや、バックアップが多すぎてディスクに書けてないなど様々な要因が考えられるので個別に対処する必要があります。このような問題はケースバイケースだと思いますが、ChatGPTに相談したら自分のケースは簡単に解決できました。

Step2. 新しいLightsail WordPressを作成

Lightsailコンソールから新しいWordPressインスタンスを作成します。ここは移行のユーザーガイドそのままです。

リージョン

既存環境と同じリージョンを選択します。

今回は

Asia Pacific (Tokyo)
ap-northeast-1

を利用しました。

Blueprint

AWSが提供する新しいWordPress環境を利用するために、Blueprintは以下のものを選択しました。

WordPress

それ以外は既存のBitnamiの設定を踏襲しました。

Step3. WordPressの管理画面へログインのための準備

インスタンス作成後、WordPressの初期パスワードを確認します。このあと何度もSSHでログインして、コマンドをたたくことになるのでSSHでログインして管理画面のパスワードを確認します。

Lightsailはweb画面から簡単にSSHできるので、それを活用します。SSHでログイン後以下のコマンドで確認できます。

cat /home/admin/application_credentials

取得したユーザー名・パスワードでWordPressへログインできるようになります。

Step4. アップロード容量制限の緩和などを含めたPHPの設定変更

SSHでログインしているこのタイミングで、アップロード容量制限の緩和などのPHPの設定変更を実施します。デフォルトのままだとPHP側の設定で80MBまでしかファイルがアップロードできないようになっていました。小さいサイトであればもしかしたらこれでも十分かもしれませんが、私のケースではエクスポートしたファイルサイズが300MB程度だったため、デフォルトではアップロードできません。このため次のような変更を実施しました。

まず、/etc/php/8.2/apache2/php.iniというファイルをnanoなどのエディタで開きます。そして以下の項目を変更しました。

upload_max_filesize = 512M
post_max_size = 512M
memory_limit = 512M
max_execution_time = 300
max_input_time = 300

変更後、以下のコマンドで再起動します。

sudo systemctl restart apache2

これでよくある設定変更忘れによるトラブルは起こりにくくなったと思います。

Step5. All-in-One WP Migrationでインポート

WordPressの管理画面にログイン後、まずはエクスポートでも利用したAll-in-One WP Migrationを移行先のWordPressにもインストールします。インストール手順はエクスポートのときと同じです。

インストールできたら管理画面でAll-in-One WP Migrationからいかのように選択してインポートします。

Import
↓
File

を選択し、

先ほど作成した

.wpress

これで、エクスポートしたファイルをアップロードします。ファイルサイズが大きい場合などはこのタイミングでエラーがでる可能性があるので、適宜Step 4を参考に変更するなど行ってみてください。

Step6. Static IP切り替え

インポート完了すると、このタイミングで見た目としては元のサイトと同じ状態になっていると思われます。いくつかページを見て、問題ないことが確認できたら、次は既存サイトで利用していたStatic IPを新サーバーへ付け替えます。Lightsailのインスタンスの画面で以下のように選択します。

Networking
↓
Static IP
↓
Detach
↓
Attach

これで、Static IPアドレスでサイトが見れるようになります。ただし、このタイミングだと元々HTTPSを設定している場合などはCSSなどが適用されず画面が崩れるケースが発生すると思われます。これは次のHTTPSの設定で直します。

Step7. HTTPS設定

ここからHTTPSの設定に入ります。これはWebでぽちぽちやれば設定できるように変更されており、少なくとも私の記憶ではBitnami版よりも簡単になっている印象です。まず、LightsailのWordPressのインスタンス画面の

Connect
↓
Set up your website

から設定します。ここから自分の環境に合わせて選択していきます。自分の場合は主な設定は以下の通りです。

  • サードパーティーのdomainサービスを利用
  • DNSはLightsail DNS zone
  • Manage domain assingmentsでAレコードのみで、AAAAレコードがなかったので追加

これでLet’s Encrypt証明書の発行され、HTTPSが使えるようになります。

Step8. 画像の一部のリンク切れ

HTTPS設定後で、ブラウザの開発者ツール(F12)で確認すると、ブログのロゴの部分の画像がリンク切れを起こしていました。これはバックアップのインポート時に最初の動的IPアドレスを使ったリンクに置き換わっていたため、発生していました。これは今回以下のように解決しました。

解決方法

SSHでWordPressのインスタンスにログインし、以下を実行します。

wp search-replace \
'http://13.xxx.xxx.xxx' \
'https://mattari-benkyo-note.com' \
--all-tables

これでリンク切れは解決しました。

Step9. WordPress URLの設定の修正

管理画面を確認すると、

設定
↓
一般

に表示されるURLが

http://mattari-benkyo-note.com

となっており、HTTPのままになっていました。これをHTTPSにしておきたいと思っていました。しかも、グレーで表示されており、管理画面からは編集できないようになっていました。このため、以下のように対処しました。

対応

SSHで再度WordPressのインスタンスにログインをし、以下へ変更しました。

define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST'] . '/');
define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST'] . '/');

これによりWordPress全体がHTTPSの設定に変更できました。

まとめ

ここまでで基本的な移行作業は完了です。私の場合はこのあと以下のようなことを設定して作業を終えました

  • プラグイン、テーマの更新
  • Lighstailのスナップショットの作成と定期的なスナップショット作成設定
  • 不要プラグイン削除
  • その他セキュリティ周りの設定

ChatGPTに確認しながらですが、大体2時間程度で作業を完了できました。WordPressを移行しないとなぁと考えている方の参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトは reCAPTCHA によって保護されており、Google のプライバシーポリシー および 利用規約 に適用されます。

reCaptcha の認証期間が終了しました。ページを再読み込みしてください。