WordPressのサーバー引っ越しをしている時に、

「syntax error, unexpected ‘new'(T_NEW)」というメッセージが出て

サイトがまったく表示されないという問題に遭遇しました。

 

メッセージを読んだら、すぐに何が起きているのかわかったのですが、

あなたはこれの意味わかりますか?

そして、どう対処すればいいのか、わかりますか?

syntax errorというメッセージ

まず、私が遭遇したエラーを紹介しておきましょう。

エラー画面を見てもらった方が早いですね。

syntax_errorが出現した画面

 

エラーの対処方法を説明する前に、

メッセージの読み方、理解の仕方について説明しておきますね。

 

このエラーメッセージからわかることは、PHPの文法が間違っていて(記述ミス)、

DB Cache Reloadedプラグインで問題が起きているということです。

これは、PHPのバージョン違いが原因だと推測できました。

 

どうして問題の箇所まで特定できるのかと言うと、エラーメッセージが読めるからです。

原因を特定するために拾った4つのキーワードと

その読み方を上の画像に赤字で書いています。

 

エラーメッセージの中のキーワードの拾い方とその意味を知れば、

エラーを特定できるようになります。

PHPのバージョン違いだと判断した理由

しかし、この内容だけではPHPのバージョン違いだと断定することはできません。

これは、このエラーが発生したときの作業内容と併せて判断しています。

 

このエラーが起きたのは、WordPressの引っ越し作業中です。

つまり、PHPファイルを編集していたわけではないということです。

ここがポイント。

 

PHPファイルを編集していないのに、なぜPHPファイルでエラーが出るようになったのか?

これは、PHPの記述ルールが変わったからとしか考えられないんです。

この辺りは、プログラム経験のある人でしかわからないかもしれません。

とらきちとらきち

逆に言えば、プログラマーならすぐにわかるということ!!

 

そして、PHPの記述ルールが変わるとしたら、

バージョンアップくらいしかないだろうと推測できるのです。

実際、このDB Cache ReloadedのPHP対応バージョンを調べてみると

やはりPHP7.0に対応していないということがわかりました。

 

ここで原因が完全に特定できました。

【広告】

エラーの対処方法と教訓

PHP7.0に対応していない以上は、このプラグインを削除するしかありません。

自分でプラグインのファイルを修正してもいいのですが、

挙動がどうなるか保証できませんので、止めておいた方が無難でしょう。

PHP7.0に対応するまでプラグインは使えないと判断しました。

 

実は、

引っ越し前のサーバーではPHP5.3を使っていて、

引っ越し後のサーバーではPHP7.0を使っていました。

 

このPHPバージョンの違いをまったく考えていなかったために

起きてしまった問題だと言えます。

 

このことからPHPのバージョンを上げる時は、やはり何らかの不具合が起きる可能性を

考えておくべきだということをあらためて感じました。

特にプラグインは対応バージョンにばらつきがありますから、

そのあたりは頭に入れておかないといけません。

 

環境を何かしら変更するときは、前の状態に戻せるようにしておいてから

変更に取り掛かるべきだなと思いました。

【広告】