Magnolia CMS のアップデート

How to update Magnolia CMS

Magnolia CMS のアップデート手順に関して説明します。
バージョン 5 系 における手順になります。

はじめに

夏休み明けで、まだブルーな気分のまま仕事がはかどらないという方も多そうな今日このごろ、皆様いかがお過ごしですか?

私も先週夏休みを頂いて、久しぶりに実家で兄弟全員集合してきました。
娘は従妹とかなり遊んで、休みを満喫できたようす。

2014/8/13付けで Magnolia の 5.3.2 が公開されたので、今回は Magnolia のアップデート手順に関して書きます。

※ここで説明する手順は Magnolia 5.x から 5.3.2 へアップデートする際の手順になります。

※写真: 写真素材ぱくたそ - Magnolia はモクレン ( 木蓮 ) の事。

環境

環境は以下になります。

OS CentOS 6.5
Magnolia (アップデート前) 5.2.3 CE ( Community Edition )
Magnolia (アップデート後) 5.3.2 CE ( Community Edition )

今回実施したアップデート前後のバージョンは上記の通りですが、同じ 5.x 系 間のアップデートであれば同様の手段でアップデートできるはずです。
( 以前も同様の手順でアップデートしています。 )

注意点

バックアップを取る

アップデートを行った場合、設定によっては独自に編集したテンプレート等の内容が上書きされてしまう可能性があります。

作業前には適宜バックアップ作業を行ってください。

デフォルトの Magnolia CMS においてバックアップを行う場合、Magnolia の Webアプリケーションが格納されているディレクトリ ( Apache Tomcat の場合 webapps ディレクトリ下に存在 ) をバックアップすれば OK です。

※JCRのバックエンドにMySQL等の外部データベースを利用するような環境の場合はこの限りではありません。

作成したバックアップで問題ないか確認する場合、以下手順で確認できます。

  1. 稼働中のMagnoliaで適当にコンテンツを編集
    問題があっても修正可能なレベルの編集にとどめましょう。
  2. バックアップしたディレクトリを上書きコピー ( リストア )
  3. 編集前の状態に戻るか確認

まずテスト環境で試す

可能であればテスト環境でアップデートして問題ないか確認しましょう。
編集用 / 公開用インスタンスを分けている場合、編集用でアップデートを適用して問題がなければ公開用インスタンスにも適用するという手順を踏むとよいでしょう。

リリースノートを確認する

リリースノート ( Releases - Magnolia5 からアクセスできます ) には、今回のバージョンで変更になった部分や、更新手順(追加作業の要否)等が記載されています。確認しておきましょう。

必要に応じてJava等も更新する

Known issues のトップに記載がありますが、環境によっては、Java仮想マシンでセグメンテーション・フォールトが発生するそうです。
必要に応じて Java や Apache Tomcat 等も更新しましょう。

※セグメンテーション・フォールトの問題ではないが、アップデート後に別の問題が発生し、Magnolia のバグかと思って調査していたところ、Javaのバージョンアップデートで問題が解消した事があります。

手順

以下、アップデート手順を示します。
前述の通り、バックアップ作業が必要な場合、事前に行っておいてください。

最新版の取得

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

以下 magnolia-bundled-webapp-5.3.2.war をダウンロードしたものとして話をすすめます。

war ファイルの展開

ご存じだとは思いますが war ( web application archive ) ファイルは Java のWebアプリケーションをパッケージしたもので、zip形式で圧縮されています。
java に付属している jar コマンドを利用して以下のように解凍するのが本来の手順かと思いますが、

$ jar xf magnolia-bundled-webapp-5.3.2.war

zip 形式なので、拡張子を zip に変更する事で Windows のエクスプローラ や unzip コマンド等を利用して解凍できます。
何れかの方法で適当なディレクトリに解凍/展開してください。

展開後のディレクトリ/ファイル構成は以下のようになっています。

ディレクトリ/ファイル構成

ライブラリの更新

Magnolia 5 をアップデートする場合、Java のライブラリファイルである jar ファイルを更新すれば、Magnolia の更新が行われます。
以下の手順で更新します。

※jar ファイルは上記展開先の WEB-INF/lib ディレクトリ以下に存在します。

  1. Apache Tomcat を停止
    先ず Tomcat を停止します。
  2. 現バージョンの jar ファイル を削除
    現バージョン の jar と 新バージョンの jar ファイルは別名のファイル ( バージョン番号部分が異なる ) になっています。
    新旧ファイルが混在するとコンフリクトが発生する可能性があるため、現バージョンのファイルは削除します。

  3. 新バージョンの jar をコピー
    新バージョンのjarファイルを WEB-INF/lib ディレクトリにコピーします。
  4. Apache Tomcat の再起動
    ライブラリを置き換えたら Tomcat を再起動します。

Update プロセスの実行

Apache Tomcat が起動したら、Webブラウザにてサイトへアクセスします。
Magnolia CMSのインストール の際と同様、Webブラウザから Magnolia のURLにアクセスします。
http://:8080/<コンテキスト名>/

  1. 上記作業後の初回アクセス時にはアップデート処理が実行されます。
    以下のような画面が表示されるので、 [ Start install/update ... ] ボタンをクリックしてください。 Magnolia CMS update
  2. アップデート作業が完了すると、画面右上に [ Start up Magnolia ... ] ボタンが表示されるのでクリックします。
    サイトトップ ( 編集用インスタンスの場合には管理画面トップ、公開用インスタンスの場合にはサイトトップ ) にアクセスするので、更新後のサイトに問題がないか確認してください。

※ちなみに、今回の 5.3.2 へのアップデートでは 5.2.3 では、きちんと表示されていた画像(dam)のリンク切れが発生。
フォーラムで問い合わせたら "That's indeed an oversight" ( 「本当うっかりしてたぜ!」 ) だって。
5.3系へのアップデートは次のリリースまで持越しになりました。

まとめ

Magnolia 5 の場合、基本的 にはjar ファイルをリプレースして、Apache Tomcat を再起動する事でアップデートが行えます。

テンプレートをカスタマイズしていた場合でも、[ 自動更新 ] のチェックをしない設定にしておけば、カスタマイズしたテンプレートが勝手に自動更新される事もありません。

何らかの問題が発生した場合には、トラブルシューティングは必要になりますが、特に問題も発生しない場合には、バックアップ作業込でも15分程度でアップデートが完了します。

5 の初期バージョンから比較して Forum モジュール等新規に追加されているモジュールもあるので、必要に応じてアップデートを行ってみるとよいかと思います。