AmazonLinux2で構築したWordPressのPHPバージョンアップ方法

WordPressアイキャッチ画像

AWSのEC2(AmazonLinux2)でWordPressをホストしているときにPHPのバージョンアップを行いました。少し癖があったので手順を記します。
既存のPHPを削除して新しいバージョンのPHPをインストールしただけではサイトに重大なエラーがありましたとなってしまいブログにアクセスできなくなったのでその回避策となります。

作業ミス時のバックアップのためにEBSのスナップショットを作成しておくことをお勧めします。

EC2でWordPressをホストすると簡単にバックアップ、切り戻しができるので非常におすすめです。容量追加、マシンパワーアップも数クリックで実現可能!当ブログもEC2でホストしています。

目次

現在のPHPを削除する

EC2インスタンスにSSH接続して以降の手順を進めます。セッションマネージャーなどでもOKですが、筆者はTeraTermを使いました。

現在のPHPバージョン確認

現在インストールされているPHPのバージョンを確認しましょう。

yum list installed | grep php

実行結果で7.3など古いバージョンが表示されればアップデートに進みます。

php.x86_64                            7.3.33-2.amzn2                 @amzn2extra-php7.3

現在入っているPHP削除

コマンドを実行してPHPと関連コンポーネントを削除します。

sudo yum remove php php-*

コマンド実行時質問されたらを入力します。

Installed size: 47 M
Is this ok [y/N]:

最新バージョンのPHPをインストールする

引き続きSSH接続で進めます。

yumの最新化

yumの最新化を行っていきます。既に最新の場合は不要です。

sudo yum update

途中質問されたらyで進めます。

Amazon Linux Extrasが入っているかの確認

Amazon Linux Extrasでリポジトリの切り替えを行う必要があります。そのためにAmazon Linux Extrasがインストールされているかの確認を行います。

which amazon-linux-extras

上記コマンドを実行してパスが表示されればwhich amazon-linux-extrasがインストールされています。表示されない場合はコマンドを実行してインスタンスしましょう。

sudo yum install amazon-linux-extras

AmazonLinuxで有効になっているリポジトリの確認

AmazonLinuxが参照しているリポジトリを確認します。

amazon-linux-extras | grep "php"

デフォルトではおそらく7.3など古いバージョンになっていることと思います。

 31 *php7.3=latest            enabled      \
  _  php7.4                   available    [ =stable ]
  _  php8.0                   available    [ =stable ]
  _  php8.1                   available    [ =stable ]

enableとなっているリポジトリが現在有効になっています。新しいバージョンのphpをインストールするにはこのリポジトリを変更する必要があります。

AmazonLinuxで有効になっているリポジトリの変更

コマンドを実行し、まずはphp7.3のリポジトリを無効にします。

sudo amazon-linux-extras disable "php7.3"

php7.3が無効になります。

 42  php7.4                   available    [ =stable ]
 51  php8.0                   available    [ =stable ]
 66  php8.1                   available    [ =stable ]

では現時点の最新バージョンphp8.1を有効化します。

sudo amazon-linux-extras enable "php8.1"

php8.1が有効になりました。コマンドを実行すると実行結果にコマンドが表示されます。

 66  php8.1=latest            enabled      [ =stable ]
 67  awscli1                  available    [ =stable ]
 
Now you can install:
 # yum clean metadata
 # yum install php-cli php-pdo php-fpm php-json php-mysqlnd

表示されたコマンドを実行

表示されたコマンドを実行します。このままでは権限でエラーになるのでsudoを付けます。

sudo yum clean metadata
sudo yum install php-cli php-pdo php-fpm php-json php-mysqlnd

質問されたらyで進めます。php8.1がインストールされます。

Installed:
  php-cli.x86_64 0:8.1.12-1.amzn2                 php-common.x86_64 0:8.1.12-1.amzn2
  php-fpm.x86_64 0:8.1.12-1.amzn2                 php-mysqlnd.x86_64 0:8.1.12-1.amzn2
  php-pdo.x86_64 0:8.1.12-1.amzn2
 
Complete!

インストールされたPHPバージョン確認

最後にphpのバージョン確認コマンドを実行してphp8.1になっていればOKです。

php -v

php8.1になっています。

PHP 8.1.12 (cli) (built: Oct 31 2022 22:06:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.12, Copyright (c) Zend Technologies

WordPressに必要なコンポーネントのインストール

このままではWordPressが使えない

phpのバージョンを上げました。反映するにはhttpdを再起動する必要があります。しかしここまでで再起動してしまうと
このサイトで重大なエラーが発生しましたというエラーになってしまいます。

WordPressにアクセスするとエラー画面になる

これは必要なコンポーネントが不足しているためです。次の章で必要なコンポーネントをインストールしていきます。

WordPressで必要なコンポーネントのインストール

以下のコマンドで必要なコンポーネントをインストールします。

sudo yum install -y php-xml
sudo yum install -y php-mbstring
sudo yum install -y php-gd

インストールが完了したらコマンドを実行してhttpdを再起動します。

sudo systemctl restart httpd

まだ重大なエラーになってしまう場合はEC2インスタンスを再起動すると解消されるかと思います。

PR
当ブログはWordPressテーマSWELLを使用しています。非常に使いやすく、簡単にプロのようなデザインを使えるのでお勧めです!!

SWELL – シンプル美と機能性両立を両立させた、圧巻のWordPressテーマ

ランキング

ランキングに参加しています。クリックして応援いただけると嬉しいです。
にほんブログ村 IT技術ブログ クラウドコンピューティングへ
にほんブログ村
AWSランキング
AWSランキング

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次