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

2022-09-18AWS,IT記事Lightsail,WordPress

Ligtsail で PHP のバージョンアップをしたいと思い調べてみました。

PHPのバージョンアップならコマンド一つかなと思ったら、Lightsail ではインスタンス丸ごとアップデートという方法しかないようです。つまり新しいインスタンスを作りWordpressのデータを移行します。

なのでこの記事では方法について書きます。

環境 PHP 7.2 から 7.3 へ

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 にログイン画面(サイトアドレス/wp-admin)からログインします。

ユーザー名はデフォルトでuser

ログインパスワードは、以下のコマンドでわかります。

cat bitnami_application_password

最新のWordpressを使っている場合、新しく作ったインスタンスではWordpressが古い可能性があるので、管理ページから確認してインストールします。

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 へのアクセスが新しいインスタンスに向かうようになります。

追記:

sshでWARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!のエラーが出たら、一旦ローカル側の情報を消して再接続します

ssh-keygen -R アドレス

9 . 証明書を発行する。

証明書を発行したり、自動で更新するようにします。

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/

10 . その他

Easy Updates Managerというプラグインを使っていたら、wp-config.phpファイルでのWP_AUTO_UPDATE_COREという設定値を変更することを求められます。

この設定は、Wordpressコアのメジャーリリースのタイミングで更新するかの設定になります。

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

WP_AUTO_UPDATE_COREをtrueに設定します。

参考 : 自動バックグラウンド更新の設定

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

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

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

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

11 . 片付け

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

まとめ

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

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