WordPress 2.0.2 ME to 2.5.1

長い間躊躇していたWordpressのアップグレードを行うことにした。でも、2.0.2 MEから2.5.1へとかなり大きく変わることと、2.0.2 MEが変則的にインストールされていることが大きなハードル。というのも、文字コードがEUCであるのにMySQLテーブルはUTF8という、今までよく文字化けしていなかったな、という不思議な構成になっている。phpMyAdminでDBの中を見てもバケバケ〜な状態。

アップグレードはサーバを新しく立てるので、そちらのほうで試行した。さすがに本番マシンでぶっつけで行うほど度胸はない。

まず、DBのバックアップをとる。いろいろと試行錯誤した結果、うちの構成の場合はWordPress Database Backup 日本語版プラグインを導入して、それでバックアップするのがベストだと分かった。まあ、phpMyAdmin、Webminでもバックアップをとっておくほうがいいとは思う。そして、すべてのプラグインを無効にして旧Wordpressのファイル一式をバックアップする。

その次にいよいよWordPress 2.5.1をダウンロードして、既存のファイルに対して上書きする。wp-config.phpは2.5.1のものをベースに新たに設定し直した。この時点で/wp-admin/upgrade.phpを起動しても、一見アップグレードはうまくいくようだけど、当然文字化けの嵐。

DBをダウンロードする時の文字コード設定、インポートするときの文字コード設定などを数限りない組み合わせで試したけど、もともとの構成が変則的だったためか、文字化けは一向に直らない。

そこで試したのがnkf。$ sudo apt-get install nkfでインストールして、Wordpress Database Backupにて作成したダンプファイルの文字コード変換を行う。$ nkf -w dumpfile > dumpfile.utf8文字コードが変換されたダンプファイルをphpMyAdminでインポートする。あ、もちろん、あらかじめDB(wordpress)をutf8-unicode-ciの照合順序で作っておく必要がある。

すると今度はphpMyAdminでDBの中を見るとちゃんと日本語が文字化けせずに見える!! これは感動(って、これが当たり前なんだけど・・・)。早速 /wp-admin/upgrade.phpにアクセスして、アップグレードを行う。やった〜〜! 文字化け解消〜!! と、喜ぶのは早い。まだ若干文字化けが残っている。それは以前のthemeでindex.phpとrecent-comments.phpに全角を使った修正を行っていたのだった。これらも同じく nkf -w で文字コードを変換すればOK!(index.phpのあるディレクトリにて)
$ mv index.php index.php.euc
$ nkf -w index.php.euc > index.php
(recent-comments.phpのあるディレクトリにて)
$ mv recent-comments.php recent-comments.php.euc
$ nkf -w recent-comments.php.euc > recent-comments.php

やれやれ、これで直った、と思った矢先にまたもや不具合。今度はログインができない。「このページにアクセスするための十分なアクセス権がありません。」とかなんとか言われる。ここはやはり先人の知恵を拝借しましょう。このサイトがまさしくこの回答であり、このサイトのphpMyAdminにてDBを直接いじる方法で解決した。備忘録的に書くと、phpMyAdminでwordpress DBのwp-optionsテーブルのエントリで、option_nameが”wp_user_roles”というものがある。そのoption_value項目をa:5:{s:13:"administrator";a:2:{s:4:"name";s:9:"管理人";s:12:"capabilities";a:30:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1;s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;}}s:6:"editor";a:2:{s:4:"name";s:9:"編集者";s:12:"capabilities";a:19:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;}}s:6:"author";a:2:{s:4:"name";s:6:"作者";s:12:"capabilities";a:8:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;}}s:11:"contributor";a:2:{s:4:"name";s:9:"寄稿者";s:12:"capabilities";a:4:{s:10:"edit_posts";b:1;s:4:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;}}s:10:"subscriber";a:2:{s:4:"name";s:9:"協力者";s:12:"capabilities";a:2:{s:4:"read";b:1;s:7:"level_0";b:1;}}}に書き換える、というもの。

これで一件落着。

新しくしてから若干動作が重くなってるけど、旧テーマをそのままにしているし、プラグインもアップデートしていないから、追々手を加えていきましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です