WP ME 2.0.4 → WordPress 2.3 へアップグレード
10月4日、WordPress ME 2.0.4 から WordPress 2.3 へアップグレードした。
使っていたプラグインの互換性チェックはまだまだなのですけど、必須プラグインは使えそうなので、あとは、「2.3 の世界で何ができるか、どうやって実現するか」を楽しんでいくことにしました。
この記事では、自分用の記録として、アップグレード作業として行なった内容を書き連ねます。
注) 「アップグレード作業をこうすべき」という記事ではありません。元が ME 2.0.4 であったこと+テーマ・プラグイン仕切り直し+ぼのの趣味で、いろんな作業をしていますが、普通はここまでしなくて大丈夫です。
ただ、アップグレード前に Ultimate Tag Warrior のタグデータを整理しておくのはいいと思います。
2.3 に上げてから、タグをインポートをする際に、タグ一覧が表示されて、「これを全部インポートするけどいい?取り込みたくないものがあれば UTW で削除してね」(意訳)みたいなメッセージが出ました。インポートすると、カテゴリの続きから ID が採番されます(カテゴリと同名タグは統合)。(詳しくは別記事にて)
読みやすいように後で文章を直すかもです。。とりあえず忘れないうちにメモ。
目次:
- 参考資料
- 事前調査・検討
- 現状の整理 — 不要データの削除など
- 作業前(ME 2.0.4)のディレクトリ構成
- アップグレード作業
- 1. 準備
- 2. DB バックアップ
- 3. WordPress ファイル一式をバックアップ
- 4. 一旦 2.0.11 へアップグレード
- 5. WordPress 2.3 パッケージをダウンロード
- 6. 解凍した 2.3 に必要なものを追加して、ローカルの一式を作成
- 7. メンテナンスモード発動!
- 8. 「設置ディレクトリと異なるページをホームにする」設定を一時停止
- 9. サーバの WordPress ファイル一式を 2.3 に入れ替え
- 10. アップグレードスクリプト実行
- 11. アップグレード完了後、サイト表示で文字化けしていないこと、ログインを確認
- 12. phpMyAdmin にて、DB 変更、データの文字化けがないことを確認
- 13. Giving WordPress Its Own Directory を設定
- 14. 設定を一通り確認
- 15. 必須プラグインを一つずつ有効化
- 16. コメント・TB 許可に戻す
- 17. メンテナンスモード解除・無効化
- 18. ログアウトし、サイト表示を確認
- 19. 新規投稿の文字化け有無確認
- 20. 追記 XREA の手動広告挿入用コードを、テーマ内の `header.php` に追加。
- 細部
- 関連ページ
参考資料
- WP: WordPress 2.3 へアップグレードする前にしておきたいこと — 作業の前に確認すべきこと、行なうべきこと
- ver. 2.1 以降を使う前に
- ps*wiki » WordPress のアップグレード/詳細 — この手順をベースに実施
- Odysseygate.com » WordPressサーバ移転まとめ (おでさん) — DBバックアップ方法(phpMyAdmin でエクスポート)
- ps*wiki » wp-config.php の編集 — MySQL 文字化け対応をこれで
- ps*wiki » Giving WordPress Its Own Directory — 「設置ディレクトリと異なるページをホームにする」の最新和訳
事前調査・検討
- プラグイン互換性チェック → 必須プラグインが行けそうなので go
- ME or 本家版 → 本家版の動作も見てみたいので、切り替え
- アップグレード方法
- 2.3 へ一気に上げる?2.0.x 最新、2.1、2.2 くらいは経由してみる?
→ 一気。
にしようと思ったら、Maintenance Mode Plugin の動作要件が 2.0.9 以上だったので、2.0.11 経由にした。 - 「設置ディレクトリと異なるページをホームにする」設定のままでするか? → 2.0.11 に上げるときはそのまま、2.3 へ上げるときは念のため一時的に戻してみる。
- 2.3 へ一気に上げる?2.0.x 最新、2.1、2.2 くらいは経由してみる?
現状の整理 — 不要データの削除など
これを機に、不要データの整理等をしておく。
1. 作業前に DB バックアップ
wp_options- プラグイン UTW セット
wp_post2tagwp_tagswp_tag_synonyms
- プラグイン Democracy セット
wp_democracyAwp_democracyIPwp_democracyQ
2. 作業
- プラグイン Favatars → Favicon API へ切り替え
wp_commentsテーブルのcomment_favicon_urlフィールドも削除- ついでに
comment_subscribeフィールドも削除
- プラグイン Democracy テーブル削除
wp_optionsテーブル整理 — 不要なプラグインの設定データ削除- リンクデータ・リンクカテゴリを削除
ほとんど使っていないし、勝手にカテゴリID 振られるのが困るので。- → 1件ずつ残した。リンクカテゴリはデフォルトを削除できなかったのと、アップグレード時の0件処理避け。
- → アップグレード結果: 記事カテゴリの後ろにリンクカテゴリが採番された。記事カテゴリで使っている「WordPress」カテゴリにでもしておけば、マージで 1カテゴリに統合してくれたかも。。
- UTW タグデータ整理
wp_tagsテーブルから不要レコード削除。誤記で登録されてしまったものとか残ってるので。。これは 2.3 へアップグレード後・UTW インポート前に行なった。 - 使っているプラグインの設定をメモ — 初心に帰ることにして、省略
作業前(ME 2.0.4)のディレクトリ構成
「設置ディレクトリと異なるページをホームにする」設定のため、次のようになっている。
public_html.htaccess
wordpress/.htaccessからコピーしたもの。
パーマリンクのリライトルール、php_value mbstring.internal_encoding UTF-8、自動広告挿入抑制などが入っている。index.php
訪問者のアクセスはここ(http://bono.s201.xrea.com/)
wordpress/index.phpからコピーし、require('./wordpress/wp-blog-header.php');に修正してある。wordpress/— WordPress ファイル一式wp-admin/— ログインはここ(http://bono.s201.xrea.com/wp-admin/)wp-content/wp-includes/.htaccess→ ルートへコピーindex.php→ ルートへコピー- …
アップグレード作業
通常のアップグレード+うち独自の作業。順序も自分向けにアレンジ。
1. 準備
- ELA キャッシュクリア
- wp-cache キャッシュクリア
- コメント・トラックバック受付を拒否設定に1
- Akismet 捕獲スパム削除
- DB 最適化
- デフォルトテーマに切り替え
- プラグイン全部オフ
2. DB バックアップ
- phpMyAdmin でエクスポート(各種組み合わせ)
- XREA管理画面の「保存」
3. WordPress ファイル一式をバックアップ
- ローカルの一式 →
wp204/にリネームして退避 - サーバの
wordpress/ディレクトリ、index.php、.htaccessファイル → ローカルの別ディレクトリへコピー
4. 一旦 2.0.11 へアップグレード
Maintenance Mode Plugin の動作要件が 2.0.9 以上だったので、2.0.11 経由にしてみた。→ 作業詳細
5. WordPress 2.3 パッケージをダウンロード
http://wordpress.org/download/
6. 解凍した 2.3 に必要なものを追加して、ローカルの一式を作成
wp-config.php— 2.3 のwp-config-sample.phpから作り直し。
うちのwp-config.php全文(矢印日本語コメントは当記事上の説明):<?php mb_language("Japanese"); // ←(注1) mb_internal_encoding("UTF-8"); // ←(注1)アカウントID// ** MySQL settings ** // define('DB_NAME', '
'); // The name of the database define('DB_USER', 'アカウントID'); // Your MySQL username define('DB_PASSWORD', 'パスワード'); // ...and password define('DB_HOST', 'localhost'); // 99% chance you won't need to change this value 変更なし define('DB_CHARSET', 'utf8'); // ←(注2) define('DB_COLLATE', '');ja// You can have multiple installations in one database if you give each a unique prefix $table_prefix = 'wp_'; // Only numbers, letters, and underscores please!
// Change this to localize WordPress. A corresponding MO file for the // chosen language must be installed to wp-content/languages. // For example, install de.mo to wp-content/languages and set WPLANG to 'de' // to enable German language support. define ('WPLANG', '
'); // ← 日本語化ファイルに合わせる。この場合は ja.mo(本体・プラグイン共通)。/* That's all, stop editing! Happy blogging. */
define('ABSPATH', dirname(FILE).'/'); require_once(ABSPATH.'wp-settings.php'); ?>
ルートに従来どおりの
.htaccessを置く。wordpress/下にもコピー(一時的)
7. メンテナンスモード発動!
8. 「設置ディレクトリと異なるページをホームにする」設定を一時停止
オプション設定画面でサイト URL を修正。
9. サーバの WordPress ファイル一式を 2.3 に入れ替え
- サーバの
wordpress/ディレクトリから、以下のものを除いて削除。— 作り直すのでwp-config.phpファイルwp-content/ディレクトリwp-content/uploads/のみ残すwp-content/cache/ディレクトリは削除— 2.0.4 だったのでなしwp-content/plugins/widgets/ディレクトリは削除
— 自分では追加してなかったのでwp-images/ディレクトリwp-includes/languages/ディレクトリ — 言語ファイルを使っている場合、このフォルダは削除しないこと。
- ローカルに用意した一式をサーバへアップロード。
10. アップグレードスクリプト実行
http://~/wordpress/wp-admin/upgrade.php
11. アップグレード完了後、サイト表示で文字化けしていないこと、ログインを確認
12. phpMyAdmin にて、DB 変更、データの文字化けがないことを確認
13. Giving WordPress Its Own Directory を設定
Giving WordPress Its Own Directory の項番 1, 3, 6 はできているので、それ以外を実行。
- Option > General で Blog address (URL) を修正、設定更新。
wordpress/index.phpをルートへコピー、修正。wordpress/.htaccessは削除。- ルートの
.htaccessのパーミッションを707に。 - ログイン (
http://~/wordpress/wp-admin/) - Option > Permalinks で [ Update Permalink Structure » ] ボタンをクリックして更新。
14. 設定を一通り確認
15. 必須プラグインを一つずつ有効化
- PHP Markdown Extra 1.1.7
- runPHP2.3.1
- wp-footnotes.2.2
- Decoder (忘れてたので後から追加)
16. コメント・TB 許可に戻す
17. メンテナンスモード解除・無効化
18. ログアウトし、サイト表示を確認
19. 新規投稿の文字化け有無確認
新規投稿して、文字化けがないことや正常動作を確認。
20. 追記 XREA の手動広告挿入用コードを、テーマ内の `header.php` に追加。
細部
途中で一旦 2.0.11 へアップグレード
- WordPress.org » Download › Release Archives から 2.0.11 をダウンロード、解凍。
- これをローカルの
wordpress/ディレクトリとして、必要なファイルを追加。- 2.0.4 の
wp-config.phpをwordpress/へコピー index.phpは差がなかったので、ルートのindex.php、.htaccessはそのまま使用
- 2.0.4 の
wp-includes/wp-db.php` の DB 接続直後に MySQL 文字化け対応の修正。
function __construct($dbuser, $dbpassword, $dbname, $dbhost) { register_shutdown_function(array(&$this, "__destruct")); $this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword); if (!$this->dbh) { (中略) }mysql_query("SET NAMES utf8", $this->dbh); // ←コレ挿入$this->select($dbname); }最初、これを忘れて `http://~/wp-admin/ にアクセスしたら、次の警告とメッセージが出た。
Warning: Invalid argument supplied for foreach() in /~/public_html/wordpress/wp-includes/capabilities.php on line 19 Your database is out-of-date. Please upgrade.
つい、「Please upgrade」からアップグレード画面に移動して実行してしまった(その間も Warning 出てた)。最終行はエラーのせいなのか本当にアップグレードが必要だったのかわからない。。orz
その後、上記修正を上書きアップロードしたら、警告が消えた。
- でも 1件スパムが来た。見た目上だけ拒否なのかな?[back]
.htaccessにphp_value mbstring.internal_encoding UTF-8を入れても入れなくても変化がなかったのは、ここにmb_internal_encoding("UTF-8")があったおかげではないかなあ、と。[back]- s201 サーバはデフォルト文字コードが EUC-JP(MySQL の
character_set_serverがujis、かつ、mysqld --skip-character-set-client-handshakeオプション指定)なので、DB を UNICODE で作成しても、ここでutf8を設定しないと文字化けする。2.1.x 以前の MySQL 文字化け対策「wp-includes/wp-db.phpのSET NAMES utf8修正」に替わるもの。
s216 以降の PHP5 系サーバはデフォルトが UTF-8 なので、たぶん設定不要。[back]



ひかげ :
October 6th, 2007 at 1:50
ぼのさん、おひさしぶりですー
ついに本家に移行なんですね。
いつもいろんな面を参考にさせてもらってます。
少し葛藤があるので、こちらはまだ ME です。
タグ機能は、期待なんですけどまだまだ勉強不足なひかげです。
本家版になっても、よろしくお願いします。
ぼの :
October 16th, 2007 at 1:47
ひかげさん、こんにちは。お返事遅くなってしまってごめんなさいー。(>_< )
そうなんですー。予定ではアップグレードはもっと先になるはず、、というか、当面 2.0.x に居残りのつもりでいたのですけれど、唐突にアップしたくなって、本家版になっちゃいました。。
> 少し葛藤があるので、こちらはまだ ME です。
バージョン毎に結構機能が違うから、自分に合っているバージョンから変えるのには躊躇しちゃいますよね。
うちは半分実験サイトのまま突っ走っているので、2.3 ではここはどうなってるの?とか、気になることがあったらいつでも聞いてくださいねー。
こちらこそ、これからもよろしくお願いしますー。書き込みありがとうございました。