Amimoto AMI (HVM/PVM) で、最新版 PHP への更新方法

本稿は sunset された AMI 向けの内容となっており、最新版の AMI には対応しておりません。

最新版の Amazon Machine Images for WordPress を使ったセルフホスティングでは、PHPのデフォルトのバージョンが 7.2 となっています。
本ドキュメントは古いAmimoto AMI をご利用されている方や PHP のバージョンを 5.6 などへ変更した後に 7.2 へ変更を行いたい方向けのものとなります。
 

対象 AMI:

 

注意点

実行するコマンドを以下に紹介しますが、行頭の $ や # を入力する必要はありません。

実行前にインスタンスのバックアップ (スナップショット) を必ず行ってください。スナップショットをとることで、トラブルがあった場合に復元が可能です。

スナップショットの取得と復元方法は、スナップショットの作成と、スナップショットからのリストア をご参照ください。
スナップショットの取得を自動化する場合は、スナップショットの自動作成方法 をご参照ください。

 

手順

(A) インスタンスの新規ローンチ時に PHP7.2 へアップデートする手順
(B) 既存のインスタンスの PHP を 7.2 へアップデートする方法

(A) インスタンスの新規ローンチ時に PHP7.2 へアップデートする手順

新規で Amimoto AMI を起動すると PHP 7.2 の最新バージョンがインストールされます。起動後に旧インスタンスからエクスポートしたデータのインポートなどを行ってください。
 

(B) 既存のインスタンスの PHP を PHP7 へアップデートする手順

注意 実行前に AWS コンソールなどでスナップショットを取得してください。

  1. Amimoto AMI の構成ファイルのバージョンを確認し、必要な場合は変更します。
  2. 変更後の chef レシピを使って PHP 7.2 へアップデートを行います。

 

1. Amimoto AMI の構成ファイルのバージョンを確認し、必要な場合は変更します

サーバへ SSH 接続をした後、以下のコマンドを実行してください。

実行後に master や * 2016.01 と表示されている部分が Amimoto AMIの構成ファイルのバージョンです。

$ git -C /opt/local/chef-repo/cookbooks/amimoto/ branch
* master

構成ファイルのバージョンが 2016.01 と表示されている場合

$ git -C /opt/local/chef-repo/cookbooks/amimoto/ branch
* 2016.01

上のようにコマンドを実行して  2016.01の前に * が表示された場合は、以下の手順でアップデートを行ってください。

$ curl -L -s https://raw.githubusercontent.com/amimoto-ami/amimoto-update/master/amimoto_update.2016.01.sh | sudo bash

設定を変更を反映するため、 reboot コマンドでインスタンスを再起動してください。

$ sudo reboot

 構成ファイルのバージョンが 2016.01以外 (master など) と表示された場合、またはエラーとなった場合

以下のコマンドを実行することで、最新版の Amimoto AMI と同様の環境になります。
 なお、途中で現在インストールされている PHP や MySQL パッケージの削除が実行されますので、不安な場合は、新しい Amimoto AMI でインスタンスを作成してデータ移行していただくようお願い致します。

$ curl -L -s https://raw.githubusercontent.com/amimoto-ami/amimoto-update/master/amimoto_update.sh | sudo bash

設定を変更を反映するため、 reboot コマンドでインスタンスを再起動してください。

$ sudo reboot

 
2. 変更後の Amimoto AMI の構成ファイルを使って、 PHP 7.2 へアップデートを行います

再起動が完了したら、サーバへ SSH 接続後に以下のコマンドを1行ずつ実行して PHP 7.2 を有効化してください。

$ ssh -i PATH-TO-KEY-FILE.pem ec2-user@IP-ADDRESS-OF-YOUR-INSTANCE
$ sudo su -

# yum update -y
# cd /opt/local/chef-repo/cookbooks/amimoto
# git pull origin 2016.01
# cd /opt/local
# echo '{"phpfpm":{"enabled": true, "version":"72"}}' > /tmp/php-fpm-72.json
# hash jq || yum install -y jq
# jq -s '.[1] * .[0]' /tmp/php-fpm-72.json /opt/local/amimoto.json > /tmp/amimoto.json
# mv -f /tmp/amimoto.json /opt/local/amimoto.json
# /opt/local/provision
# service monit stop
# service nginx restart
# service php-fpm restart
# service monit start
# exit

$ exit


変更作業は以上です。

その後、<?php phpinfo(); ?>  などを記述したファイルを /var/www/vhosts/YOUR-DOMAIN/phpinfo.php と設置してブラウザからアクセスし、変更内容が正しく反映されたかを確認してください