ワードプレスの管理画面を開こうとしたところ、「エラー: 予期しない出力により Cookies がブロックされました」というエラーが表示されました。管理画面にログインすることができない状態です。
今回は、下記の手順で解決することができました。
ブラウザの設定を確認
ブラウザでCookiesがブロックされていないか確認しました。わたしは、Google Chromeを使用しているのですが、cookieデータの保存と読み取りが許可されていました。また、他のブラウザでもログインできるか確認してみましたが、やはり同じエラーが出てログインできませんでした。というわけで、今回はどうやらブラウザの問題ではないようです。
プラグインの問題なども考えられますが、今回はプラグインの更新などは行なっていなかったので、次のステップとして・・・・
debug.logを出力してエラー内容を確認
いろいろ調べてみますと、debug.logを出力するためには、WordPressフォルダの直下にあるwp-config.phpファイルを編集する必要があるようです。さっそく、ftpソフト(わたしはffftp)を使って、このファイルをローカルPCにダウンロードしました。エディタで開くわけですが、Windowsのメモ帳では開かないほうが良いようです。通常、phpファイルを保存するときには、「UTF-8 BOM無し」という形式の文字コードにする必要があるためです。
さて、debug.logを出力するための準備としてwp-config.phpの80~90行目あたりにある
define('WP_DEBUG', false);
というコードを書き換える必要があるのですが、wp-config.php内のどこを探してもそのようなコードは見当たりません。レンタルサーバ(WebARENA)の標準機能として、レンタルサーバの管理画面からボタン一つでWordPressをインストールしたのですが、その場合、このようなことが生じるのかもしれません。恐らく、WordPressのサイトからダウンロードしたものを自分自身で設定したならば、このようなことにはならないのではないかと推測しています。
というわけで、wp-config.phpに下記のコードを追記いたしました。上述の通りレンタルサーバ固有の理由により、追記した箇所は、「WordPressデータベーステーブルの接頭辞に関する設定」をする箇所と「ローカル言語」について記されている箇所の間あたりです。70行目あたりになると思います。他のレンタルサーバやご自身でWordPressをインストールされた方には当てはまらないと思いますので、ご注意ください。
define('WP_DEBUG', true);
if (WP_DEBUG) {
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);
}
編集したwp-config.phpをアップロードする前に、オリジナルのwp-config.phpのバックアップを取ってからアップロードすることをお勧めします。何かあってもすぐに元に戻せるように。
さて、アップロードしてから再度WordPressの管理画面を開きますと、エラーの詳細な内容がdebug.logに出力されました。場所は、WordPressフォルダの直下にある/wp-content/というフォルダ内です。
ftpソフトを使ってdebug.logを見てみますと以下のような記述がありました。
output started at /blog/wp-content/themes/baskerville/functions.php:508
どうやらfunctions.phpの508行目あたりが怪しいということで次のステップとして、
functions.phpを確認
ftpソフトでfunctions.phpをローカルPCにダウンロードし、エディタで開いて508行目あたりを確認してみました。508行目はこのファイルの末尾にあたるところでした。よく見ると最後のコードの後に改行コードが2つ入っているようです。この空行を削除して上書き保存し、アップロードしたら無事にエラーが解消されました。
なぜ、functions.phpファイルの末尾に改行コードが入っていたのか原因はまだ分かっていませんが、ひとまずログインできるようになりましたので、備忘録として残させていただきました。