[AWS Ligtsail + WordPress] PHPなどインスタンスをバージョンアップするには

AWS, IT記事

Ligtsail で PHP のバージョンアップをしたいと思い調べてみると、Lightsail では新しいインスタンスを作り、丸ごとアップデートするという方法になるようです。

なのでこの記事では、新しいインスタンスを作ってWordPressのデータをまるっと移行する方法について書きます。

1 . Lightsail インスタンスのスナップショットを保存する。

なにかまずかったときに戻せるようにスナップショットを保存します。

Lightsail のインスタンスをクリックして、タブのスナップショットから、スナップショットを保存します。数分かかります。

2 . WordPressのデータをエクスポートする。

WordPress のデータを移すために、古いインスタンスからデータ取り出して、ローカルに保存します。これは WordPress プラグインを使います。

プラグインのAll-in-One WP Migrationをプラグインの欄から有効にします。

有効にした後、左のタブからエクスポートを選択、エクスポート先からファイルを選択して、ローカルに保存します。(保存方法は複数から選べます)

3 . 新しいインスタンスを作る。

インスタンス一覧画面から、新しい WordPress が入ったインスタンスを作成します。触ってなかったので久々ですね。

WordPress とプランを選択するだけです。プランは一番安いのにしました。

4 . Power Shell から SSH で接続する。

Lightsail ではブラウザからインスタンスに SSH 接続できます。便利です。

ですが、SSH クライアントからも接続できると、ショートカットキーとか使えて便利なので設定します。

今回は自分の環境が Windows なので、Power Shell を使います。

PowerShell 上で、ssh とコマンドを打ちます。

ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
           [-i identity_file] [-J [user@]host[:port]] [-L address]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] destination [command]

上記のように表示されたら、ssh が有効になっています。(されない場合、調べてインストールしていただいて)

インスタンスのページの、接続のタブ下に、アドレスとuser名が書かれているので、メモします。さらに、アカウントページのリンクからプライベートキーをダウンロードします。

ダウンロードしたら、そのファイルを使って、ssh コマンドを打ちます。

 ssh bitnami@{アドレス} -i .\LightsailDefaultKey-ap-northeast-1.pem

接続できました。

5 . WordPress データを移行する前に、アップロードサイズ制限を変更する

WordPress のデータを移行するには、アップロードサイズの制限を変更する必要があります。

(保存した WordPress データが40MBより下ならこの工程は必要ないです。)

新しいインスタンスに接続して、以下のコマンドでphp.iniを開きます。

sudo nano /opt/bitnami/php/etc/php.ini

開いたら、post_max_size と upload_max_filesize という項目を探して、40 MB から 250MB などに変更します。

nano の場合検索は Ctrl + w でできます。Ctrl + x で保存。

保存したら、php と Apache の再起動をします。

sudo /opt/bitnami/ctlscript.sh restart

6 . WordPress データをアップロードする

まず新しいインスタンスにかかれているアドレスで接続して、 WordPress にログイン画面からログインします。

ログインパスワードは、

cat bitnami_application_password

All-in-One WP Migration プラグインを有効化して、インポートから、前に保存した WordPress データをアップロードします。

7 . 右下のバナーを消す。

右下のバナーを消します。

sudo /opt/bitnami/apps/wordpress/bnconfig.disabled --disable_banner 1
sudo /opt/bitnami/ctlscript.sh restart apache

(ドキュメントにある通り、sudo /opt/bitnami/apps/APPNAME/bnconfig –disable_banner 1 って打ったらnot found になるので上記のように)

8 . 静的 IP の設定を変更して新しいインスタンスを紐付ける。

オリジナルドメインにしている人は静的 IP を作成していると思います。

ホーム > ネットワーキング にある、静的 IP をクリックして、古いインスタンスをデタッチして、新しいインスタンスをアタッチします。

これで opvel.com へのアクセスが新しいインスタンスに向かうようになります。

9 . 証明書を発行する。

bitnami に証明書用のコマンドが用意されていてよしなにやってくれるようです。

sudo /opt/bitnami/bncert-tool

ドメインを取った opvel.com とwwwを付けた www.opvel.com の証明書を発行します。

質問に答えながら、www.opvel.com → opvel.com や http → https に接続するように設定します。

参考 : https://docs.bitnami.com/aws/faq/get-started/connect-ssh/

(それと、以下の設定は現在も必要かわからないのですがしておきます。必要なさそうなら飛ばしてください)

ブログ内で貼り付けたコンテンツがhttpsになるように設定を変更します。

wp-config.phpを開いてWP_SITEURLとWPHOMEの値をhttpsに変更します。

sudo nano /opt/bitnami/apps/wordpress/htdocs/wp-config.php

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

10 . その他

古いインスタンスを消去したり、アップロードサイズの設定を戻したりします。

まとめ

結構、疲れましたね……。コマンド一つでポンッとアップデートしたいですね。でも計測したわけじゃないですけど、サイト若干早くなった気がします。

Lightsail の記事は久々なんですが、新しいコマンドとか増えてて結構変わったりしているのがわかりました。https化するのが楽になっていたり、windowsも PowerShell アップデートしたからか Open SSH がデフォで入ってました。どんどん管理が楽になるといいですね。