2008_01_18 記
[概要・詳細]
サーバーをXREAから上位のCORESERVERへお引越し完了しました。
そしてMovable Typeを3から4にアップグレード。
外見的には変わっていませんが。
・万一に備えてMTで記事を書きだす。
・手順としてはXREAのデータベースを保存する。MySQL.dump作成してローカルに落として保存。
・新サーバーに旧サーバーのMySQL.dumpをFTPでアップロード。MySQL.dumpを使ってデータベースを新サーバーで復元。
旧サーバーはMySQL4で新サーバーはMySQL5だったので心配したが問題はなかった。
・FTPで旧サーバーの記事やら何やらを新サーバーに移す。
・mt-config.cgiを書き換えて(或いはMT3でつかっていたものを流用して)MT4を新サーバーにインストール。
MTフォルダにアクセスするとアップグレードが始まる。
ここまでは順調だったのだが、ここで問題発生。
今までの記事の文章やらが「?????」と表示されて何がないやらわからない。
ローマ字はちゃんと表示されているので文字コードの問題だということは推定できた。
初めはMySQL4とMySQL5の間の問題かと思ったが、どうやらMT4とMySQL5の問題らしいということがわかった。
解決方法として以下のページを見つけた。
[]MySQL5以降のサーバーで文字化けする - XREAでMTを!
http://www.xrea-mt.com/xrea-mt/2006/03/trouble-3.html
[]2.テンプレートが文字化けし再構築できない: XREAでMTを!
http://www.xrea-mt.com/xrea-mt/trouble/2/
文章をお借りすると
2.UTF-8で設置した場合に起こる「テンプレートが文字化けし再構築できない」の対処を行う。
3.以降普通に設置しますが、「mt-config.cgi」の
57行目の
# SQLSetNames 1
を
SQLSetNames 1
に変更します。(文字化け対策)
さて、この対処法を施して問題を解決することができた。
この中で一番強力なのは
「SQLSetNames 1」だ。
あいにく、僕の「mt-config.cgi」には57行目というのが存在していないので、最後の行に SQLSetNames 1 と挿入する。
この意味は
『SQLSetNamesはデータベースへのアクセスする際のエンコードを明示的に設定するものです。値が"1"の場合、PublishCharsetの設定値をもとに、データベースとの接続時のエンコードを指定します。』
これがあるとないとでは雲泥の差だった。
ちなみに、PublishCharsetというのは文字コードの指定。
Movable Type 3.2 マニュアル - 環境設定ファイル (mt-config.cgi)によると、
『デフォルトでは、ユーザー・プロフィールで「表示する言語」に選んだ言語に対応する、HTTPヘッダーの文字エンコーディングを指します。この設定を上書きしたいときは、PublishCharsetを、使用したい文字エンコーディングに設定します。 ただし変更すると、Movable Typeシステムを使うすべてのユーザーとすべてのブログの設定が変更されるので注意してください。』
だそうです。
[]MySQL5以降のサーバーで文字化けする - XREAでMTを!
http://www.xrea-mt.com/xrea-mt/2006/03/trouble-3.html
[]2.テンプレートが文字化けし再構築できない: XREAでMTを!
http://www.xrea-mt.com/xrea-mt/trouble/2/
関連
[]
関連(外部)
[]