【wordpressエラー】syntax error画面真っ白は、プラグインorサーバーのPHPバージョンが合わない(5.3より前のスコープ定義演算子)
| 更新: 2024/02/16 | 2025文字
今回は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以降の書き方は読めなくてエラーを出してしまいました。これは、サーバー側でバージョンを上げることで対処できます。
『ソース:海外のq&aサイト stackoverflow』
https://stackoverflow.com/questions/4668557/parse-error-syntax-error-unexpected-t-static
『参考:PHPリファレンス・スコープ定義演算子(PHP 5.3.0 以降ではと書いています)』
http://www.php.net/manual/ja/language.oop5.paamayim-nekudotayim.php
あとがき・今回のエラー原因まとめ
- main.jpドメインでアクセスしたら、wordpressでParse error: syntax errorが出た
- エラーが出たプラグインの該当箇所にstatic::getPDFFormatSupport();
- main.jpドメインのバージョンがCGI版PHP5.2
- 該当箇所の書き方(スコープ定義演算子)はPHP5.3以降じゃないと読めない
今回のエラー実験をまとめるとこんなかたちになります。プラグイン・テーマ・コアのバージョンと、サーバー側PHPバージョンが合わなくてエラーというのは、結構発生してると思います。 エラーメッセが出て画面が真っ白になるとめちゃめちゃ焦りますが、メッセの該当箇所やサーバー設定、バージョンなどを確認していくと、復旧できると思いますので、落ち着いてみていきましょう。
【カテゴリ】- サイトエラー対策と復旧
【タグ】- PHP