PHP のバージョンアップ手順 【Linux】

programming Linux

Linux で PHP のバージョンアップをする手順についてまとめておきます。

構成:レンタルサーバ(ConoHa VPS)、CentOS 8.0、Apache、MySQL 8、PHP、WordPress 5.5 以降

背景

レンタルサーバー(ConoHa VPS)を契約し、WordPress のサイトの設定をしています。
サーバーの CentOS 8.0 で WordPress 5.5 以降のインストールまで完了しました。
ところが、WordPress 上でパーマリンクの設定を変更(「基本」→「投稿名」)したところ、サイトがうまく動かなくなりました。

試行錯誤で PHP のバージョンを最新版(7.4 以降)に更新し、いくつか設定をしたところ、サイトが動くようになりました。そこで PHP の更新手順についてまとめ、公開しておくことにします。

PHP をバージョンアップする手順

まず、サーバーのコンソール上で、PHP のバージョンを確認しておきます。
# php -v
ここで、PHP のバージョンが 7.4 より古い場合は、バージョンアップを検討しましょう。

EPEL リポジトリ、Remi リポジトリが必要になるので、インストールします。
# dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

PHP をいったん停止します。
# dnf module disable php

PHP 7.4 のインストール(最新版が出てきたら修正してください)
# dnf module install php:remi-7.4

php-fpm の設定
# systemctl enable php-fpm
# systemctl restart httpd
# php -v
バージョンが 7.4 (以降)に更新されていたら、OK です。

PHP のバージョン ~ 盲点だったポイント

CentOS 8 は、2019 年以降リリースされています。そこで、CentOS 8 を設定さえすれば、インストールされているパッケージも一通り、最新版か最新版と同等になるものかと思っていました。また、まっさらな OS なので、変更はできるだけ避けたい心理になりやすいです。(← これが間違い。)
ところが、ネットにある標準的なインストール作業をしただけでは、PHP が最新版とはならないケースがあるようです。意図的に最新バージョン/動作確認が取れているバージョンを設定する必要があります。

PHP 7.4 は、旧 PHP 7.2 とは仕様が大きく変更になっており、旧 PHP 7.2 のままでは、他の最新パッケージ(WordPress 5.5 以降など)との組み合わせでは動作しないケースが生じているようです。

加えて、VPS サーバで WordPress を自力でインストールするとき、データベースとしては MariaDB をインストールするよう推奨する事例・サイトがあります。しかし、MariaDB にしても、MySQL にしても、CentOS 7 以前の記事が多く、CentOS 8 以降で動作確認された事例がなかなか見つかりません。

そこで私の場合は、MariaDB については、CentOS 8 以降と PHP 7.4 以降の最新バージョンの組み合わせで動作確認ができたという事例(サイト)が見つからないためアンインストールすることとし、WordPress が動いているという事例(サイト)が見つかっている MySQL 8 をデータベースとして使うことにしました。

まとめ

PHP を PHP 7.4 (以降)に更新する手順をまとめました。
ネット検索すると古いサイトが多数ヒットし、CentOS 8 以降、PHP 7.4、MySQL 8.0、WordPress 5.5 以降など、最新のバージョンの組み合わせでは、サイトの記載どおりに設定しても動かないものが多いようです。

私は CentOS 系の Linux を使っていますが、他の Ubuntu 等でも同様の現象が起きているのではないかと推測します。
似たような状況に陥っている場合は、参照しているサイトの日付がここ数年以内であることを確認し、動作確認の取れているバージョンの組み合わせで設定を行うことをお勧めします。

関連記事
・ LAMP のバージョン確認コマンド 【Linux】
・ レンタルサーバーに WordPress をインストールする流れ 【Linux】

タイトルとURLをコピーしました