MODX最新版へのアップデート

WordPressほど頻繁ではないですが、MODX Evolution(以降、単にMODXと記します)も機能追加,バグフィックスなどのためのアップデートがあります。特にセキュリティ面でのバグフィックスが出た場合は、早く最新版に更新することが望ましいです。
しかしながら、残念なことにMODXはWordPressのようにアップデートが出たからといって自動的に更新してくれる仕組みを持っていませんので、更新は自分で行う必要があります。
以下ではMODXを1.0.23Jにアップグレードする方法の例をご紹介します。
今回、以下の方法でMODX 1.0.21J, および1.0.22Jを1.0.23Jにアップグレードしました。
※.MODX Japan公式サイトに「アップデート方法」の情報もあります(やや古いですが...)
前準備
ログの確認
アップグレード前に、現時点でエラー等の気になるログがないか確認しておきます。
問題のあるエラーが発生している場合は、アップデート前に解決しておきましょう。
ログの確認が終わったら、ログをクリアしておくことをオススメします。
キャッシュの削除
MODXサイトのキャッシュも削除しておきましょう。
独自更新箇所の把握
MODXを利用する上で、標準で添付されてくるプラグイン/スニペット、およびコア部分を独自に変更していることもあるかと思います。
MODXをアップグレードすると、それら独自に変更していた箇所も上書きされてしまいますので、あらかじめ変更箇所を把握しておきます。
変更箇所を確認するフォルダは「assets」と「manager」の2つで良いでしょう。
以下にコマンドラインで「インストール後に変更したと思われる」ファイルを検索する例を示します。
$ find ./assets/ -type d -name cache -prune -o -type f -newermt "2019-06-24" -and ! -newermt "2020-07-19" -ls
25298448 16 -rw-r--r-- 1 apache apache 4114 2月 19 11:25 ./assets/plugins/tinymce/js/mce_init.inc.js
25298446 12 -rw-r--r-- 1 apache apache 1860 2月 17 18:04 ./assets/plugins/tinymce/js/xconfig.js
:
$ find ./manager/ -type f -newermt "2019-06-24" -and ! -newermt "2020-07-19" -ls
:
-type d -name cache -prune でcache/フォルダを検索対象からはずしています(予めキャッシュを削除していれば不要かも)
-newermt にMODXの現在のバージョンのファイル/フォルダの日付+1日を指定します。
例ではMODXの現在のバージョン(1.0.22J)の日付(2019年6月23日)の+1日としています。
- MODXの現在のバージョンのファイル/フォルダの日付はls -lコマンドでファイル/フォルダの一覧を表示すると把握できます。
-and ! -newermt に今日以降の日付を指定します。
例では2020年7月19日に実施したので「! -newermt "2020-07-19"」としています。
- findコマンドの詳細説明は割愛します。ネットの資料等で調べてみてください。
現在のMODXをバックアップ
現在稼働しているMODXサイト、およびデータベースをバックアップしておきます。
MODX最新版のダウンロード〜反映
最新版のダウンロード&展開
MODX Japan公式サイトから最新版をダウンロードします。
以下ではサーバにSSHでログインし、サーバ上で直接MODX最新版をダウンロード&展開する例を示します。
/usr/loca/src ディレクトリに移動します
# cd /usr/local/src
以前の展開ディレクトリが残っていれば削除しておきます(最新版の圧縮ファイルを展開すると同名ディレクトリを作成するため)
# rm -rf evolution-jp-master
ダウンロードします
# wget https://github.com/modxcms-jp/evolution-jp/archive/master.zip
展開します
# unzip master.zip
- master.zipではなく、MODX Japan公式サイトにある「modz-1.x.zip」ファイルのほうをダウンロードした場合は、展開するとディレクトリを作成しないので注意!
現在のMODXサイトに反映
ダウンロード・展開したものを現在のMODXサイトに上書きします。
PC上でMODX最新版を展開し、FTP/SFTPなどでサーバ上のMODXサイトに上書きする方法が確実ですが、SSHログインしたサーバ上からコマンドラインで反映する方法を以下に示します。
# \cp -rpf evolution-jp-master/* /var/www/hoge
- evolution-jp-master/ディレクトリ以下に展開された最新版MODXファイルを、現在のMODXサイト「/var/www/hoge」に上書きコピーします。
「/」をつける/つけないを上記の通りにしないとうまく上書きコピーされないので注意。 - 「cp」コマンドの前に「\」をつけることで上書き確認メッセージを表示させなくします。
独自変更点を反映
「前準備」で把握しておいた独自変更したファイルの変更箇所を、最新版のファイルに反映させます。
ここはバックアップしておいた独自変更したファイルを参照しながら手動で反映させるしかありません。
アップデート処理の実行
ブラウザから「http(s)://MODXサイトのインストール先/install/」にアクセスし、アップデート処理を実行します。
以下のようなページが開きますので、[進む]をクリックします。
アップデートが成功したら「インストールディレクトリを自動的に削除する」のチェックが入っていることを確認して[インストール終了]をクリックします。
ログインページに移るのでログインします。
以下のように「更新」を促すページになりますので[更新]ボタンをクリックします。
更新が正常終了すると通常のページに戻りますので、右上のバージョン番号が今回アップデートしたバージョンになっていることを確認します。
サイトの全ページを表示、フォーム送信などを実行し、問題ないことを確認します。