サーバを含めた様々な引越しが終わりました。
URLの書き換えが遅いので、
ページが表示されない時はページ更新してみて下さい。
サーバ引越しを伴うwordpress2.0 to 2.1参考メモ
必要環境
2.1移行にはPHP 4.2以上、MySQL4.0以上が必要です。
前のサーバはMySQL3系でダメでした。
今は(チャレンジャーですが)PHPもMySQLも5.1系で動かしています。
私の場合
旧サーバでSQLエクスポート
新サーバでSQLインポート→2.1アップグレードが
失敗したので
旧サーバでデータ整形→SQLエクスポート
新サーバで2.1新規インストール→SQLインポート、で成功しました。
パーマリンクも問題ありません。
2.0系と2.1とのテーブルの違い
・wp_categoriesフィールド3つ追加、すべてNotNullで基本値0。
link_count bigint(20)
posts_private tinyint(1)
links_private tinyint(1)
・wp_linkcategories→wp_link2catへ大幅変更。
・wp_postsフィールドタイプ追加
post_status enum(‘publish’,’draft’,’private’,’static’,’object’,’attachment’,’inherit’,’future’)
文字コード
wordpress/PHP/MySQLなど諸々の文字コード設定は
UTF-8で統一。テキストエディタの保存はUTF-8N。
データベースの文字コードがUTF-8なのはすごい気になりますが!
MySQLの文字コード自動認識が悪さするので、
wp-includes/wp-db.phpの66行目あたりに
mysql_query("SET NAMES utf8", $this->dbh);
を追記して文字コードを強制します。
修正
そのままだとインポートした投稿が表示されないので、
データベースで投稿のステータスを書き換えて、投稿を表示させる。
リンク(ブログロール)のカテゴリが大幅に変更されているので、
インポートはあきらめて管理画面で新たに割り当て。
サーバ変更にともなって変わったURLなどはSQLで書き換える。
例
update wp_postmeta set `meta_value` = replace(`meta_value`,'旧文字列','新文字列')
update wp_posts set `guid` = replace(`guid`,'旧文字列','新文字列')
update wp_posts set `post_content` = replace(`post_content`,'旧文字列','新文字列')
PHP設定/.htaccess
新サーバは初期設定が甘めだったので.htaccessで設定。
php_flag register_globals Off
php_flag display_errors Off
php_flag log_errors On
php_flag session.use_only_cookies On