ぼやき

8

ローカルの WordPress を 3.9 にしてから、記事を更新してからページ遷移しなくなりました。原因は簡単なことだったのですが、いろいろ大変だったのでメモとして残しておきます。

MAMP のアップデート

サーバー上の WordPress は普通に動いているから、ローカルの問題だろうと、古いバージョンの MAMP を使っていたので最新版にしました。 1.9.6 から 3.0.5 にです。

MAMP のアップデートの方法は下記のようです。

  1. アプリケーションフォルダにある今使用している MAMP を「 MAMP_old 」のようにリネイムする。
  2. 新しい MAMP をインストーラーからインストール。
  3. 「 MAMP_old 」内の「 db 」フォルダを新しい MAMP に上書き。
    (「 htdocs 」フォルダがデフォルトの場合はそれも上書きする。)

これで MAMP を立ち上げればいいらしいのだけれど、 Apache は起ち上がるけれど、 MySQL は起動しません。

インストールした MAMP を削除したり、いろいろしたのですが、どれもダメで、バージョン 2 系を飛ばしているのが問題かもと思って、 MAMP 2.1.4 をダウンロードしてきてアップグレードしてみました。そしたら今度は MySQL は起動するけれど、 Apache が起動しません。

2.1.4 をリネイムして残した状態で、今度は 3.0.5 をインストール。「 db 」フォルダを上書きしてたら、 MySQL は起動するけれど、 Apache が起動しない状態になりました。よくわからないので、 Mac を一度再起動したら、 Apche も起ち上がりました。

ローカルの WordPress にログインできない

ようやく起ち上がった WordPress にログインしようと思ったら、ログイン画面にエラーが出てログインできません。

20140427_5.jpg

「エラー : 予期しない出力により Cookies がブロックされました。ヘルプが必要な場合はこちらのドキュメンテーションを読むか、サポートフォーラムをご利用ください。」

英語のフォーラムでは話題になっているらしく、下記を読むと、このエラーは 3.9 系で出るようになり、プラグインかテーマが原因みたいです。
→ WordPress.org Forums : Unable to Log In –Cookies Are Blocked Due To Unexpected Output?

FTP 経由でプラグインまたはテーマをリネイムすることでログインできるようになるみたいです。(ファイル名の頭にアンダーバーなどをつけるとよい。)

本番サーバーでは正常にログインできているので、プラグインではなくテーマが原因だろう、と検討をつけ、テーマをリネイムしてみると、エラーが消えました。テーマ内の function.php に原因があるので、リネイムを元に戻しバックアップしてあった古いバージョンに差し替えてみたらエラーはでません。なので古いバージョンと新しいバージョンの function.php の差分を取って、 1 つ 1 つ置き換えていきましたが、エラーはでませんでした。つまり書き換えたコードがおかしかったわけではなかったのです。

で、長々と書きましたが何が原因だったか、というと、ファイル終わりの ?> の後に改行とスペースがあったことが原因でした。先日ファイルの最後ほうにコードを書き加えたときに、スペースと改行を入れてしまったのです。

つまり WordPress のページ遷移がおかしかったのも、ファイル文末のスペースと改行のせいで、 MAMP をアップデートする必要はなかった、ということです。スペースと改行で半日潰してしまいました。 PHP のファイル終わりの ?> は書かない方がいいというのはこういうエラーを防ぐためなんですね。

関連記事

コメント (8)

  • コハダ

    あさこんさん 初めまして
    全くの初心者が0から WordPress で作り始め、やっとこさ95%完成っていう時に「予期しない出力により Cookies がブロックされました」が正に出現してしまい、パニくって検索していたら辿り着きました (>_<)

    エラー直前に css とかいじってたらおかしくなりましたので、原因はこちらに書かれているのと同じかと疑っております。

    が、しかし、修正の方法が全く見当つきません (+_+) 。 Wordpress 管理画面に入れない状態で、どうやって「スペースと改行を削除」すれば良いものでしょうか?

    レンタルサーバーのDBを見ても、テーブル名がなにを指しているのかもチンプンカンプンです・・・

    突然の訪問にも関わらず図々しく質問してしまいすいませんが、何かしらヒントでもいただけたら大変助かります

  • あさこん

    ◇コハダさん◇
    こんにちは。コメントありがとうございます。
    同じようなエラーが出たとのこと。

    管理画面にログインせずにファイルを直す方法ですが、
    記事にもちょろっと書いてありますが、
    FTP ソフトを使いサーバーに接続します。
    Windows ですと FFFTP が有名です。
    使い方などは調べてみてください。

    サーバーの情報を入力すれば接続できるので、
    wp-content/themes 内の使用しているテーマの名前を先頭に
    アンダーハイフンをつけるなどしてリネイムしてみてください。
    それでログインできたらテーマに問題があることになります。
    テーマのフォルダを FTP ソフトでパソコンにダウンロードして、
    拡張子が .php のファイルの末尾の ?>の後に改行などがないか見直してみてください。
    もしかしたら末尾ではなく、途中の PHP の記述ミスかもしれませんので、
    ログインできなくなった直前にいじっていたファイルを重点的に見直してみてください。
    ( CSS ファイルとデータベースは今回のエラーとは無関係だと思います。)
    使うソフトはテキストエディタというのもで、 Windows でしたら TeraPad などが有名です。
    もし改行などがあったらそれを削除し、 FTP ソフトでアップロードしてください。
    フォルダの名前も元に戻してくださいね。

    それでもログインできなければ、他の原因が考えられます。
    直前に何かプラグインをインストールしていた場合それが原因なこともあるので、
    FTP ソフトからそのプラグインを削除してください。

    テーマをいじる時は FTP ソフトからテーマのバックアップを取っておくことをおすすめしますよ。
    万が一エラーが出てもバックアップに差し替えれば復活できますから。

    借りているレンタルサーバーによってはファイルマネージャーというサービスがあって、
    FTP ソフトのようなことがブラウザからできますのでそれを使うのもありかと思います。

    原因がわかりログインできるようになるといいですね。

  • コハダ

    あさこんさん

    うわー 復旧しました!!

    「FTPソフトから探さなきゃ・・・」と重い気分になってましたが、最後に書いていただいた「レンタルサーバーによってはファイルマネージャーというサービスがあって…」に望みをつないでやってみました

    見たことのないフォルダがダダーっと展開してきて気を失いそうになりましたが、更新日時の新しいものに当たりをつけたところ見つかりました。

    Style.css と Functions.php 内の無駄な改行とスペースを消したところ、ログインできるようになりました。

    あさこんさんからの「ファイルマネージャーを使ったやり方」のご教示がなければ、まだジタバタしていたはずです。いきなりの質問にも関わらず親身に的確なご回答をいただき、本当にありがとうございました。
    ううっ 人の情けが身に染みます。心よりの感謝を申し上げます。

  • あさこん

    ◇コハダさん◇
    復旧されたようで何よりです。
    お役に立てたようでよかったです。
    これからも何かあるかもしれないので、
    ファイルマネージャー経由でもバックアップを取ることをおすすめしますよ。

  • Kentaro

    ありがとうございます。
    ?> の後ろに改行と空白が入っていましたー!!!

    たすかりました!!!

  • あさこん

    ◇ Kentaro さん◇
    コメントありがとうございます。
    急にログインもできなくなり焦りますよね!
    無事に解決できたようで何よりです。

  • さとう

    情報ありがとうございます。
    私もまったく同じ状況になりました。
    テーマフォルダ内の function.php の改行をいくつ消してみたら
    ログインできました。

  • あさこん

    ◇さとうさん◇
    コメントありがとうございます。
    お役に立てたようでなによりです。

コメントを書く

トラックバック URL