【ロリポップ】PHP5.6(CGI版)からPHP7.1(CGI版)にバージョンアップしました

WordPress(ワードプレス)のダッシュボードを開いたところ、突然ウィンドウが現れ「PHPの更新が必要です」と警告あり。サイトが安全ではないバージョンのPHPを実行していることを検出しました・・・と。

 

 

当ブログは、ロリポップ(lolipop)のレンタルサーバーを借りて、ブログ用CMSとしていまや世界で活用されているワードプレス(WordPress)を使って作成しております。

 

ワードプレスは、「PHP(プログラム言語)とMySQL(データベース)」で構成されていますが、
PHP のバージョン設定は、レンタルサーバー会社のサーバー側で行います。

 

セキュリティホールやバグなどによる問題で、WordPress 本体やテーマ、プラグインのバージョンは常に最新であることは言うまでもありませんが、併せてPHPも最新バージョンでなければなりません。PHP のアップデートは、 WordPress サイトの安全性に繋がることでもあるので非常に大事です。

 

実は約1年前、2018年6月 PHP5.4からPHP5.6にバージョンアップしました。
当時 PHP7.1へのバージョンアップは可能でしたが、PHPは開発を優先しているので、ワードプレスのテーマやプラグインとの互換性はあまり考えられていません。

なので、いきなり最新のバージョンに更新した場合、画面が真っ白くなったり、サイト構成が変わったり、管理画面(ダッシュボード)がまったく違うものになったりすることもあるので、 最新バージョンにするのは躊躇する訳であります。

そのうちテーマやプラグイン側が最新バージョンに対応するだろうということを前提に、時間を置きながら段階的にバージョンアップをしていたため、セキュリティ上問題ありと思いつつもずっとPHP5系で使っていました。

 

しかしながら、PHP5系は2年以上前にサポート終了のため、使い続けることは問題ではあります。PHP7系は、5系と比べてパーフォーマンスも良く、最新セキュリティ対応もバッチリなので、今回の警告を機に思い切ってバージョンアップすることにした次第です。

2019年7月現在、WordPressサイト全体で43.6%がPHP5系を利用しており、PHP7系の利用者は56.4%です。互換性も問題からかPHP5系の利用者も半分近くいますね。

 

PHP7.1へのバージョンアップにあたり、「CGI版」か「モジュール版」のいずれかを選択する必要があります。

パーフォーマンスから言えば後者(モジュール版)が有利ですが、共用サーバーの場合はセキュリティ面ではCGI版の方が有利だし、各ユーザーのプロセスの負荷を計測しやすい(過大な負荷をかけているユーザーを発見しやすい)という理由で、レンタルサーバーの多くは前者(CGI版)を採用しているようです。

スピードも体感的にはそれほど違いはないという事例も多くあるので、最終的にPHP7.1(CGI版)にバージョンアップすることにしました。
PHP最新バージョンは7.3ですが、「ロリポップ」のレンタルサーバーの場合、PHP7.1が最新です。

 

PHPバージョンアップの手順は以下の通り。

1. 現テーマやプラグイン、データベースなどをバックアップ(ロリポップでオプション契約済)

2. PHP7.1へのバージョンアップにあたり、現在のテーマやプラグインの互換性があるか否かをプラグイン「PHP Compatibility Checker」でチェック。

3. 互換性に問題なければ、「ロリポップ」管理画面より、PHP7.1(CGI版)にバージョンアップ。

万一、手順を踏んでVer 7.1で問題が生じた場合、元のVer 5.6に戻せます。
しかし、PHP5.6未満のバージョンの利用者は、元のバージョンに戻すことは出来ません。

 

早速、バックアップの後、プラグインで互換性をチェック
※「すべてのプラグインとテーマ」に指定してスキャンをかけていたのですが、時間がかかりそうだったので、途中「有効中のプラグインとテーマのみスキャン」と変更したため、「サイトを再スキャン」となりました。

 

5~6分でスキャン完了、すべて「互換性あり」と結果がでました。

 

PHP7.1にバージョンアップ
モジュール版にバージョンアップする場合は、データベースのパスワード形式の変更とプログラムの記述の変更が必要です。

 

バージョンアップの後、当ブログをいろいろチェックしましたが、全く問題ありませんでした。WordPress(Ver5.2.2)とあわせすべて最新Verになりほっとしています。

コメントを残す

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