icon
Let's create! WordPressサイト制作とメンテ/エラー対応から、PHP/CSS/javascriptプログラミング、動画・音・イラスト等制作まで扱うコラム

【wordpressエラー】syntax error画面真っ白は、プラグインorサーバーのPHPバージョンが合わない(5.3より前のスコープ定義演算子)

更新: 2024/02/16 2025文字

【wordpressエラー原因】Parse error: syntax error画面真っ白は、プラグインorサーバーのPHPバージョンが合わない

今回はwordpressサイトでよくある『プラグインがParse error: syntax error吐き出して画面真っ白状態』にしてみて、原因を調べました。覚えておくと復旧するときに役に立つかもしれません。さっそくエラー真っ白画面にして原因を調べてみましょう。

エラーを起こしてみた状況(Parse error: syntax error)

さっそくやりました(笑)テスト用にインストールしてたサイトです。Parse error: syntax errorで、 原因は『PDFライトビューワー内のcontrollers/plugin.php・265行目』だということです。エラーメッセージをみてみると、『解決のために何をしらべればよいかわかる』ということが多いです(どうしようもないもの以外)。

なお、いつもは正しく表示されていましたが(該当のサイトはこのぶろぐの別フォルダにいれていたものです) 『sounds-stella.jp/インストールフォルダ/』ではなく、ロリポサーバーのドメインである 『sounds-stella.main.jp/インストールフォルダ/』 でアクセスしたところ、このエラーがでました。

エラーのチェック(プラグイン・サーバー設定など)

エラーが出た行を見てみよう

で、エラーメッセージがでたプラグインの構成ファイル『PDFライトビューワー内のcontrollers/plugin.php』 『$pdf_format_support = static::getPDFFormatSupport();』とかかれています。

独自ドメインでない環境だと、サーバーPHPバージョンがどうなっているか?

で、エラーがでた環境が『独自ドメインじゃなくて、sounds-stella.main.jp/インストールフォルダ/』というアクセスだったことから、サーバーの設定も確認してみました。独自ドメイン・サーバーに元からついてきたドメイン・サブドメインごとに、PHPバージョンを設定できます。

『sounds-stella.jp→モジュール版PHP5.6』 『sounds-stella.main.jp→CGI版PHP5.2』 となっています。これじゃねえかな原因(笑)

原因:PHP5.3より前バージョンだと、読めない書き方があった(static::みたいな、スコープ定義演算子)

で、エラーメッセを見て検索したら、原因がわかりました。海外の質問サイト(英語です)にも、Parse error: syntax errorを起こした人がいました。そのトピックの回答によると『static::○○みたいな書き方(スコープ定義演算子)は、PHP5.3以降じゃないと読めない』だそうです。

プラグインのエラー箇所にこの表記がされており、かつ『main.jpドメインのバージョンがCGI版PHP5.2』だったことから、5.3以降の書き方は読めなくてエラーを出してしまいました。これは、サーバー側でバージョンを上げることで対処できます。

あとがき・今回のエラー原因まとめ

  • main.jpドメインでアクセスしたら、wordpressでParse error: syntax errorが出た
  • エラーが出たプラグインの該当箇所にstatic::getPDFFormatSupport();
  • main.jpドメインのバージョンがCGI版PHP5.2
  • 該当箇所の書き方(スコープ定義演算子)はPHP5.3以降じゃないと読めない

今回のエラー実験をまとめるとこんなかたちになります。プラグイン・テーマ・コアのバージョンと、サーバー側PHPバージョンが合わなくてエラーというのは、結構発生してると思います。 エラーメッセが出て画面が真っ白になるとめちゃめちゃ焦りますが、メッセの該当箇所やサーバー設定、バージョンなどを確認していくと、復旧できると思いますので、落ち着いてみていきましょう。


【カテゴリ】- サイトエラー対策と復旧
【タグ】-

関連記事