harupaka's Blog!

はるぱかのテック系ブログ
harupaka's Blog!

harupaka's Blog!

はるぱかのテック系ブログ

SNS

About

Blog

Blog

AWS LightsailのWordPressを移行!PHPの脆弱性対策とハマったポイント

AWS LightsailのWordPressを移行!PHPの脆弱性対策とハマったポイント こんにちは!はるぱかパパです! 今回は、このブログを運用している AWS LightsailのWordPress環境を移行したお話です。 きっかけは、PHPの脆弱性への対応。 これまでAWS LightsailのBitnami版WordPressを利用していましたが、セキュリティ対策を進めるため、新しいLightsail版WordPressの環境へ移行することにしました。 移行自体は無事に完了しましたが、データベースの復元やSSL証明書の設定、Jetpackのアクセス統計など、いくつかつまずいたポイントもありました。 備忘録も兼ねて、今回の作業内容を紹介します! 目次 PHPの脆弱性対策が必要に! WordPressはPHPで動作しているため、WordPress本体やプラグインだけでなく、PHP自体のセキュリティ対策も重要です。 これまで利用していたLightsailのBitnami版WordPressでは、PHPの脆弱性への対応が必要になっていました。 AWSの公式ドキュメントでも、PHPの脆弱性への対応方法が案内されています。 AWS公式:PHPのセキュリティ脆弱性への対応 そこで今回は、従来のBitnami版WordPressから、新しいLightsail版WordPressへ移行することにしました。 Bitnami版からLightsail版WordPressへ移行 今回実施したのは、既存のWordPress環境をそのままアップデートするのではなく、新しいインスタンスを作成して、ブログのデータを移行する方法です。 大まかな作業の流れは以下のとおりです。 AWS公式にも移行手順が公開されているので、こちらを参考に進めました。 AWS公式:BitnamiからLightsailブループリントへの移行 ① まずは旧WordPressをバックアップ 移行作業で一番重要なのがバックアップです。 今回は、WordPressのエクスポート機能に加えて、データベースとファイルも個別にバックアップしました。 WordPressのエクスポート WordPressの管理画面から「ツール」→「エクスポート」を選択し、投稿や固定ページなどのデータを保存します。 データベースのバックアップ MySQLのデータをエクスポートして保存します。 WordPressの記事や各種設定などはデータベースに格納されているため、こちらも重要です。 画像やプラグインなどのバックアップ wp-content ディレクトリもバックアップしました。 ここにはアップロードした画像やテーマ、プラグインなどが保存されています。 WordPressのエクスポート機能だけでは、サイト全体を完全に復元できるわけではないので注意が必要です。 ② 新しいLightsailインスタンスを作成 続いて、AWS Lightsailの管理画面から新しいWordPressインスタンスを作成します。 今回は従来のBitnami版ではなく、Lightsail版のWordPressブループリントを選択しました。 この時点では旧インスタンスを停止せず、新旧の環境を並行して用意しておきます。 新しい環境で問題なくWordPressが動作することを確認してから切り替えれば、万が一トラブルが発生しても元の環境に戻しやすくなります。 ③ WordPressのデータを復元 新しいインスタンスが作成できたら、バックアップしたデータを復元します。 今回はWordPressのインポート機能に加え、MySQLのデータと wp-content のファイルも移行しました。 データベースの復元では、新しい環境のデータベース設定を確認し、バックアップしたSQLファイルをインポートします。 ただし、WordPressのインポートとデータベース全体の復元は、対象となるデータが重複することがあります。 一般的には、データベース全体を復元する方法か、WordPressのインポート機能を利用する方法のどちらかを中心に進めるのがわかりやすいと思います。 今回は環境の違いもあったため、設定やファイルの整合性を確認しながら作業しました。 特に、テーマやプラグイン、画像ファイルが正常に引き継がれているかは重要な確認ポイントです。 ④ 静的IPアドレスを新しいインスタンスへ移行 データの復元が完了したら、公開先を新しいインスタンスに切り替えます。 AWS Lightsailでは静的IPアドレスを利用できるため、今回は旧インスタンスから静的IPアドレスをデタッチし、新しいインスタンスにアタッチしました。 これなら、既存のIPv4アドレスを引き継げるので、DNS設定の変更を最小限に抑えられます。 ただし、切り替えのタイミングによっては一時的にサイトへアクセスできなくなる可能性があります。 アクセスの少ない時間帯に作業するのがよさそうです。 SSL証明書の設定でエラー発生! 今回、少しハマったのがSSL/TLS証明書の設定です。 新しいWordPress環境でHTTPS対応を進めようとしたところ、次のようなエラーが表示されました。 DNS records do not match instance IPs. Did not find IPv6 match for 1 domain(s). どうやら、ドメインのDNS設定と新しいインスタンスのIPv6アドレスが一致していないことが原因のようです。 Route 53にAAAAレコードを追加 今回はAWS Route 53でドメインを管理しているため、DNS設定を確認しました。 IPv4アドレスに対応するAレコードは設定していましたが、新しいインスタンスのIPv6アドレスに対応するAAAAレコードが不足していました。 そこで、ルートドメインとwww用にAAAAレコードを追加しました。 項目 設定内容 レコードタイプ AAAA レコード名 ルートドメイン、www 値 新しいLightsailインスタンスのIPv6アドレス TTL 300秒 なお、AAAAレコードは、インスタンスでIPv6が有効になっており、そのアドレスでWebサイトへ正常にアクセスできることを確認してから設定する必要があります。 DNSの変更が反映されるまで少し待ってから再度SSL証明書の設定を実行すると、無事に進めることができました! WordPress側もHTTPSに統一 SSL証明書の設定が完了したら、WordPress内のURLもHTTPSに統一します。 WordPressの管理画面でサイトURLを確認するとともに、データベース内に残っているHTTPのURLも必要に応じて置き換えました。 この作業にはWordPressの管理ツール「WP-CLI」の検索・置換機能が便利です。 ただし、データベース内のURLを一括変更するため、必ずバックアップを取得し、事前に変更対象を確認してから実行する必要があります。 最後にWebサーバーを再起動し、HTTPSで正常にアクセスできることを確認しました。 無事にセットアップ完了しました! HTTPSの設定は正しいのに「保護されていない通信」!? 実は、SSL証明書の設定が完了したあとにも、もうひとつつまずいたポイントがありました。 …

ガラホSH-01JでSMSを転送する

ガラホ(SH-01J)に届くSMSをスマホに転送する方法です。 ES File Explorer でアプリ転送してapkをダウンロード、インストールする方法がネットで見つかりますが、2021年9月現在使えませんでした。端末のアップデートが影響してるのかもしれません。 sdカードにapkを入れてプリインストールされているデータBOXアプリでapkを読もうとしても失敗になります。 成功した方法は開発者モード(ビルド番号を連打)にしてadbコマンドでアプリをインストールする方法です。PCが必要になります。 アプリはSMS転送アプリを使いました。pushbulletはgoogle play 開発者アプリが必要でコケました。(googleのapkを入れるのを試しましたがフレームワークエラーが繰り返しでるようになり初期化を余儀なく迫られました(泣)) apkのダウンロードはAPKMirrorからSMS Forwarderで検索すると見つかりました。 SMS転送アプリは無事動作しました。 送信元にgmailは上手く行かなかったのでoutlookを使いました。 設定は、 Host: smtp.office365.com Port: 587 認証を使用する、TLS/StartTLSを使用する でいけました。 古い機種なので需要はないかもしれませんが参考になれば幸いです。

Morning Walk

I took a walk because the morning walk is the basis of a stress-free life. The photo is a plum tree in a nearby park. I added a watermark for zenfone 7 against the backdrop of the sunrise. What I noticed after taking a walk is that I inevitably get dressed, so I can move faster after that. I also thought that if I had a dog, I could get into the habit of taking a walk. It’s nice to be able to start the day comfortably.

ROG Zephyrus G14 Sleeveをもらいました!

こんにちはharupakaです。 ASUSのROG絶対もらえる!レビューキャンペーンでROG Zephyrus G14 Sleeveをもらいました。 開封動画を撮ってみました。 スマホで適当に編集した動画なので見ずらいですが、こんな感じです。何気にチャックが防水仕様っぽくシームレスになっているのが良いです。 定価で2,728円 (税込)するので無料でもらえるのはありがたいですね。

朝散歩

朝の散歩がストレスフリーな生活の基本、ということで散歩してみました。写真は近くの公園の梅です。朝焼けを背景にzenfone7のウォーターマーク付けてみました。 散歩して気づいたのは必然的に身支度もするのでその後の動きが早くなるということ。 犬がいれば散歩も習慣づいていいな、とも思いました。 一日が気持ちよくスタートできるのはいいですね。

Lightsailのwordpressを常時SSL化

Lightsailのwordpressを常時SSL化させてみます。手順としては簡単でしたが何点か引っ掛かりました。 まず、wordpressのインスタンスにSSHで接続し、 で Bitnami HTTPS Configuration toolを起動します。ここでなぜか と出て、bitnamiフォルダを入力してもエラーになります。 Problem with run The Bitnami HTTPS Configuration Tool にあるようにインスタンスの再起動でエラーはなくなりました。困ったときは再起動、ですね。 以下、どんどん設定していきます。 これでSSL化できました。 ただwordpress上でWordpress AddressとSite Addressがhttpのままになっていました。 wp-config.phpをいじっていきます。 上記のhttpをhttpsに書き換えます。 Apacheを再起動します。 これでworpdress上でもhttpsになりました。 昔SSL化って結構てこずるイメージでしたが、簡単にできてしまいました。 参考URL: Amazon Lightsail でホストされている Bitnami スタックに SSL 証明書をインストールする方法を教えてください。 【簡単】 AWS LightsailのWordPressサイトをSSL化する方法 【自動更新あり】

Amazon Route 53 でドメイン取得

AmazonのRoute53でドメイン名を取得しました。外部のDNSを使ってましたがLightsailを使っているので統一してみました。 LightsailにもDNSがあるようですが、Route53側で運用します。 Aレコードに@とwwwのエイリアスを追加して、wwwありなし両方でアクセスできるようです。 設定によってアクセスできたりできなかったりと、理解できていませんがとりあえず運用してみます。

WordPressブログの致命的なエラー (?)をデバッグする

WordPressブログを立ち上げ、さて新しい記事を書こうとすると下記のエラーがでました。 There has been a critical error on this website. 致命的ですか。まじですか。外観をいろいろいじっていたのがいけなかったのかな? とりあえずデバッグ情報を表示させて何がいけないのか見に行きます。wp-config.phpのデバッグをオンにします。 nano /opt/bitnami/apps/wordpress/htdocs/wp-config.php define( ‘WP_DEBUG’ , false ); を define( ‘WP_DEBUG’ , true ); にし、 でapacheを再起動。再び新しい記事を書こうとするとエラー情報が出力されます。 auto-post-thumbnailのプラグインが悪さをしていたようです。Auto Featured Imageというプラグインを入れていたのでこれが怪しそう。プラグイン設定画面のFeatured Imageを “Both” から ” Find in post “に変えました。Generate from titleを加えても何も表示されていなかったので。。。APIの設定が必要なのかな? これで再び新規記事が書けるようになりました! よかったよかった。 デバッグを表示しておくとテーマがワーニングを表示しているようなのでWP_DEBUGはfalseに戻しておきます。 WordPress初心者です。がんばります。

bitnamiの表示を消す

bitnamiのバーナーを消す。 ブログの右下にいるこの人。bitnamiさん。いなくていいので消してみます。 AWSでwordpressにssh接続し、バーナーをdisableにするコマンドを打ちます。 sudo /opt/bitnami/apps/wordpress/bnconfig –disable_banner 1 apacheをリスタートします。 sudo /opt/bitnami/ctlscript.sh restart apache 消えました!すっきりしました。 それほど詳しくなくてもなんとなくでできますね。

About

こんにちは。harupakaです。テック系、ガジェット系をレビューしたり、投資の勉強をしてアウトプットしていきます。