新iPodシリーズが発表になりましたね。touchにスピーカーがついたってのが気になるぐらいなので、僕は見送りです。
さて、WordPressのバージョンが古くなる一方です。踏みとどまっていたのは現行のmySQLのバージョンがUTF-8を扱えないことが一番の原因です。
というわけで、ようやく重い腰をあげ、
*mySQLを4.0.xxから5.0.xxへ、データベースはEUC-JPからUTF-8
*phpを4.3.xxから5.2.xへ
*WordPressを2.0.11から2.6.1へ
*ついでにサーバPCも新調。
を、いっぺんにやってみようの巻です。
とは言え、いきなりやると悲惨な結果をまねきかねないので、今回は仮想マシンを新調するサーバと見立てて、お引越しシミュレーションです。
結果から言うとなんとかうまく言ったのが下のスクリーンショットです。あとは新しいPCを買ってくるだけです。これが一番面倒くさい!

以下、手順のメモ。荒業ですので絶対まねしないでください!
phpmyadminもしくはmysqldumpでデータベースをバックアップ。
$ mysqldump -u root -p DB_NAME > htaka.sql
そのバックアップデータをBOM無しUTF-8に変換。
$ nkf -E -w -w80 htaka.sql > htaka_utf8noBOM.sql
引越し先のmysqlの設定(/etc/mysql/my.conf)へ追記。
[mysqld] default-character-set = utf8 skip-character-set-client-handshake [mysql] default-character-set = utf8
これでUTF-8端末、phpmyadmin両方から文字化け無しでmysqlを操作出来るようになります。

apache2のrewriteモジュールを有効にする。
sudo a2enmod rewrite sudo /etc/init.d/apache2 restart
UTF-8に変換したバックアップしたデータベースをを引越し先mysqlに読み込み。
$ mysql htaka < htaka_utf8noBOM.sql -u root -p
無理やりデータベースをUTF-8へ変換したので不具合があり。2.6.1へアップグレード後「〜〜capabilities.php on line 31〜〜」が出たらこれが原因。
“wp_options”テーブルの”wp_user_roles”と言う”option_name”をもつレコードを以下のデータで上書き。
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;}}}
WordPressディレクトリをVer.2.0.11のまま、まるごと引越し。
WordPress Ver.2.6.1で上書き。その後以下のupgradeスクリプトへアクセスしデータベースをアップグレード。
http://localhost/~htaka/wordpress/wp-admin/upgrade.php
wp-confing.phpの修正
define('WPLANG', 'ja'); define('DB_CHARSET', 'utf8'); define('WP_HOME', 'http://localhost/~htaka/wordpress'); //一時的 define('WP_SITEURL', 'http://localhost/~htaka/wordpress');//一時的
あとはテーマファイルがEUC-JPなのでUTF-8へ変換。
てな感じで引越しシミュレーション完了。