Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
Warning: preg_match(): Compilation failed: unrecognized character follows \ at offset 1 in /home/r5652521/public_html/soma-engineering.com/wp-content/themes/affinger/functions.php on line 1548
こんにちは!SE ブログの相馬です。
今回は、Lightsail で PHP をアップデートする方法について、実際このブログが使っているインスタンスで実証してみました。
まず先に言わなければならないのは、Lightsail のインスタンス上で PHP をアップデートする事は非常に困難を極める為に、新しいインスタンスを作成してから WordPress を丸ごとお引越しする方法しかないとほぼ断言しても良いかと思います。
Lightsail の PHP は bitnami と言われるもので構成されており、PHP をアップデートする場合は bitnami 全てをアップデートしなければならなさそうです。半年くらいかけて英語含めて時間をかけて検索魔となりググりまくったのですが(時間かけすぎだろといわれそうですが。。)、結局これと言った有効な情報はありませんでした。。残念無念!!
Lightsail の PHP をアップデートしないと起こる問題
何が一番問題かというと、PHP をアップデートしないとセキュリティやパフォーマンスの問題、Google の評価まで落ちます。これは、Lightsail を使っているブロガーの方としては大きな問題です。同じ Lightsail のインスタンスを使っている以上、古い PHP のバージョンを使わざるを得ない事になる為に対応は必須となります。
Lightsail の PHP をアップデートする主な2つの方法
これらの問題を解決する方法は主に2つしかないと思います。
1つ目は Lightsail を使わず EC2 を使うか AWS 以外を使うかです。いずれもかなり大きな決断だと思います。というか、自分で突っ込みますがそもそもこれってアップデートじゃなくて代替え手段になるんですよね。。汗 ですが一応方法として書いた次第です。
2つ目は上にも書きましたが、WordPress の移行方法を確立させておき、必要な時に時間やリスクを抱えずに対応する事です。これも PHP のアップデートではありませんが、アップデートは困難を極めるのでアップデート方法は無いという前提で、Lightsail を継続して使う観点での方法になります。
という事で、私は色々悩みましたが、WordPress の移行方法を確立させる事にしました。Lightsail に愛着があり使い慣れている事と、たぶん他にも同じ悩みを抱えている方も当然いると思うので、私が確立できた方法を基に実践してほしい為です。
という事で、少し手間取ったところもありましたが大きな問題も無く移行できましたので方法をまとめました。ご参考にどうぞ。
実践した WordPress の移行方法
簡単に段取りをまとめると以下のようになりました。概要としては、All-in-One WP Migration を使えば DB 含めて WordPress 丸ごと移行できるので、新しい Lightsail インスタンスを作ってそこに移行すれば簡単にできるといった内容です。
他にも様々な方法があるかと思いますが、これは継続して行う作業なので簡単な方法以外は辞めました。移行そのものはブログの執筆作業の妨げになります。いつか失敗した時の挫折でブログが正しく動作しなくなたり、そういったマイナス要因でブログを継続する事をあきらめるなんてこんな悲しいことは決して起きてはならないからです。
で、こんな段取りになりました。お使いの環境によってはこれ以上になるかもしれません。
- 移行元の WordPress に All-in-One WP Migration プラグインをインストールする
- All-in-One WP Migration から File でエクスポートする
- 新規で WordPress のインスタンスを作る(これが移行先になる)
- 移行先の WordPress に All-in-One WP Migration プラグインをインストールする (多分インストール済みかも)
- All-in-One WP Migration から移行元の WordPressの File でエクスポートしたファイルをインポートする
- 移行元の Lightsail インスタンスの パブリック IP をデタッチし、移行先にアタッチする
- 移行先の WordPress で必要な設定を行う(SSL 設定、ログインシールの削除や DB テーブルのプレフィックス名変更など)
- 記事やサイトのリンクがドメイン名ではなく IP アドレスになっているのでプラグインを使い一括修正する
- 移行元の Lightsail インスタンスを停止し、動作テストを実施する
補足をしますと、5 番のインポートはファイルの容量に制限がありますので、ほとんどの場合、有料で 69 ドルくらいで、All-in-One WP Migration Unlimited Extension プラグインを購入して制限を解除しなければなりません。要はお金がかかるという事ですよね。
ただし、これは継続した作業になりますのでワンタイムの費用としてではないのでそう考えれば決して高くはないと思います。
あと、気を付けなければならない点としては 6 番ですね。移行元のLightsail インスタンスにアタッチされているパブリック IP を、必ず移行先の Lightsail インスタンスにアタッチしてください。これをしないと Google 検索の評価において致命的な問題が発生しますので注意が必要です。
7 番は抜かりなく確認してください。SSL の設定は当然ですが必須ですし、ログインシールはセキュリティ上とても危険なので必ず削除してください。DB のテーブルのプレフィックス名もやり残すのではなく、このタイミングで変更しておきましょう。
8番も対応しておきましょう。内部リンクの問題につながりますのでいらぬ事で後で問題が起きるよりはここで対応すべきかと思います。
WordPress の移行に必要な物まとめ
必要なものは最低でも以下の 4 つになると思います。お使いの環境によってはこれ以上になると思います。
Lightsail の 新しい WordPress インスタンス ← 移行先
All-in-One WP Migration (無料版はインポート40 MB まで)
Change Table Prefix ← 移行後に DB テーブルのプレフィックス名を変更
Better Search Replace ← 移行後に 内部リンクのアドレスがドメイン名ではなく IP アドレスになっているので修正
WordPress を移行する
では WordPress を移行してゆきましょう。
Lightsail インスタンスの作成
1. まずは、AWS にログインしてインスタンスを作成します。
2. インスタンスができました。
WordPress のエクスポート
1. All-inOne WP Migration プラグインをインストールします。
2. 「ファイル」をクリックして WordPress 丸ごとエクスポートします。
WordPress のインポート
1. 新しく作成した Lightsail インスタンスのパブリック IP を確認します。
2. 念のためサイトへのアクセスができるか確認しておきます。
3. 新しく作成した Lightsail インスタンスのコンソールで WordPress にログインする為のパスワードを確認します。
1 2 |
bitnami@hogehoge:~$ cat /home/bitnami/bitnami_application_password パスワードが表示 ← これが初期パスワードです。 |
4. ユーザー名は「user」、パスワードは上の手順で確認したパスワードを入力してログインします。
5. All-in-One WP Migration プラグインが入っていなければインストールしておきましょう。
6. All-in-One WP Migration プラグインから移行元の WordPress でエクスポートしたファイルをインポートします。ファイルが 40 MB を超えるとインポートできませんので、有償版を購入してインポートする必要があります。
7. インポート手順は以下のような流れとなります。かかる時間はエクスポートしたファイルのサイズやインターネットの回線によります。
WordPress の移行後に行うこと
パーマリンク設定を確認して保存する
移行前の WordPress とパーマリンクが同じか確認して保存します。これが間違うを Google 検索などの評価で致命的な問題が発生しますので必ず確認しましょう。
ログインシールの削除
WordPress のファイルをインポートしてもログインシールは消えませんので、コマンドを実行して削除する必要があります。
1 2 |
$ sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1 # 実行結果は何も返ってきません。 |
パブリックIPの移行
1. 以下の方法でパブリックIPも必ず移行しましょう。同じパブリックIPでないと Google のサイト評価が落ちますので必ず実施しましょう。
2. 移行した後は nslookup コマンドを実行してドメインに対して移行したパブリックIPが表示されている事を確認します。
SSL化
サイトが SSL 化されていませんので、SSL 化する必要があります。
1. まずは、「wp-config.php」を開いて設定内容を一部変更しましょう。※以下のようにHTTP から HTTPS に変更します。
2. その後に、以下の記事を参考に Bitnami HTTPS Configuration Tool というものを使い証明書をインストールして SSL 化します。
これで基本的な部分は全て完了です。環境によっては他にも設定をする事があれば確認して修正などしましょう。
まとめ
いかがでしょうか。私もこれで長い間古い PHP や MySQL のバージョンから解放されたので良かったです。
古い PHP や MySQL のバージョンを使っていると Google の評価も落ちますので定期的にこの方法を使って WordPress を引っ越すようにしましょう。
それでは最後までお読みいただきありがとうございました!