ローカルの 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 にログインしようと思ったら、ログイン画面にエラーが出てログインできません。

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

「エラー : 予期しない出力により 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 のファイル終わりの ?> は書かない方がいいというのはこういうエラーを防ぐためなんですね。

関連記事

MAMP 上の WordPress でページ遷移ができない
WordPress
thumbnail CSSが適用されない
MAMP で WordPress をローカル環境にインストール
WordPressMac
thumbnail MAMP 許諾画面
MAMP でバーチャルホストを設定して複数ドメインで運用する方法
Mac
thumbnail MAMPのポート設定
MAMP の手動でのデータ移行と再構築
Mac
thumbnail MAMP 7.2インストーラー
脱獄なしで iPhone から MAMP のバーチャルホストに接続する方法
MaciPhone
thumbnail インターネット共有を有効にする
VMWare Fusion 上の IE11 から Mac 上の MAMP のサイトを確認する設定方法
MacWindows
thumbnail Hosterの設定