こんにちは、コーダーのchaです。
自社運営のすべてのアフィリエイトサイトのphpバージョンを、2017年のうちにphp7に対応させるというミッションがありまして、
ワードプレスでサイト運営をされている方はきっと経験があるかもしれませんが、
何も考えずそのままPHPバージョンだけをアップデートすると大体の確率でサイトが吹っ飛びます。
そうなってしまった時、簡単に原因を追究して解決する方法をまとめました。
そもそもPHP5からPHP7にするとどういいのか?
ご存知の方も多いと思いますが、PHP7は、PHP5に比べて処理速度が早く、サイトの表示速度にも体感でわかるほどの差があります。
実際にPHPバージョンを更新する前にやるべきこと
PHPバージョンをアップさせる前に、ワードプレスのバージョンは最新にしておいたほうがいいです。
そのあと、サーバーの管理画面で、PHPのバージョンをPHP7にしましょう。今回、私がやった1つのサイトは、もともとPHP5.3.3だったので、そこからPHP7.1.2へと更新しました。
PHPバージョンを更新したら、ブラウザ上でF5などを押してホームページを再度読み込み、更新します。
すると、大体画面が吹っ飛びます。
syntax error (シンタックスエラー)つまり、プログラム上の構文の誤りですね。
PHPをバージョンアップしてsyntax error (シンタックスエラー)が出る場合十中八九プラグインが原因
上記のsyntax error (シンタックスエラー)を読むと、プラグインの「exec-php」でエラーが発生していることを表示しているので、このプラグインを無効化すると、エラーが無くなる可能性が高いわけです。
それでは、エラーのままサイトを置いておくわけにはいかないですし、そもそもこの状態だとワードプレス管理画面に入ることもできないので、せっかくPHP7.1.2にしましたが、もう一度元の5.3.3に戻します。
そうすると、また正しく表示されます。
そして、ワードプレス管理画面に入って、該当するプラグイン(今回の場合「exec-php」)を無効化します。
そのあとphp7にして、syntax error (シンタックスエラー)が出るか確認します。
この繰り返しで、PHP7の場合、どこのプラグインの構文上エラーが生じているのかを特定していきます。
もしそのプラグインを使う必要がそもそも無くなった場合は、プラグインを無効化&削除で、php7.1.2でそのまま快適にサイト運用が可能になります。
もし、そのプラグインが必要だけど、久しく更新されていないためにPHP7に対応していない場合は、似た機能の別のプラグインを探してくるか、自分でfunctions.phpに書き込んだりするかしかないわけです。
今回は、プラグインを無効化するだけで解決できました!
あと、今回わかったのは、Exec-PHP、StatPress Reloaded、Tweetilyのプラグインは2017年12月現在、PHP7に非対応でした。