Quantcast
Channel: QWERTY.WORK
Viewing all articles
Browse latest Browse all 394

PHPのバージョンを5系から7系に変更したらWordPressのページが500エラーになる

$
0
0

PHPをバージョンアップしたら500エラーが出る

WordPressで公開しているサイトのレンタルサーバーのPHPを7.系にするとエラーになりました。現時点でレンタルサーバーはMixhostを使っており、コントロールパネルでPHP5.6からPHP7.0→7.1→7.2→7.3と順に設定を変えてみました。バージョン7系はどれもWordpressの公開ページにアクセスすると以下のような画面になってしまいました。

サイトに重大なエラーがありました。詳細については、サイトの管理者のメール受信ボックスを確認してください。
WordPressでのデバッグをさらに詳しく見る。

PHP7系のバージョンによっては以下のエラーページが表示されました。

サイトに重大なエラーがありました。
WordPressでのデバッグをさらに詳しく見る。

放置していたこの問題を本気で対処することに

以前からこの問題はあったのですが面倒くさくて原因を探らず、ずっとPHP5.6のまま使っていました。WordPressのバージョンアップとかで『そのうち自然に解消するだろう』と思っていましたが、まったく解消の気配がなく、WordPressのダッシュボードにも『PHPの更新が必要です』と注意表示が出ていたので、『そろそろ本腰入れて対処するか』と解決方法を探ることにしました。

プラグイン『PHP Compatibility Checker』で互換性を調べてみる

テーマがPHP7に対応していないのかな?とインストール済みのプラグインとテーマのPHPの互換性を調べてくれるプラグイン『PHP Compatibility Checker』で、スキャンしてみました。すると現在使用している『Basic』というテーマで以下の警告が出ました。

21 | WARNING | Function create_function() is deprecated since PHP 7.2; Use an anonymous function instead
21 | 警告| 関数create_function()はPHP 7.2以降廃止されました。 代わりに匿名関数を使用してください

テーマを更新してして、PHP7.0→7.1→7.2→7.3と各バージョンを試しましたが、結局状況は変わりませんでした。テーマ以外に別に問題があるのかな?と今度はプラグインを疑いました。

エラーの原因はプラグイン『Exec-PHP』だった

以下のメールがサーバーから届いていました。

WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。

今回の場合、WordPress がプラグイン Exec-PHP でエラーを捉えました。

まずはじめに、ご自分のサイト (https://sample.com) を開き、目に見える問題がないか確認してください。次に、エラーが発生したページ (https://sample.com/wp/wp-admin/index.php) を開き、同様に問題がないか確認してください。

この問題をさらに調査するにはサーバーホストに連絡してみてください。

もしサイトが壊れていてダッシュボードに正常に接続できない場合、WordPress には特別な『リカバリーモード』があります。これによりダッシュボードに安全にログインし、さらに調査をすることができます。

https://sample.com/wp/wp-login.php?action=enter_recovery_mode&rm_token=L**M0yRRK1L*yzS5*Qj*Gw&rm_key=iwaXrgB*RNDhO**tnm*Iwi

サイトを安全に保つため、このリンクは 1日 で有効期限が切れます。ですが、心配なく。有効期限後にこのエラーが再度発生すれば新しいリンクをお送りします。

この問題を解決しようとする際、以下の情報を聞かれるかもしれません。
WordPress バーション5.3.2
現在のテーマ: Basic (バージョン 1.3.10)
現在のプラグイン: Exec-PHP (バージョン 4.9)
PHP バージョン7.3.11

エラー詳細
===============
エラータイプ E_PARSE が /home/abcdefg/public_html/sample.com/wp/wp-content/plugins/exec-php/exec-php.php ファイルの 22 行目で発生しました。 エラーメッセージ: syntax error, unexpected 'new' (T_NEW)

WordPressのテーマや記事内でPHPのコードを使用できるようにするプラグイン『Exec-PHP』がPHP7系に対応していませんでした。これに関する検索をしてみたら、プラグインが『PHP7に対応していない』とか『危険』『セキュリティ上問題あり』とかのページがぼろぼろ出てきました。


Viewing all articles
Browse latest Browse all 394

Trending Articles