EC2のPHPを5.3から7.xへバージョンをあげる方法


サーバのWordpressを3.3へアップグレードするためにEC2のPHPを5.3から5.6以上にあげる必要があったため、その時の方法を記載します。

1. EC2のコピーを作り起動する

まずは現在Wordpressを稼働しているEC2サーバのAMIイメージを作成しコピーインスタンスを作ります。

PHPのバージョンアップに伴い一度PHPをアンインストールし、amzn-main以外のレポジトリからインストールするため動作確認など含めバージョンアップには時間がかかります。そのため、コピーインスタンでバージョンアップと動作確認ができてから切り替えます。

2. EC2(コピー)のPHPのバージョンを上げる

amazonのレポジトリにはPHP5.6以上は入っていないため単純にはバージョンアップできませんでした。いろいろ調べて試行錯誤した結果、以下の手順でPHPのバージョンアップができました。

流れとしてはPHPをアンインストールし、remiレポジトリを追加してPHP7.3をインストールしています。インストールをいくつかに分けて行っているのは、依存関係でエラーが多くいろいろ試行錯誤した結果です・・・

この手順で更新した場合、PHPの設定ファイルやログファイルの場所が「/etc/opt/remi/php73/php-fpm.d/*.conf」「/var/opt/remi/php73/log/php-fpm/error.log」などに変わってしまったので、こちらに設定などをする必要があります。

# 既存PHPを削除する
> service php-fpm stop
> yum remove php*
> yum remove httpd-tools

# REMIレポジトリを追加しPHP7.3をインストール
> rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
> yum install zlib-devel xz-devel libverto-devel keyutils-libs-devel libedit-devel  libmpc.so.3   libmpfr.so.4   libmpc.so.3   libtiff.so.3   libwebp.so.5   libtool autoconf libmpfr.so.4   automake libmcrypt.so.4   libmpfr.so.4   libmpc.so.3   libselinux-devel
> yum install php73 --enablerepo=remi-php73,remi,epel --disablerepo=amzn-main
> yum install php73-php-fpm.x86_64 --enablerepo=remi-php73,remi,epel
> yum install php73-php-mysqlnd.x86_64 --enablerepo=remi-php73,remi,epel
> yum install php73-php-mbstring.x86_64
> yum install php73-php-xml

# PHP7.3を起動
> chkconfig php73-php-fpm on
> service php73-php-fpm start

3. 動作確認を行う

端末のhostsを書き換えるなどして、コピーしたEC2のwordpressをブラウザから開き動作確認を行います。

4. データ移行する(EC2にMySQLを入れている場合)

動作確認で問題がなくなれば正式にコピー先を使っていくことになります。

バージョンアップ中はオリジナルも稼働しており、 EC2にMySQLサーバを立てている場合はDB更新をコピー先に反映します。私はこの並行期間に特にコメントや投稿はなかったので、移行しませんでしたが(^^;
※RDSなどEC2とは別にDBを持っている場合は同じDBを使っていれば特に移行は不要です。

ちゃんとやるなら、データの整合性を取るためにオリジナルのEC2をインターネットからアクセス不可にしてデータ移行する必要がありますが、個人的のブログなど緩い場合はそこまでしなくてもよいかもしれませんが・・・

移行方法はWordpressのデータベースを丸っとオリジナルからダンプしてコピー先に入れなおせばよいかと思います。

5. DNSに登録しているIPをEC2(コピー)に変更する

DNSに登録しているIPアドレスをオリジナルからコピーに変更します。変更方法は利用しているDNSサービスなどにより変わるので割愛しますが、反映されるまでに数時間かかると思います。

6. DNSが完全に切り替わったらEC2(オリジナル)を停止する。スナップショットやAMIイメージも不要となるため削除

DNSが完全にコピーに切り替わったらEC2のオリジナルは不要となるため停止します。また、EC2をコピーする際に作られるAMIイメージやスナップショットもほっておくと課金されていくので削除します。

以上でEC2のPHPバージョンアップは完了となります。この後Wordpressの管理画面からwordpressのバージョンを3.3以降にアップデートできるようになります。

カテゴリーAWS

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です