真っ白になった時の解決方法
WordPressを利用しているときに、真っ白になり「ページが表示しません」や「応答がありません」などが、ブラウザに表示されるようになった場合の解決手順を示します。
※注意 以下の手順で必ず解決するわけではありませんが、原因を特定しやすくなるはずです。WordPressのトラブル解決をしてくれるサービスなどに調査を依頼する前に試して見てください。 なお、toiee Lab は、個別具体的なテクニカルサポートは提供していません。
エラーの原因とは?
エラーが起こる原因は、様々考えられます。主に以下の中から、原因を特定することが必要です。
- 利用しているテーマにエラーがある
- 利用しているプラグインがエラーしている
- WordPress自体にエラーがある
- レンタルサーバー上の問題(メモリ、ディスク、アクセス負荷など)
- ネットワーク上の問題(DNS、通信エラー)
- エラーを特定する方法は、変化した場所を中心に探すことです。
変更を元に戻す
まず、エラーが起こる前の状態に戻すのが一番です。なんらかの変更を行ってエラーが発生したのであれば、元に戻すことで、正常な状態になるはずです。まずは、この作業を行います。
元に戻した結果、それでもエラーが起こっているとなれば、「別の原因」を考えることもできます。
エラー情報を表示する
エラーの原因を特定するには、情報が必要です。WordPressでは「エラー情報を表示するモード」にすることができます。これをデバッグモードといいます。
デバッグモードを有効にするには、以下のように WP_DEBUG
をtrue
とします。
レンタルサーバーによっては、PHPのエラーを表示させない設定がされていることがあります(ロリポップなど)。この場合、デバッグモードにしても、エラーが表示できないことがあります。
レンタルサーバーのPHP設定で、以下のような設定を行ってください。
エラー情報を使って検索する
エラーが表示されるようになれば、表示されたエラーメッセージを検索にかけたりすることで、エラー原因や、解決策を探すことができます。
よくあるエラー
PHPのバージョンアップによるエラー
PHPのバージョンを7.1にすると、古いPHPプログラムが動かなくなります。例えば、以下のようなエラーメッセージは、プログラムそのものが間違っている時に表示されます。
Parse error: syntax error, unexpected ‘new’ (T_NEW) …
Parse error: syntax error, unexpected ‘&’ in …
どちらも、ソースコードを修正することで解決します。
参考 : 下位互換性のない変更点
主に
- strip 関数 を preg_split や explode で置き換える
- ereg関数 を preg_match などに置き換える
- クラス定義でコンストラクタを、 __costructorメソッドを使う
- オブジェクト作成時に参照渡し (&を使う) しない
- 関数の実引数の時に、参照渡し(&を使う) しない
で解決します。
MySQL バージョンアップに伴うもの
MySQLのバージョンを5.6にアップすると「パスワード」の方式が変わるため、これまで接続できていたWordPressが「データベース接続エラー」を起こすことがあります。(MySQL4 から 5.1でも同様です)。
この場合、シンプルに「データベースユーザーのパスワードを再設定する」だけで解決します。同じパスワードをレンタルサーバーの管理画面などで、設定すれば解決します。
SEO系プラグインで、.htaccess がおかしくなっている場合
SEO系プラグインを使うと、.htaccess に様々な情報を追記することがあります。この情報が間違っていて、無限ループになったり、エラーを発生させていることがあります。
この場合、.htaccess の内容を削除した上で、「設定 > パーマリンク設定」などを行なって、初期状態に戻してください。