Joomla! Tips

Joomla!1.5から2.5へ移行(アップグレード)する方法

Joomla!1.5のサポートは2012年の4月で終了します。もしセキュリティ関係の問題がみつかっても、これ以降は修正プログラムが配布されません。いわゆる「寿命」を迎えるわけです。また1.5のサポート打ち切りを受けて、エクステンションの開発者たちが1.5への対応を打ち切る可能性があります。まだ2.5に移行していない方は、早々に移行を検討しなくてはなりません。

1.5から2.5への移行は「ファイルを上書きして終わり」のような簡単なものではありません。この記事ではJoomla!1.5から2.5へサイトを移行する方法を紹介しますが、環境によってはうまくいかないかもしれませんので、参考程度に読んで下さい。もし英語が読める方は以下のドキュメントの方が詳しいです。

移行前の確認事項

移行作業を行う前に以下の点を確認しておきます。

Joomla!1.5の最新版になっているか

Joomla!1.5のバージョンが古い場合、正常に移行できないことがあります。1.5の最新バージョンへアップグレードしておきましょう。この記事を書いている時点では1.5.25が最新です。アップグレード方法は以下を参考にして下さい。

エクステンションが2.5に対応しているか

1.5で使用していたエクステンションは、そのままでは2.5で使用できません。配布元から2.5対応版のエクステンションを入手する必要があります。エクステンションが2.5に対応していなければ、2.5対応版がリリースされるまで待つか、2.5に対応しているエクステンションに乗り換えることも検討しなければなりません。

テンプレートが2.5に対応しているか

1.5で使用しているテンプレートが2.5でも使用できるか確認します。対応していない場合、2.5に対応するようテンプレートを書き換えるか、2.5対応テンプレートへの変更も検討します。

JUpgradeのダウンロード

JUpgradeとは、1.5から2.5へ移行するためのコンポーネントです。このコンポーネントは移行元の1.5サイトにインストールして使用します。実行するとJUpgradeがJoomla!2.5を自動でダウンロードし、1.5サイトのサブディレクトリにデータを移行した状態の2.5サイトを自動で作ってくれます。1.5のサイトは上書きされませんので、もし失敗しても元のサイトに影響しません。K2やKunenaなどのメジャーなエクステンションもデータ移行できるようです(試してはいません)。

JUpgradeは以下のページからダウンロードできます(ユーザ登録要)。

JUpgradeのインストール

JUpgradeを移行元のJoomla!1.5にインストールして下さい。インストール方法は通常のエクステンションと同じです(エクステンション→インストール/アンインストールから)。

Mootools Upgrade プラグインの有効化

JUpgradeが正しく動作するには、移行元のサイトでこのプラグインを有効にしておく必要があります。「エクステンション」→「プラグイン管理」から、「System - Mootools Upgrade」を有効にしてください。

JUpgradeの設定

「コンポーネント」→「JUpgrade」を開き、画面右上の「パラメータ」をクリックして設定を行います。

設定が必要と思われるのは以下の箇所です。

  • Prefix for old database
    Joomla!1.5で使用しているデータベースのプリフィックス(接頭辞)です。1.5のインストール時に変更していなければ「jos_」だと思います。変更している場合はそのプリフィクスを入力しておきます。
  • Skip 3rd party extensions
    サードパーティエクステンションを移行するか。「はい」に設定すると移行をスキップします。

JUpgradeの実行

「コンポーネント」→「JUpgrade」を開き、「START UPGRADE」を押せばアップグレード処理が始まります。
17to25migration 01

Joomla!2.5がダウンロードされ...
17to25migration 02

データの移行が進み...
17to25migration 03

最後に「Joomla 2.5 Upgrade Finished!」と表示されたら成功です。「サイト」をクリックします。
17to25migration 04

Joomla!2.5のフロントエンドが表示されます。場合によってはぐちゃぐちゃに表示されるかもしれません。これは1.5のテンプレートで使用していたモジュールポジションと、2.5のデフォルトテンプレートである「Beez_20」のモジュールポジションが異なる為です。
17to25migration 05

管理画面へは、http://ドメイン名/jupgrade/administrator からアクセスできます。ユーザ名とパスワードは、1.5のものがそのまま使えます。

ログインしたら、記事やバナー、リンク集、モジュールなどが正常に移行されていることを確認して下さい。

日本語言語ファイルのインストール

インストールされたJoomla!2.5には日本語の言語ファイルが含まれていません。Joomla!じゃぱんより2.5用の言語ファイルをダウンロードしてインストールして下さい。インストールはExtensions→Extension Manager→「参照」を押して言語ファイルを指定→Upload & installから行います。

言語ファイルをインストールしたら、サイトを日本語に切り替えます。

Extensions→Language Managerを開き、「日本語」にチェックを入れ「Default」のボタンを押します。次に「Installed - Administrator」をクリックし、同じく「日本語」にチェックし「Default」のボタンを押します。これでフロントエンド/バックエンド共に日本語へ切り替わりました。

テンプレートのインストールとレイアウト調整

必要に応じて2.5用のテンプレートをインストールし、モジュールポジションやレイアウトを調整します。テンプレートが変わるとポジション名も変わっていることも多いので、モジュールを再配置したりする必要があります。ここら辺の作業が結構大変かもしれません。

サードパーティエクステンションの移行

ここが一番の悩みどころだと思います。

jUpgradeは一部の有名なコンポーネントは移行してくれるようですが、それ以外は手動で移行作業を行わなければなりません。

まずモジュールとプラグインについてですが、これらは素直に再インストールしたほうがよいです。設定量も少ないはずです。

問題はコンポーネントです。コンポーネントに登録されたデータが少なければ、手動で再登録したほうが楽です。もし数百~数千のデータが登録されているとなれば、手動で再登録するのは骨が折れます。

そこで何らかの移行手段が必要になります。これといった正解はないのですが、私が行った手段を参考までに記載しておきます。

1.5と2.5で同じコンポーネントを使う場合

開発元から1.5用/2.5用の両方のコンポーネントが配布されている場合です。この場合、バージョンが違えども、1.5のデータベーステーブルと2.5のデータベーステーブルの構造がほとんど同じ可能性があります。もし同じであれば、1.5コンポーネントのテーブルをエクスポートし、2.5のデータベースにインポートすれば簡単に移行できる可能性があります。具体的な手順としては

  1. phpMyAdminなどを使用して1.5と2.5のテーブル構造が同じか確認する
  2. 同じであれば1.5コンポーネントで使用しているテーブルをSQLでエクスポート
  3. エクスポートしたSQLファイルをテキストエディタで開き、テーブルのサフィックス(接頭辞)を2.5のものに置換
  4. 2.5サイトにコンポーネントをインストール
  5. 2.5コンポーネントのテーブルを全削除
  6. エクスポートしたSQLファイルをインポート

これだけでうまくいく可能性があります。ちなみに当サイトのリンク集で使用しているJV-LinkDirectoryというコンポーネントは、この方法で移行できました。

1.5と2.5で異なるコンポーネントを使う場合

1.5で使用していたコンポーネントが2.5に対応せず、異なるコンポーネントに乗り換える場合です。この場合、単なるテーブルのエクスポート/インポートだけでは対応できません。方法としては色々あると思いますが、個人的に実施したのはCSVファイルでの移行です。コンポーネントが異なるとはいえ、機能は似通っていると思いますので、旧コンポーネントのデータと新コンポーネントのデータ構造も似ているはずです。このため、旧コンポーネントのデータをCSVでエクスポートし、そのデータを新コンポーネントのテーブル構造にあうよう加工すれば、移行も可能なはずです。

私の場合この方法でBilletsというヘルプデスクコンポーネントをRsTickets!Proへ移行しました。完全な移行ではありませんが、手作業で移行するよりはかなりマシです。

どうしても無理な場合は、最悪手作業でのデータを移行する必要があります。

サイトの再配置

ある程度移行作業が進めば、本番環境へJoomla!を再配置します。現在はhttp://ドメイン/jupgrade/でアクセスできますが、これをhttp://ドメイン/でアクセスできるようにします。移行元のJoomla!1.5は削除して、移行後の2.5と入れ替えるわけです。

入れ替え作業はAkeeba Backupを使うと簡単です。Akeeba Backupについては下記ページを参照のこと。

細かく書くと非常に長くなるので、流れだけ書いておくと

  1. 何らかの原因で再配置に失敗しても元に戻せるよう、Joomla!1.5サイトをAkeeba Backupでバックアップする(重要!)。バックアップしたjpaファイルは必ずダウンロードしておくこと。この後の手順で消してしまう事があるため。なおダウンロードは必ずFTPで行う事!ブラウザからダウンロードすると、正しくダウンロードしたように見えてファイルが壊れていた、なんてことが起こりえます(経験あり)。
  2. 移行作業後のJoomla!2.5サイトをAkeeba Backupでバックアップしてjpaファイルを作る。このファイルも必ずダウンロードしておくこと。
  3. Joomla!1.5サイトのファイル/フォルダを全削除(必要に応じてjupgradeのフォルダも)
  4. Joomla!1.5サイトで使用しているデータベースのテーブルを全削除(心配なら今消さないでも正常移行を確認した後に消しても大丈夫。)
  5. 2で作成したjpaファイルとkickstart.phpを公開ディレクトリにアップロード
  6. http://サイトのURL/kickstart.phpを実行し、リストアを進める
  7. 完成

といった感じになります。

後は最終的な仕上げとして、レイアウトの崩れやコンポーネントの動作を確認して終了です。無事に移行できることを祈ります。

【Joomla!が使えるレンタルサーバー】
 

タグ: バージョンアップ, 移行/マイグレーション

自分用のリンク

ちょくちょくアクセスするページ。自分用です。

お仕事募集

Joomla!に関するお仕事の依頼、エクステンションの翻訳、トラブルシューティングなどございましたら、こちらからお問い合わせください。