こんにちは。最近私のWordpressブログダッシュボード上に、PHPバージョンに関する警告が表示されるようになっていました。「PHPバージョンをあげてください」と。
私のWordpressは、AWSのLightSailというサービス上で稼働しているのですが、1年ほど前に作ったその環境のPHPバージョンを確認してみると、7.0でした。現在の最新のPHP Versionが7.4ですので、確かに少し古いようです。
警告を無視して使い続けても良かったのですが、毎回表示されるのでうっとおしいですし、今後PHPのメジャーバージョンアップなどがいつおこってアップグレードをしたくなるかわかりませんので、この機会に手順を試しておこうと思った次第です。
それでは早速まいります!!
Contents
バージョンを上げる唯一の方法
さて、AWS LightSailのBitnami WordPressインスタンスに限って言えば、環境のPHPバージョンを上げる方法はたった一つしかありません。
最新のソフトウェアバージョンスタックを持つインスタンスを作成して、全てのデータを移行する
です!いろいろ調べてみたのですが、大元、Bitnamiのエンジニアがこのように回答しておりました、、
私もこれをみた時絶望的な気持ちに襲われましたが、やってみると意外に簡単にできましたので、以下、その方法をご紹介いたします。
新しいWordPressインスタンスの作成
WordPressスタックのバージョンは、Bitnamiにより随時アップデートされています。そのため、WordPressインスタンスを作りなおすことで、インスタンスにプリインストールされているPHPのバージョンを新しくすることができます。
LightSailのページから、Create New Instanceで新しいWordpressインスタンスを作成してください。
現在のWordpressのバックアップをとる
WordPressのバックアップを取得する方法はいくつかあります。
- 1、Wordpress>ツール>エクスポートから取得(基本機能)
- 2、プラグイン「All In One WP Migration」のエクスポート機能から取得
- 3、コマンドラインから手作業でバックアップの取得(今回解説)
結論から申しますと、移行するデータのボリュームが小さい(512MB以下)の場合は、2が最も簡単ですが、それ以上のサイズの場合は3が最も簡単です。というのも、2の方法は、512MBを超えるとプレミアムプランなる課金プランの購入が必要になってしまうためです・・・
1の方法は、試してみたのですが、記事の文字データのみがエクスポートされて、画像やブログテーマの設定などの情報が含まれず、移行先での再構築作業がとても手間そうでしたので、あまり使えないかと思います・・
私のWordPressはアップロードした画像がかなりの容量になっており、3GBほどあったので、3を選択せざるをえませんでした。
が、ご安心ください。3の方法、とても簡単でした!
この方法では、以下のバックアップが必要です。
- MySQLデータベースのデータ
- htdocsフォルダ内のコンテンツ(画像、記事データなど・・)
MySQLデータベースのバックアップ取得
はじめに、移行元のWordPressサーバーへSSHで接続します。(以下画面のConnectより)
接続した画面で、以下コマンドをうちます。この時、Rootユーザのパスワードの入力が追加で求められますので、入力します。このパスワードは以下コマンドで確認可能です。
# MySQLバックアップ取得コマンド
mysqldump --single-transaction -u root -p bitnami_wordpress > ~/bitnami_wordpress.dump
#rootユーザパスワード確認コマンド
cat ~/bitnami_application_password
htdocsフォルダのバックアップ取得
こちらも、上記と同様移行元インスタンスへSSH接続した先で、以下のコマンドを打てば完了です。
tar acvf wp.tar.gz /opt/bitnami/apps/wordpress/htdocs/
それぞれ、コマンドを実行したディレクトリ(デフォルトだとhomeフォルダのはず)に、指定した名前のバックアップファイルが出力されます。
バックアップをローカル環境に退避
さて、上記2つのバックアップが取得できたら、ローカルの環境にダウンロードして、退避させておきます。後ほど、ローカル端末から新しく作成したWordpressインスタンスにこれらをアップロードして、データの移行を完了させます。
ローカル端末からAWS LightSailのサーバに接続してファイル取得を行う場合は、Windowsユーザの場合はWinSCP、Macユーザの場合はTransmit5などのFTPクライアントツールを利用します。
MacのTransmit5を利用した手順を少し解説しておくと、以下の画面で、以下設定すればOKです。
- サーバアドレス:接続したいWordpressインスタンスのパブリックIPアドレス(LightSail画面から確認)
- ユーザ名:bitnami
- パスワード:パスワードの代わりに秘密鍵を利用。(LightSailから事前に秘密鍵ファイルをダウンロードしておき、鍵マークのアイコンからそのファイルを指定)
- リモートパス:未入力
秘密鍵は、LightSailの以下からダウンロード可能です。
接続できたら、先ほどの2ファイルをローカル端末に退避させておきます。
新しいWordPressインスタンスの作成
続けて、新しいWordPressインスタンスを作成します。(画面ショットは記事最初の方でご紹介済)
バックアップファイルの展開
作成したら、先ほどと同様の手順で、新しいインスタンスにローカル端末からFTP接続を行い、任意の場所(homeディレクトリなど)に先ほど退避させておいた2つのバックアップファイルをアップロードします。
アップロード後のhomeディレクトリの状態です。wp.tar.gzとbitnami_wordpress.dumpがありますね。
それでは、これらを展開して、データの移行を完了させます。
LightSailコンソールから、この新しいインスタンスにSSH接続を行い、作業を進めます。
はじめに、新しいインスタンスのMySQLデータベースパスワードを、メモしておきます。
移行を行うと、古いインスタンスのデータベースパスワードが記載されたwp-config.phpファイルに置き換わってしまいますが、そうすると新しいインスタンスでデータベースに接続できなくなってしまうためです。
後ほどデータの展開が完了したら、メモしておいたこのパスワードを展開後のwp-config.phpに上書きします。
cat /opt/bitnami/apps/wordpress/htdocs/wp-config.php | grep DB_PASSWORD
続けて、バックファイルの解凍と、データベースへのインポートを行います。
cd / ##バックアップファイルのあるフォルダに移動
sudo tar xvf wp.tar.gz
mysql -u root -p bitnami_wordpress < ~/bitnami_wordpress.dump
MySQLインポート時に求められるrootユーザパスワードは、バックアップ時と同じコマンドで新インスタンスのものを確認しておいてください。
PHP7.4系イメージでは、なぜかmysqlコマンドが既定で利用できませんでした。(元々はsudoじゃなくてもできていた気がするけど、昔自分で変えてしまっていたかな・・?)
パスを通し直しても実行できない。確認すると、どうやら/opt/bitnami/mysql/bin配下のモジュールが、ルート権限でないと実行できなくなっていた模様。自分はモジュールの権限を緩めてしまいましたが、sudo mysqlで行けるのかな?
MySQLはこのコマンド1つで作業完了です。htdocsディレクトリについては、homeディレクトリ配下に解凍されたものを、実稼働するディレクトリに置かれているhtdocsディレクトリと入れ替えます。(古いものは削除して問題ありません)
最後に、入れ替えたhtdocsディレクトリ配下にある、wp-config.phpファイルのデータベースパスワードを、先に控えておいたものに入れ替えます。
対象ファイル:/home/bitnami/apps/wordpress/htdocs/wp-config.php
はい!これでデータの移行作業は全て完了です!
この時点で、一度ちゃんとデータが移行されていることを確認しておきます。
新しいインスタンスのパブリックIPアドレスをブラウザに直接入力してみてください。元のブログと同じように見えているはずです!おめでとうございます!
ドメイン設定の切り替え
さて、データの移行は完了しましたが、あともう少し実施しておくべきことがあります。
はじめにドメイン情報の切替です。これは、www.xxxxxxx.comなどの旧ブログに割り当てていたドメインに紐づくIPアドレスを、旧ブログから新ブログのものに変更する作業です。
この作業を実施してやることで、URLを入力すると新しいサーバに接続されるようになります。
(現在)www.xxxxxxx.com = 旧ブログのIPアドレス
(変更後)www.xxxxxxx.com = 新ブログのIPアドレス
この作業は、めちゃくちゃ簡単で、LightSailコンソールから作業1つで完了します。
LightSailコンソール>Networkingで、旧ブログ構築時に設定済であろう、ドメイン設定を開きます。
この中の、A Record設定をみると、Resolves toに古いインスタンスが指定されているはずです。これを新しいインスタンスに変更すればOKです!
SSL証明書設定
最後に、上記URLにセキュアに(HTTPSで)接続できるようにする設定です。これを実施しておかないと最新のブラウザではセキュリティ対策によって開けないようになってしまいます。
手順は、こちらの記事で解説していますので、このコマンドを順番に打っていくだけでOKです!
サイト隅のBitnamiロゴマークを隠す
デフォルトだと、サイトの右下にBitnamiロゴマークが表示されています。これを表示しないようにするためには、LightSailのコンソールにSSH接続し、以下コマンドを実行すればOKです。
sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1
sudo /opt/bitnami/ctlscript.sh restart apache
おわりに
以上で、無事新しいインスタンスでWordpressブログを動かせるようになりました!
現在のbitnamiから提供されているWordPressインスタンスのPHPバージョンは実は最新の7.4ではなく7.3なので、近々7.4も公開されるかもしれません。
その際には、同様の手順でさっくり移行しましょう!
本日も最後までご覧いただきありがとうございました!
最後に、もしこの記事がお役に立ちましたら、したの「いいね」ボタンをポチってもらえると励みになります!^^ また、こういった情報も加えて欲しい、ご質問などありましたら、コメント欄にご記入ください^^
これまでは最新のPHPバージョンが7.4系であるのに対してBitnamiが提供するイメージでは7.3系と少し古かったのですが、今日確認してみると、どうやら昨年末あたりに7.4系のイメージに置き換わっていました。なので、これから新しくWordpressインスタンスを作成される方は、無事に推奨の7.4系PHPを利用いただけます。
*後述しますが、7.4系イメージになって、いくつかこれまで7.3系イメージで利用できていたコマンドがそのまま利用できなくなっていたりしていたので、以下に随時補足を入れていきます。