【WordPress】画面が真っ白に・・ 「Warning: Cannot modify.. 」と表示される時はどう対処すればいい?

白鳥のモノクロ写真

Mechalog運営者、齊藤(@saito_sfc)です。

WordPressを使っていて画面が突然真っ白になってしまったこれをホワイトアウトというようですが、このような場合はどうしたらいいのでしょうか?

私は一度ホワイトアウトを経験しています。今回はその時の様子、そして対処法をシェアしたいと思います。

SPONSORED LINK

目次

  1. 画面が真っ白に・・
  2. 「WP_DEBUG」デバッグモード
  3. 「Warning: Cannot modify header information」と表示される場合
  4. 「やっと解決!」その原因は?
  5. まとめ

画面が真っ白に・・

ある日、当サイトの画面が真っ白になってしまいました。これは早いところなんとかせねばと。

ホワイトアウトになってしまった

この状況だと管理画面にログインすることができないので、ファイルを直接編集するためにFTPを使う必要があります。FTPソフトがあればこのような状況でもFTPサーバーにアクセスすることができるので原因を修正することができます。

自分のサイトがある日突然こうなってしまったら、対処法を知らないと誰もが焦ってしまうことでしょう。この時の私も早くせねばと結構焦っていたような気がします。

今までは「functions.php」を更新してホワイトアウトしてしまったことはありますが、今回は「functions.php」をいじっていません。

焦っていても始まらないので、まずは原因から突き止めてみることにしましょう。

「WP_DEBUG」デバッグモード

こんな時はデバッグモードの出番です。デバッグモードはソフトウェア開発の場でも使用されているものでその用途はバグ、エラーのチェックに使われます。WordPressはPHPでも作られているのでPHPのデバックモードを使用すればOKです。

WordPressでデバッグモードを使用するための記述は「wp-config.php」ファイル内にあります。デフォルトの「false」から →「 true」に変更です。

define('WP_DEBUG', false)

//このように変更 デバックモードが有効になる
define('WP_DEBUG', true)

変更したら保存してファイルをアップロードします。この状態でWordPress管理画面にアクセスすると原因が一覧表示されます。

ちなみに「Google Authenticator」で2段階認証を有効にしていて、デフォルトのログイン画面とURLが違う場合はデバックモードが表示されないみたいです。なのでデフォルトの管理画面のURLへアクセスします。

▼エラー内容が一覧表示される
WordPress エラー内容が表示される

「う~ん・・ 」

内容を見てもいまいち意味がわかりません。焦っているのでゆっくり調べるというモチベーションでもありませんし。

当サイトが利用しているレンタルサーバーのwpXとプラグインの相性が原因なのでしょうか。ちなみにこのプラグインはこの作業時より数時間前に更新しています。

ということで、プラグインしか考えられないのでそのプラグインを無効にしてみて様子を見る事に。

少し時間を置いてサイトを見たら無事表示されていました。おそらく原因はプラグインのアップデートによる不具合だったのでしょう。

「Warning: Cannot modify header information」と表示される場合

この話にはまだ続きがありました。

記事ページは無事表示されましたが、デバッグモードを無効にしようがWordPressのログイン画面で「Warning: Cannot modify header information」と表示されるのです。ログインした状態だともっと色々なエラー表示が出てきます。

pluggable.phpというファイル

まずは原因究明です。無効にしたのになぜか表示されているデバッグモードのエラー内容を見ると、ほとんどの行に「wp-includes/pluggable.php」というファイル名が書いてあります。

この「pluggable.php」とは一体?! ファイルの中身をパッと見てみましたがよくわかりません。

有効化されているプラグインのファイルの後に読み込まれる。プラグインによって書き換えられる事ができるというファイル。ざっくりこんな感じでしょうか。

原因はpluggable.phpファイルがプラグインにより書き換えられてしまったか。間違った操作をしてしまったかどちらかなのでしょうか。原因はまだ不明ですが、早速解決法を発見しました!

「php.ini」のoutput_bufferingの設定をOFFからONにすればいいようです。これであっさり解決するはず・・

【php.ini】

PHPのプログラムの全体の動きを設定するファイル

ですがwpXからは設定変更できないようです。「php.ini」にoutput_bufferingの項目がありません。とすると違う方法になります。

「やっと解決!」その原因は?

あっさり解決したかと思いきやそうはいかないようです。ここで一先ず作戦を練り直す必要があります。

コーヒーと木のスプーン

▼何を選ぶ?

1. 「php.ini」を直接編集する
2. WordPressファイルを入れなおす
3. 他に方法があるか調べる

とりあえず1番の方法が出来れば手っ取り早かったのですがwpXではやはり用意されている項目の中でしか変更できないようで。レンタルサーバーによっては直接編集できるものもあるようです。
2番は最後の手段という事で、3番の他の方法があるか調べてみる事にします。調べたら結構すぐに解決方法がわかりました。

wp-cofig.php - WordPress
wp-config.phpの編集 | WORD PRESS Codex日本語版

FTPサーバーでファイルを保存する時にUTFで保存しないようにとの事です。普段メモ帳で保存している設定がそのまま反映されたのか、筆者のFTPの使い方がなってなかったのかのどちらかでしょう。

デバッグモードで使用した「wp-config.php」を「UTF→ANSI」の形式で保存し直したら完全解決しました!

まとめ

久々のWordPress関連記事でした。さすがに今回は冷や汗もんでしたがとりあえず解決したのでホッとしました。おそらく.. 3、4時間はブログが真っ白の状態でした。

結局今回の根本的な原因は「プラグイン」と「FTPサーバーの保存方法」この二つです。デバッグモードにしなければもっと早く解決していたという結果に。

「Warning: Cannot modify header information」と表示されて困っている場合は「UTF→ANSI」に変更すれば直る事もあるかもしれません。


SPONSORED LINK

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

TwitterでMechalogをフォローしよう!



トップへ戻る