Joomla! 1.6をマイグレーションしてインストール

カテゴリ: WEB、WEBシステム関連 / 公開日: 2011年1月20日(木曜)02:42 / 投稿者: Tom Goodsun

Joomla!の最新バージョン1.6が正式にリリースされました。ひとまずこのサイトではなく、雑多なウェブ環境として使っているローカルのVMwareで移行手順とかを確認しておこうかなと思い、Joomla! 1.5から1.6へのアップグレードを決行してみました。

まずJoomla!を知ってる方なら当然のことだと思うが、バージョン1.6ではPHP5完全対応となっており、PHP4では動作しません。よって、レンタルサーバー何かを借りている場合は、Joomla!が動かないことがあるかもしれません。

ちなみに私のVMwareではCentOSPHP 5.2.13とか入れてるので余裕です。

データ構造自体も変わっているので、単純にソースコード入れ替えれば終わり! ってなことがないので過去バージョン(1.5)から1.6へのアップグレードは少し手間です。誰かいい方法を教えてくれ!

まぁ、日本語の記事とかもいろいろありましたが、本家のトピックスとかも見て以下の動画で紹介されている方法が一番現実的かなって感じです。hayatosさんで紹介されているのもこの方法で、さらに理解が増しますので御覧ください。

つまり、1.5にjupgradeというエクステンションをインストールして、自動でアップグレードしようって感じです。

  1. サイトのルートにoldsiteというディレクトリを作って、現在のJoomlaサイトのファイルをすべてコピーしてバックアップ。
  2. jupgrade(Joomla Extensions Directoryはこちら)をダウンロードして、管理画面でアップロード・インストール。
  3. 管理画面のメニューバーから「Component」>「jupgrade」を選び、「START UPGRADE」をクリック。
  4. インストールが終わるとサイトルートに「jupgrade」というディレクトリが出来ているので、その内容をサイトルートディレクトリに配置する。

この作業をマイグレーション(migration)といい、まさしく「移行」とか「変換」とかって意味らしい。上記の手順でやると、勝手にJoomla! 1.6をダウンロードして、インストールした状態にまでしてくれます。

いろんな記事で紹介されている通り、1.5のDB自体には変換はかからず、1.6用のテーブルとかを追加して、1.5のデータから移行してくれそうです。なので、ほとぼりが覚めたら1.5のテーブル消してしまった方がいいですね。

 

じゃあ早速サイトを見てみよう・・・アレっ?

見えてるけど、記事がおまへん。テンプレートの仕様とか変わってるだろうから、その関係だなと思い、とりあえず管理画面にログイン!

 

アレっ? でけへんぞ! なんでや!?

 

結局データベースのぞくことに。1.6はデフォルトで「j16_」ってテーブルプレフィックスが付きます。で、j16_usersってテーブルを見てみるのレコード0件。その他のデータとかもうまく移せてないみたい。マイグレーション不完全です。

バックアップを戻して、何回か試してみてわかったのは、以前も気になったこのテーブルプレフィックスの件。実は私はデフォルトではなくカスタマイズしているのですが、どうやらこれが原因しているみたいです。こんなトピックスがありました。

ということで、プレフィックスを1.5のデフォルトの「jos_」から変更している場合はデータのマイグレーションはできないみたいです。これは困る、データ構造が完全に変わっているので、ちょっと面倒なことになる。手動で移すなんてありえません!

 

ということでエクステンションをハックしました。

/administrator/components/com_jupgrade/includes/jupgrade.class.phpの92行目をカスタマイズしたプレフィックスに変えます。

//$this->config_old['prefix'] = "jos_";
// ↓変更
$this->config_old['prefix'] = "mysite_";

上記の赤文字の部分を環境に合わせて変更します。ってかこれ、「絶対直値指定しなくてもとれるよな」とか思いましたが面倒くさいので、直値っときましたw。

で、これでうまいこと行きました。

 

・・・・・・まぁ7割ぐらいは、、、

しかし、何かいろいろ勘違いをした移行をしてくれているみたいで、テンプレートマネージャーにいたっては1つのテンプレートにつき、同じレコードが3件存在する。まぁ記事が完全に移行できないよりはマシと割りきって、ひとまず使ってみることにしたいと思います。

ちなみにフロントエンドではまだ見えていません。テンプレートやモジュール、コンポーネントも使い方とか仕様とかも変わってるみたいなので、地道にテンプレートをつくるところをやりたいと思います。

あと、管理画面でまだ不具合が多いみたいです。モーダルが動かなかったり、処理完了のメッセージの背景画像がリピートしてたり、、、