先日レンタルサーバーをエックスサーバーからMixHostに移行しました。
管理もしやすく、快適で非常に気に入っております。
ただMixHostに移行後、謎の症状に見舞われるようになりました。
無事解決できたのですが、ちょっと思いがけぬ原因だったのでメモに残しておきます。
同じ症状に見舞われる方は少ないかもしれませんが、もしいらっしゃったら何かの参考になれば… 。
症状:記事を投稿(or 更新)すると 「このページは動作していません HTTP ERROR 500」と表示される…のに、ちゃんと更新できている
ちょこっとした修正をするときに、その現象に気がつきました。
更新ボタンをクリックすると、エラーが表示されるんです。
「このページは動作していません」
などと表示されてるものですから、てっきり更新されてないんだと思いますよね?
ところがこれが謎なんですけど、なぜか更新はちゃんと反映されていたんです。
最初はCopyright Proofというプラグインを導入したせいかと思っていました。
Copyright Proofと言うのは著作権保護用のプラグインなのですが、このプラグインを導入すると投稿・更新ボタンが「投稿 & Digiprove」と表示されるようになります。
この「& Digiprove」というのが問題なのかなと思っていたのですが、なぜかCopyright Proofを停止しても、やっぱりエラーが出る。
500エラーの原因3つ、今回はプラグインから検証してみる
WordPressを使っていて500エラーに遭遇することは、残念なことに結構多いです。
だいたい原因は3つに分かれていて、
- PHPファイルの内容に問題がある
- 「.htaccess 」の内容に問題がある
- プラグインやテーマ、 WordPress本体の更新に問題がある
大体がこの3つですね。
引っ越しを機にfunctions.phpだのwp-config.phpだの、いろいろとPHPファイルをいじったので、最初それかと思いました。
PHPファイルなんて、どこかに全角が入ってるだけで文字通り真っ白になって身動き取れなくなりますからね汗
ただその割には管理画面やブログ自体は真っ白にならず、無事に動いている。
そこでまず今回は、プラグインを疑ってみることにしました。
移行前とPHPのバージョンが違ってた
実はエックスサーバーでは諸般の事情により、 PHPのバージョンを5.x系で運用してました。
ところがMixHostに移行したら、自動的にPHP 7.0が適用されたんですね。
なにしろPHP 7. x系の方が、ずっと速いみたいですから。
もちろんMixHostでもPHP 5.x系を使うことができます。
ただせっかく新しい環境に来たんだし、もう古いバージョンのPHPを使う必要も現在はないため、このままPHP 7.0で運用することに決めました。
そうなってくると今回の問題で疑いが出てくるのが、プラグインやテーマがPHP 7.x系に対応してないこと。
テーマは引っ越しを機にLuxeritasに変更しましたが、このテーマの完成度と更新頻度の高さを考えるとテーマがPHP 7.x系に対応してないということはちょっと考えられない。
となるとプラグインを一つ一つ切って確かめるのか…とちょっとうんざりしました(;´∀`)
でもありがたいことにそんな必要はなく、一発でプラグインの互換性を検証してくれる素晴らしいものがありましたので、今回はそれを使用しました。
PHP Compatibility Checker でプラグインとPHPの互換性チェック
PHP Compatibility Checker と言うプラグインを使います。
WordPressのプラグインインストール画面から検索して導入できます。
使い方はインストールして、ツールからPHP Compatibilityを選び、ボタンを押すだけ。
そしたらありました。
Smart Update Pingerというプラグインが、互換性で警告が出ています。
Smart Update Pingerは、更新時にPingを乱打しないようコントロールしてくれるプラグイン。
これをLuxeritasの作者様も推奨されてるWordPress Ping Optimizerに変更しました。
するとたったこれだけのことで、500エラーが解消されて、無事に投稿・更新ができるようになったんです。
ほんとあっけないくらい。
WordPressは時に、思いがけない理由で真っ白になる
WordPressって、いきなりエラー起こすことがあるんですよね〜。
今回のプラグインの互換性による500エラーというのは今までにないパターンなので、勉強になりました。
意外とPHPのバージョンが違うことによる問題というのは多そうなので、これからもちょっと注意して様子を見ていきたいと思います。
コメント