PHPのアップデート

WordPressのダッシュボードにPHPのアップデートを促すメッセージが出てたので、PHP7.2からPHP7.4へアップデートした際の備忘録です。

◆バージョン確認

・OSのバージョン
・PHPのバージョン
・インストール済みのPHPパッケージ

◆バックアップ

必要により、バックアップをします。
不具合発生時に備えて一応バックアップしました。

・PHPの設定ファイル等

1行目:任意のディレクトリにバックアップ用のディレクトリを作成
2行目:PHPの設定ファイルがあるディレクトリへ移動
3行目:必要なPHP関連ファイル等(今回は「php*」ですべて)をアーカイブ圧縮ファイルにする

・PHPモジュールリスト

1行目:「php -m」コマンドでモジュールリストを出力し、バックアップディレクトリに「php72m.txt」というファイル名に書き出し
2行目:ファイルの確認

アップデート後にリストを比較するために利用します。

・WordPress

WordPressのデータについてもバックアップしました。
今回は、WordPressデフォルト機能のエクスポートを使用しました。
バックアップツールについては、各種プラグイン等も多々あるので必要に応じて実施します。

◆リポジトリの追加・確認

PHPのアップデートには、「EPEL」および「REMI」リポジトリが必要です。
追加されているか確認し、なければ追加します。
私の場合、既に追加済みでしたので下記のとおり確認できました。

・EPELの確認
・REMIの確認
・yumによるリポジトリの確認

有効なリポジトリ(「enable=1」の状態)一覧

「all」を付けることで、登録されているリポジトリすべてを表示

・リポジトリの追加

◆PHPのアップデート

REMIリポジトリのブログによると、必要なPHPのバージョンにより管理者が有効化する必要があるようで、今回PHPのバージョンを最新の7.4にアップデートするため「remi-php74」リポジトリを有効化します。

・「remi-php74」リポジトリの有効化

1行目:永続的に「remi-php74」リポジトリを有効化する
「yum-config-manager」が利用できない場合は、REMIリポジトリのブログにあるように「yum-utils」をインストールする必要があります。

・アップデート

1行目:アップデートを実行する

私の場合、アップデートの際いくつかのパッケージで複数のバージョンがインストールされていてエラーとなりました。
その際の対処方法はまた、後日書きたいと思います。yum updateのエラー対処

◆確認

・PHPのバージョン
・PHPパッケージ

1行目:最初とは違う方法で確認

・PHP設定ファイル等

「php.ini」ファイルについては、ファイル自体(タイムスタンプ)に更新はありません

1,5行目:「diff」コマンドで比較し、追加と削除がそれぞれされているのを確認

・PHPモジュール

1行目:最初と同様にモジュールリストを別名でファイルに書き出す

1行目:「diff」コマンドでファイルの内容を比較し、上記で比較したファイルと同名のものが追加と削除されているのを確認

「WDDX」モジュールについては、PHPのマニュアルを見ると、PHP7.4には、非推奨とされバンドルされていないようです。

追加された「Sodium」モジュールについては、PHP7.2からの新機能で暗号ライブラリのようです。詳細は、PHPのマニュアルを参照

・httpdサービス

1行目:「httpd」サービスをリロード

最後にブラウザで当ブログを確認してみました。

が、表示が崩れて全部が表示されず、「重大なエラーが発生しました」の文字が出ていました。
WordPressの管理画面には異状なくログインできましたので、致命的なエラーではないようです。
エラー時の対処要領については、また別の記事で書きたいと思います。
WordPressでPHPアップデート後にエラー

結果的に原因は、インストールしているプラグイン「Crayon Syntax Highlighter」にありました。
更新も5年前からされてはいなかったのですが、便利なので利用し続けていました。
調べてみると、PHP7.4では利用不可となっていましたので、プラグインを無効化にしてみると正常に表示されるようになりました。

ソースコードの表示などに利用するプラグインも新規に「SyntaxHighlighter Evolved」をインストールし、この記事を書いています。
今まで書いていたコマンド等を載せている記事では、ハイライトされず見づらくなったかもしれません…

記事は長くなりましたが、アップデートするだけならそんなに難しくないかと思います。

いいね! & シェア お願いします。

コメントは受け付けていません。