MagnoliaCMSの5.4へのアップデート

Magnolia

先日 Magnolia CMS を 5.4系 にアップデートしました。
5.3系からのアップデートだったのですが、手順を記します。社内備忘録兼ねてます。

はじめに

先日 Magnolia CMS を 5.4 系にアップデートしました。
幾つか問題が残っていたりするのですが、サイトを閲覧するには十分な状態になったので手順を書いておきます。

5.4 における大きな変更点

5.4系ではそれ以前のバージョンと比べて、以下の変更が発生しています。

  • テンプレートシステムが STK ( Standard Templating Kit ) から MTE ( Magnolia Templating Essentials ) に変更になった。
  • CE ( Community Edition ) 版 では STK は同梱されなくなった。
  • Data モジュールもバンドルされなくなった。

これら変更は Magnolia 5.4 でシステムを新規構築する場合には特に問題になりませんが、以前のバージョンから移行する場合には以下の点に留意してアップデートする必要があります。

  • STK を利用しているコンテンツが存在する場合、単純な移行手順だとコンテンツ移行で問題が発生する。
    STK 自体は5.4系にも提供されているが CE版の場合は標準ではバンドルされていないため。

5.2, 5.3 から 5.4への移行に関しては _how to update to 5.4 from 5.3.x or 5.2.x というドキュメントが公開されているので、以下これを参考に 5.4 にアップデートする手順になります。

環境

環境は以下。

移行前 Magnolia CE 5.3.7
移行後 Magnolia CE 5.4.9

手順

基本的なアップデート手順は、以前の記事 Magnolia CMS のアップデート に記載したものと同様です。
これに上述した STK->MTE変更に伴う手順を追加した形になります。

前準備

Magnolia CMS のアップデート に記載したように、インストール前に以下作業を行っておきましょう。

※各内容に関してはリンク先を参照

  1. バックアップの取得
  2. リリースノートの確認
  3. 必要に応じてJava等も更新
  4. 可能であれば、まずテスト環境で試す

移行先バージョンの取得

SourceForge の Magnolia CMS の ファイル一覧 からファイルを選択してダウンロードします。

今回は CE 5.4.9 版 ( magnolia-community-demo-webapp-5.4.9.war ) を取得します。
代わりに magnolia-community-demo-bundle-5.4.9-tomcat-bundle.zip (tomcat 同梱版) の取得でも構いません。

warファイルの展開

取得したアーカイブファイルを展開します。war ファイルも zip 形式なので、jar コマンドを利用しなくとも、拡張子を変更する事でzipファイルと同様に展開可能です。

ライブラリの更新

WEB-INF/lib ディレクトリ以下にある jar ファイルを更新します。
現バージョンのjarを削除してから、新バージョンのjar をコピーします。

STK, Data モジュールの取得

上述のとおり、STK, Data モジュールが同梱されなくなったので、これらを取得してライブラリに追加する必要があります。

※各モジュールのバージョンは移行先のバージョンによって変わります。
下表では5.4.9で導入/動作確認できたバージョンを記載しています。

モジュール5.4.9で導入したバージョン
magnolia-dam-compatibilitymagnolia-dam-compatibility-2.1.7.jar
magnolia-module-datamagnolia-module-data-2.3.5.jar
magnolia-module-device-detectionmagnolia-module-device-detection-1.1.jar
magnolia-module-standard-templating-kitmagnolia-module-standard-templating-kit-2.9.5.jar
magnolia-theme-popmagnolia-theme-pop-2.9.5.jar
mobiledetectmobiledetect-1.1.1.jar

Update プロセスの実行

Apache Tomcat が起動したら、Webブラウザにてサイトへアクセスします。
Magnolia CMSのインストール の際と同様、Webブラウザから Magnolia のURLにアクセスします。

上記作業後の初回アクセス時にはアップデート処理が実行されます。 Magnolia installation and update 画面が表示されるので、 [ Start install/update ... ] ボタンをクリックしてください。

確認

アップデートが完了したら、Magnolia の動作確認を行います。
今回のアップデートでは以下の問題が見つかりました。

  • 幾つかリソースが日本語化されていない。
    前に日本語化した部分のいくつかが日本語化されていない状態になっていました。具体的には検索結果の前/次ページリンク辺り。
  • RSSフィードがきちんと生成されなくなった。
    RSSフィード使ってくださっている方、ごめんなさい。
  • 多言語対応が正しく動作しない。
    多言語でのコンテンツ編集/公開が正しく動作しない問題が発生していました。

多言語設定

上記問題のうち、多言語対応の問題に関しては、一部英語化したコンテンツ等もあるため、対応を実施しました。
以下手順を示します。

※残り二つに関しては余裕があったら対応するつもり

参考 : Language configuration

  1. Magnolia の管理コンソールから [設定] ボタンをクリック。
  2. server/i18n/authoring に移動し、以下を設定します。
    プロパティ
    enabledtrue (Boolean) である事を確認
    classinfo.magnolia.ui.framework.i18n.DefaultI18NAuthoringSupport (String) に変更
  3. server/i18n/content に移動し、以下を設定します。
    プロパティ
    enabledtrue (Boolean) を設定
    ※enabled プロパティがなければ追加
    classinfo.magnolia.module.site.i18n.SiteI18nContentSupport (String) に変更
  4. Tomcat 再起動

    上記編集を行うと以下エラーが出力され何もできなくなるので Tomcat 再起動する。

    java.lang.ClassCastException: info.magnolia.cms.i18n.DefaultI18nContentSupport cannot be cast to info.magnolia.module.site.i18n.SiteI18nContentSupport
    

    再起動後復活するはずだが、( 編集ミス等で ) エラーのままの場合、Repositoryを復元してから再起動してやり直す。