modx をコマンドラインからアップグレードする。

現在 Official にリリースされているmodxのバージョンは2.2.5-pl だが、結構バージョンアップが煩雑に行われていて、そのたび、バグが取れたり、使い勝手がよくなってきていて、ますます気にいってきたりするわけだけれども、ファイルサイズもだんだんと大きくなってきており、アップグレードするたびに、zipファイルをまずは自分のパソコンにおとしてきてから解凍し、外部のhost server にすべてをftp で転送するとなると、やたらに時間がかかってしまう。

しばらく前にhost 側にsshでログインし、コマンドラインからファイル展開を直接行う方法を説明しているサイトを見つけ、この方法を使って重宝しているので、ここに記しておく。

オリジナルの英文ページはこちら

上記ページはEvoluation 用に記述してあるが、revolution でも作業は同じ。

まずはホストサーバーのssh アクセスを有効にしてコマンドラインを使えるようにしておくのが第一歩。 自分の使っているホストはコンソールパネルからsshを有効にするだけで、コンソールパネル用のユーザーネームとパスワードでアクセスできるようになった。パソコンがLinux であれば、ターミナルから直接sshを起動、 Windows の場合はPuTTYとか、CygWinなどを実装しておく必要がある。

ssh username@server.com

First things firstで、まずは 既存のmodxファイルをサーバーのrootにバックアップしておく。 sshでログインすると最初はrootフォルダーにいるのだが、そのrootの下にpublic-htmlというフォルダーがあり、web アクセスができるのはこのpublic-html フォルダーから下の階層のみという仕組みになっているのを利用してバックアップをweb からはアクセスできないrootフォルダーにzipして保存してしまおうというわけ。(下のコマンドでは’~’ でroot指定している)

zip -r ~/my-modx-folder.bk.`date "+%Y.%m.%d.%H.%M.%S"`.zip my-modx-folder

これでrootフォルダー上に my-modx-folder.bk.date_of_backup.zip というようなアーカイブファイルができる。

次にmysqlのデータベースも念のためバックアップ。(使っている環境によって異なると思うので説明省略)

次にmodxの最新版をダウンロードしてくる。
これはmodxの最新版のダウンロードのページに行って、ダウンロードのリンク先をコピーし、これをターミナル画面上のwget コマンドに張り付けることになる。

wget path-to-the-latest-modx.zip

これをサーバー内部で解凍

unzip modx-2.2.5-pl.zip

modx-2.2.5-pl というフォルダが作成され(何千という)ファイルが展開される。

これをmy-modx-folder にコピーするのは cp -r コマンドを使うわけだが自分の環境ではcp にAlias がかかっているらしく、f parameter をつけてやらないといちいち上書きしますか、ときいてくるはめになる。
cp -rf modx-2.2.5-pl/* my-modx-folder
数分でファイルの展開が終了する。
次にmy-modx-folder/core/config/config.inc.phpのパーミッションを変更して書き換え可能にする

cd core/config
chmod 666 config.inc.php

あとはブラウザでsetupを実行するだけ。

my-domain.com/setup

 

7~8分で全作業が終了する(はず)