新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を買ってくるだけです。これが一番面倒くさい!

wp26_small.jpg

以下、手順のメモ。荒業ですので絶対まねしないでください!

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を操作出来るようになります。

mysql-utf8_small.jpg

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へ変換。
てな感じで引越しシミュレーション完了。

コメントを残す

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