エンジニアブログ

エンジニアブログ
MT技術情報

www.skyarc.co.jpのMT5バージョンアップに大苦戦・・・

小林 2009年12月17日

本件、MT5のバグでした。詳しくはこちらをご覧ください。

skyarc.co.jpのウェブサイト全般はMT4で管理されていましたが、MT5にバージョンアップしてみました。

結果としてうまくは行きましたが、相当苦戦しました。しかもデータベースがいじれない人には直せない現象も発生しました。

バージョンアップの準備

まずバージョンアップの準備を行います。

  1. データベースのバックアップ mysqldump -uroot -p データベース名 > 任意の名前.sql
  2. mt-staticのバックアップ support/assets_c 、pluginsのインストールしたプラグイン
  3. プラグインのバックアップ plugins以下のインストールしたプラグイン
  4. mt5をサーバーにアップロード、設置(くわしくはインストールマニュアルをご覧ください)
  5. mt-config.cgiをmt4と同一の内容に書き換える
  6. mt-config.cgiにDefaultLanguage jaを追記

データベースは絶対にバックアップを取ったほうがよいです。また、不測の事態のために、いつでも復旧できるようにmt4は残したままが良いでしょう。

バージョンアップ

  1. mt5のcgiもろもろを755に変更
  2. mt.cgiに接続
  3. アップロードの確認画面が表示、アップロード開始
    02.PNG
  4. アップロードが完了すると、ユーザーダッシュボードに移動します
    03.png

動作確認

ここからが鬼門でした。

まず、バージョンアップする前とした後を下記の表で比較しました。

blog_id ブログ名 SiteURL 変更後SiteURL
1 Movable Type・CMSのスカイアークシステム http://www.skyarc.co.jp/ /::/
2 スカイアークについて http://www.skyarc.co.jp/company/ /::/company/
3 スカイアークシステム : 採用サイト    
4 MTエンジニアブログ http://www.skyarc.co.jp/ /::/engineerblog/
8 SKYARC Partner WEB    
15 SAEニュース    
16 SKYARC System Co., Ltd,    
17 キャンペーン    
18 社内ブログ:SKYARC Enterprise IntraBlog http://enterprise.skyarc.co.jp/ enterprise./::/
19 コミュニティ    
21 デモサイト    
23 広報ブログ http://www.skyarc.co.jp/pressroom/ /::/pressroom/
24 スカイアークシステム5周年記念サイト http://www.skyarc.co.jp/5th/ /::/5th/
25 マニュアルデモ    
26 New WebSite http://co.jp/ 新規作成 http://co.jp/
27 New WebSite http://careerblog.jp/ 新規作成 http://careerblog.jp/

MT5からウェブサイトという概念ができたため、MT4からバージョンを上げると、ウェブサイトが存在しないために新規で作成します。それがblog_id=26,27です。そして、ブログのサイトURLはウェブサイトのドメインを引き継ぐためにドメイン部分が::/と置き換わります。

まずcareerblog.jpのほうは「New WebSite http://careerblog.jp/」となっているにたいして、www.skyarc.co.jpのウェブサイト名が「New WebSite http://co.jp/」になっており、正しくドメインがウェブサイト名に反映されていませんでした。

そして、blog_id=1に遷移してみると・・・

05.PNG

え?blog_id=1はそもそもhttp://www.skyarc.co.jpが割あたっていたブログです。なぜこうなるのだろうとデータベースを見てみたら、このブログだけが親とのひもづけがされておらず(blog_parent_idがNULLになっていました)、管理画面からはアクセスできなかったのです。

これは管理画面上からは修正できるものではないので、しかたがないので直接データベースを書き換えた(blog_parent_idを26に書き換えた)ところ、正常に表示されました。

ここで一安心かと思ったら、次の鬼門が待っていました・・・

blog_id=1を再構築してみると、パーマリンクがすべてhttp://co.jp/http://www.skyarc.co.jp/になってしまい、ページのリンクが切れてしまうのです。ブログの公開設定を見ると

09.PNG

と、URLがhttp://co.jp/というわけのわからないURLが当たってました。ウェブサイトの公開設定を見ると、http://co.jp/が指定されていたので、それを

10.PNG

http://www.skyarc.co.jp/と指定しなおしました。するとブログの公開設定もそれに合わせてhttp://www.skyarc.co.jp/に治ってくれて、再構築もうまくいきました。しかし、ここからも問題が多発・・・。

こんどは広報ブログなどが、

12.PNG

なんだそのURL(笑

しかたがないので

13.PNG

こうやって修正。これを全部のブログに対して設定しなおして、やっとこ終了。

実はこれ以外にも細かい修正やらをやっていたので、相当時間がかかり、なんと3回チャレンジして検証も含め合計6~7時間かかりました。

もしかしてwww.付きのURLの移行はうまくいかない?

いま気づいたのですが、MT4でサイトURLをhttp://www.~.co.jpと指定した場合、バージョンアップ時にco.jpだけになってしまうのかな?キャリアブログhttp://careerblog.jp/の移行は問題なくいっていたので、www.とってバージョンアップしたほうが無難なのですかね。こちらは試していないので確信はありません。

ひとつだけ解消していない問題が

実は、blog_id=18がenterprise.skyarc.co.jpとサブドメインを使っているのですが、URLがどうしてもenterprise.www.skyarc.co.jpになってしまいます。これはウェブサイトのドメインにwwwが付いているせいだと思いますが、はずすとなると全体の調整が必要になってくるので(パーマリンクからwww.がなくなるので、全部のブログのサブドメイン欄にwwwを入れなければならなくなる)、面倒なので放置しています。

ただ、www指定しているウェブサイトって多いと思うんですが、それを取らないとブログでサブドメインがまともに使えないのはちょっといただけない気がします。

万が一、不測の事態が発生した場合

もし、バージョンアップが失敗した場合、一度アップグレードを走らせてしまうとサイトURLが/::/の形式に書き変わってしまうので、MT4では読み込むことができません。ですので、失敗したらすぐにデータベースを復元して、MTを切り替えましょう。

総括

結果的にバージョンアップはうまくいったのでよかったのですが、まさかここまで苦戦するとは思ってませんでした。私もMTを2.6からさわって幾多となくバージョンアップをしてきましたが、ここまで苦戦したのは初めてでした。この苦戦が弊社のウェブサイトの特有の問題ならよいのですが、他のサイトをバージョンアップした時にも発生する可能性があるかと思うと、復旧するスキルがないのであれば、いまの段階では気安くバージョンアップはされないほうがいいような気がします。