WordPress 3.0 にバージョンアップしました!


っていうブログを書くのも立派な開発への貢献ですよ、と自ら大勢の人の前で言っちゃったので、書いてみます。

今回のバージョンアップは近年稀に見る大変な目に合いましたので、参考になれば幸いです。

想定していたバージョンアップ手順

当初想定していたバージョンアップの手順は

  1. 以下のファイルのバックアップ:wp-content ディレクトリ以下すべてのファイル、wp-config.php ファイル、.htaccess ファイル
  2. データベースのバックアップ
  3. SSH から Subversion を実行: svn sw http://core.svn.wordpress.org/tags/3.0/ .
  4. \wp-admin\ へのアクセス(upgrade.php の実行)
  5. エラーがないかの確認
  6. 挽きたてのコーヒーを香りから楽しむ

というものでした。しかーーーーーーし!

Subversion でコケてる……?

\wp-admin\ にアクセスすると…

[php]Fatal error: Call to undefined function is_multisite() in /絶対パス/wp-includes/l10n.php on line 39[/php]

エラー内容を要約すると、is__multisite が定義されてないからワカンネ、ってことです。予想するに、マルチサイト関連のファイルがないってことです。そんなバナナッ!

subversion を実行したログを確認してみると、

[shell]svn: Won’t delete locally modified directory ‘wp-content/themes’
svn: File ‘wp-content/themes/default/footer.php’ has local modifications[/shell]

\wp-content\ の中身いろいろ変えてるから消さねーよ、っていうか、footer.php 変えたなテメー!と怒っておられるようです。おかしいな、いつもは wp-content は無視してくれるのに。

とりあえず、footer.php を 2.9.2 のオリジナルに差し替えてみますが、やっぱりファイルが足りません。hiromasa センセに相談してみると、Subversion のファイル壊れちゃったのかしら、とのこと。

[バルスと同義のコマンドなので実行の際は自己責任で!!]WordPress のあるディレクトリで、

[shell]rm -rf `find ./ -type d -name .svn ! -regex \.svn/. -print`[/shell]

と実行して、Subversion の管理ファイルを削除するもダメ。

 WordPress のアップグレード

仕方が無いので、Subversion で 2.9.2 に戻した上で、WordPress 本体のアップグレードボタンを押してみます。

[php]Fatal error: Call to undefined method wpdb::get_blog_prefix() in /絶対パス/wp-includes/user.php on line 445[/php]

あれー!?何がどうなってしまったんでしょう。またもマルチサイト系でエラー。どうにもこうにも原因不明のため、wp-content ディレクトリ以下すべてのファイル、wp-config.php ファイル、.htaccess ファイル をバックアップした上で全部消してみよう、ということに。

wp-content のバックアップは tar コマンドで圧縮しちゃうと便利

\wp-content\ にはアップロードした画像やらキャッシュやらが大量にあってぼくのサイトレベルでも6000ファイルくらいになってしまいます。

まともに FTP でダウンロードしてしまうと(時間的な意味で)大変なことになってしまうので、tar コマンドで圧縮した上でダウンロードすると(時間的な意味で)大変な事になりません。

[shell]tar zcvf wp-content.tar.gz wp-content/[/shell]

おでこはいつまでも経ってもこういうコマンドを覚えません。ひろまさ先生、すいません、すいません。

ということでバックアップが済んだら、WordPress 本体のディレクトリにあるファイルと、\wp-admin\、\wp-includes\ を削除していきます。下記コマンドもくれぐれも自己責任で。

[shell]rm -rf wp-admin/[/shell]

まっさらになったところで、あらためて Subversion を実行。

[shell]svn co http://core.svn.wordpress.org/tags/3.0/ . [/shell]

おお、今日実行した Subversion で一番追加するファイル数が多いぞ。うまくいったかな?

Subversion が完了したところで、wp-config.php ファイル、.htaccess ファイル をアップロード。wp-content については、またも時間的な意味で大変なことになるので、wp-content.tar.gz ファイルをアップロードして tar コマンドで解凍します。

[shell]tar zxvf wp-content.tar.gz[/shell]

管理画面へのアクセスも無事成功!投稿等も問題ありません。ところが、プラグインをアップデートしようと「アップデート」にアクセスすると…

[php]Fatal error: Call to undefined method wpdb::get_blog_prefix() in /絶対パス/wp-includes/user.php on line 445[/php]

またお前か。

DB Cache Reloaded、犯人はお前か!

よくよく見ると、このエラー wpdb からの取得でこけてる?ってことでそうなると怪しいのは俄然 DB Cache Reloaded プラグイン。wp-db.php の動きを一部リプレースしているのです。

db reloaded が wp 3.0 に対応してません!

Broken :(

DB Cache Reloaded はまだ WordPress  3.0 に対応していないみたいです。無効にしてキャッシュも削除。しばらく重いかもしれないけど、我慢我慢。これで一通りエラーが解消できたみたいです!

というわけで、今回のバージョンアップの問題点をまとめると…

  • Subversion 管理ファイルが破損していたっぽい
  • DB Cache Reloaded が WordPress 3.0 に対応していなかった

ということでした~。みなさんもがんばって WordPress 3.0 にアップグレードして、ハッピーな WordPress ライフをお送りください!

おでげーとさぽーてっどばい hiromasa another:o)そらのさん風に


“WordPress 3.0 にバージョンアップしました!” への11件のフィードバック

  1. ちなみに、私のアップグレードは、DB Cache Reloadedは大丈夫だったよ~~~。

    サーバー環境とか諸々の環境に依存すると思うので、1つの参考にしてみてくださいw(と、私が書いてみるw

  2. DB Cache Reloaded はまだ WordPress 3.0 に対応していないみたいです。無効にしてキャッシュも削除。しばらく重いかもしれないけど、我慢我慢。これで一通りエラーが解消できたみたいです!

    だから dogmap.jp は、まだ3.0にバージョンアップしてないのでした。
    ただ、「ラッパーモード(Wrapper Mode)」を On にしたら、WP3.0でも動作したよ。

    • >をかもとさん
      な、なんだってーーーー!
      って実は知っていたのでしたw 夜中のひろまささんと dogmap の generater 見てたのでw

      ラッパーモードって挙動が怪しいって書いてあるので、しばらく待ちですかねー。
      ただ、DB Cache 無効にしてても、体感的に 2.9 より早い気がしますね。

  3. アップデートしようとしたら、
    Fatal error: Cannot redeclare is_rtl() (previously declared in /home/sites/*****/wp-includes/locale.php:347) in /home/sites/*****/wp-includes/locale.php on line 349

    なんてエラーが‥‥。焦りすぎたかな‥‥。

    • >tosh さん
      もしかしたら、すでに試されたかもしめませんが、event-calendar プラグインがエラーをはいちゃってるみたいですね。

      プラグインをバックアップしたら、wp-content ディレクトリから、event-calendar ディレクトリを削除するとエラーが解消されることがあるようです。対応待ちですかね。

      http://wordpress.org/support/topic/411422?replies=5#post-1556528

      • おでさん、
        おっしゃるとおりでした。
        event-calendar プラグインを削除することで何とかなりました。3.0対応のカレンダーを探さなくては‥‥。

おで へ返信するコメントをキャンセル

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。