MODxのアップデート処理について

部品の使い方や応用ノウハウ
アバター
yama
管理人
記事: 2853
登録日時: 2009年7月29日(水) 02:50

MODxのアップデート処理について

投稿記事by yama » 2010年5月25日(火) 15:45

MODxをアップデートしたいが、失敗してシステムが動かなくなることを恐れてためらう人は多いと思います。少しでも安心してアップデート作業ができるよう、技術的な側面から解説します。

MODxがアップデートの時に行なう処理は主に
・コアファイル一式の更新
・グローバル設定の新規項目を追加
・拡張機能一式のファイル更新
・拡張機能本体(データベース内)の更新
この4つです。

ファイルの更新に関しては、FTPクライアントが安定して動いていれば問題ないと思います。転送ミスが時々報告されますが、その場合はディレクトリごとに小分けに転送するなどの工夫が必要になります。FileZillaなどはわりと安定していると聞くので、調子よく使えるクライアントを探すのもテだと思います。また、アーカイブの解凍に失敗してファイルが一部破損しているケースも昔は時々聞きました。

グローバル設定の新設定追加は、実はインストーラを使う必要はありません。グローバル設定の設定画面を一度更新すれば、新設定が追加されます。データベースの構造に変更を加えるわけではないので、わりと安全な処理です。

拡張機能まわりは問題が発生することが時々あります。MODxでは、拡張機能のインストールのために複雑な処理を行なっており、この部分に関してはまだ開発が安定していません。拡張機能のインストールに失敗すると、たとえば投稿画面がWYSIWYGで操作できなくなったり、画像ファイルのアップロード・貼り付けができなくなったりします。ManagerManagerのアップデートに失敗すると、投稿画面を開くことができなくなることもあります。

拡張機能のインストールに失敗すると、場合によっては管理画面にログインできなくなることがあります。これはシステム側の制限によるもので、MODxでは、アップデート操作を開始すると管理画面操作をシャットアウトする仕組みになっています。無事にアップデートできたら、このロックを解除してログインできるようになります。アップデートに失敗すると、タイミングによっては、ロックが解除されないまま残ってしまいます。すると管理画面にログインできません。

このロックは「installProc.inc.php」という名前で/assets/cache/ディレクトリ内に一時的に生成されるファイルです。このロックファイルを削除すると管理画面にログインできるようになります。ロックファイル内にはインストール操作時刻が記録されており、5分たてばロックとしては無効となるため、しばらく待つのもよいかと思います。「いろいろやってるうちにログインできるようになった」というケースは、試行錯誤しているうちに5分経過したケースが多いのではないかと・・管理画面にログインすると、このロックファイルは自動的に削除されます。

拡張機能のインストールに失敗しているので、管理画面にログインした後は、必要に応じてそれらの拡張機能を手作業でアップデートする必要があります。

MODxのシステム本体はシンプルな作りになっており、わりと安心してアップデートできるようになっています。何か問題が起きた時は、拡張機能から順に確認していくとよいでしょう。特にプラグインは問題が起きやすいです。同梱されているものとしては、TinyMCE・ManagerManager・QuickManager・SearchHilightなどがあります。これらを順に無効にしていくと、問題点を見つけやすいです。

6月1日にリリース予定のMODx1.0.4J(1.0.3r2?)では、インストーラの改良を行なっています。安定動作を図るとともに、MySQL4.0環境へのインストールにも対応しました。
Ryo
メンバー
メンバー
記事: 24
登録日時: 2009年8月25日(火) 13:19

Re: MODxのアップデート処理について

投稿記事by Ryo » 2010年5月26日(水) 15:56

こんにちわ。

まさに、私がそのためらっている状態です :?
新規インストールの記事はいろいろあっても、アップデート方法を解説した記事は見あたらなかったので、参考になります。

便乗質問になりますが・・・
1. 0.9.6から1.0.4へアップデート予定で、だいぶバージョンをはしょることになります。それによる弊害・注意点などあれば教えてください。
2. 使用している拡張機能にどうしても不具合が出た場合、0.9.6へ戻す、ということは簡単にできるのでしょうか?
アバター
yama
管理人
記事: 2853
登録日時: 2009年7月29日(水) 02:50

Re: MODxのアップデート処理について

投稿記事by yama » 2010年5月26日(水) 16:53

コメントありがとうございます。それなりにMODxに慣れてる人でもアップデートを躊躇してるケースはよく目にするので、こういうことは多い気がします。

0.9.6からだと、エンコードの扱いが変わっています。なので、場合によってはconfig.inc.phpに一行追記しないと文字化け状態で出力されてしまいます。で、その状態のまま初回の管理画面アクセスでグローバル設定を更新するとサイト名などが化けてしまいますね。ただしこの場合はアップデートの時点でエンコード設定に引っかかって先に進みにくいはずですが。

アップデート前にデータベースのバックアップをとってあれば、もし問題が発生しても解決できると思います。

今のところは、もしアップデートに問題が生じたら手作業で直すしかないですが、できればconfig.inc.phpの状態チェックと、必要な場合はデータベースのエンコード変換までインストーラ側で面倒を見ると安心ですね。もしMODx以外でも同じデータベースを使っているとまずいかもしれませんが。

拡張機能は、プラグインやモジュールで互換性の問題が発生することが多いと思います。データベースの構造は変わらないので、コアファイル一式を元のものに上書きするだけで0.9.6に戻すことができます。0.9.6の頃はファイル数が多いので、転送ミスには気をつけたほうがよいかもしれないです。

“事例・活用例” へ戻る