MODxのアップデート
バックアップ
データディレクトリをバックアップ
# cp -a /usr/local/www/html /usr/local/www/html20130707 or # tar -czpf /usr/local/www/html20130707.tar.gz /usr/local/www/html/
DBのバックアップ
# mysqldump -u root -p modx > modx20130707.SQL
Update
最新版をダウンロードしておく
解凍して、上書き
# cd /tmp # unzip modx-2.x.x-pl-ja.zip # chown -R www:www modx-2.x.x-pl-ja/ # cp -r modx-2.x.x-pl-ja/* /usr/local/www/html/
管理画面 ⇒ 権限管理 ⇒ 全セッションを初期化 で全ユーザをログアウトさせる。
当該、サイトのsetup1)にアクセスしてセットアップを行う。
マイナーバージョンの変更時にDB変更が入るケースが多いので以下のようにマイナーバージョンごとにUpdateする方が安全。
2.2.x → 2.3.0 → 2.4.0 → 2.5.0 → 2.6.0
確認
サイトにアクセスして確認を行う。
普通のサイトだと、管理画面のほうが不具合が出やすいので2)、そっちを確認したほうが早いかもしれない。
キャッシュが腐るケースも多いので、apacheをrestartしたほうが吉かもしれない。
ajaxを多用しているため、ブラウザ側でもきちんとリロードしないとよく画面が腐る。
Update時のエラー
Linkがおかしくなる
古めのMODxからアップデートしたとき、LINKが動作しなくなっていることがある。
本来以下のように変換されるはずのものが
[[~15]] ↓ www.example.com/alias.html
こんな風に変換されなくなっている
[[~15]] ↓ www.example.com
キャッシュをクリアすると以下のようなエラーが出るはず
Resource URI already exists for resource id = 2; skipping duplicate resource URI for resource id = 28 Resource URI already exists for resource id = 2; skipping duplicate resource URI for resource id = 3 Resource URI already exists for resource id = 2; skipping duplicate resource URI for resource id = 6
これは、AliasをDB上のフィールドから読むように変更された際に、Update時にNULLのままとなっているため生じる。
システム設定のフレンドリーURLをいったん解除してから、再設定すれば治るはず。
snippetが動作しない
coreの下にcacheディレクトリがあるので、これをcache_bakにでもrenameして新しいcacheディレクトリを作成する 再起動。3)
これでもダメで以下のようなエラーがLOGに上がる場合
Error caching script elements/modplugin/
- cacheディレクトリを削除or前述のように新しくする
- setupディレクトリを再度コピーする
- setupを再度行う
これで、大丈夫だと思う
引越
DB作成関連
CREATE DATABASE `database_hoge` CHARACTER SET utf8 COLLATE utf8_general_ci;
grant all privileges on `database_hoge`.* to "ユーザ"@"localhost" identified by 'パスワード' with grant option;
この場合、passなどを変更してる場合は、core/config/config.inc.phpあたりを治す