Movable Type 6.3.2 リリースノート
セキュリティアップデート
OpenSSL ライブラリのアップデート(クラウド版)
OpenSSL から発表されている複数の脆弱性に対応しています。詳細は以下のリンクをご参照ください。
新機能・改善された機能
ログ機能の強化
これまでも、管理画面のログ一覧からログを CSV ファイルに出力することはできましたが、Movable Type 6.3.2 では、リアルタイムに外部ファイルに出力することができるようになりました。これにより、ログファイルを監視することでセキュリティへの脅威やエラーへの対応を迅速に行うことができます。ログレベルに応じて出力する内容をコントロールすることができるので、開発中はすべてのログを出力するけど、運用サーバーではエラーのみにする。といった事が可能です。
また、幾つかの機能においては、動作中の経過について info レベルでの出力に対応しています。
ログの出力レベル
出力するログの種類は、LoggerLevel 環境変数によって制限することができます。設定可能なレベルは以下の4つで、ログの多い順に debug > info > warn > error となります。
- debug
- 最も出力が多く、すべてのログが出力されます。プラグインなどにより出力される debug レベルのログも対象となります。主に、開発環境向けです。
- info
- Movable Type の動作に関して正常系のユーザー操作に関するログを出力します。たとえば、サインインやサインアウト、記事などのオブジェクト作成や更新などです。ユーザーの操作イベントの監視はもちろん、イベントをトリガーに何かする場合などに有効です。
- warn
- Movable Type の動作に関してシステムに影響を及ぼすほどではないが、何らかの異常が発生した場合に記録されます。
- error
- Movable Type の動作に関して、システムへの影響を及ぼす恐れのある異常が発生した場合に記録されます。たとえば、データベースやディスクへの書き込みが失敗した場合などです。また、ユーザーのサインイン失敗などのセキュリティ上のエラーについても記録されます。
出力されるログファイル
ログファイルは、LoggerPath 環境変数で指定されたディレクトリに al-yyyymmdd.log というファイル名で出力されます。yyyymmdd には、サーバーの現在日付が入ります。
ログ出力モジュール
ログの出力モジュールとして Log::Log4perl と Log::Minimal に対応しています。いずれかのモジュールがインストールされていない場合は動作しません。LoggerModule 環境変数で明示的に Log4perl か Minimal を指定することができます。また、対応するプラグインにより追加されたログ出力モジュールを指定することも可能です。
LoggerModule Your::Plugin::Log
ログモジュールを開発する
プラグインで ログモジュールを追加すれば、Log::Log4perl、Log::Minimal 以外のログモジュールを利用したり、Slack や syslog に出力するといったことを行うこともできます。
モジュールは、MT::Util::Log を継承し、debug, info, warn, error というサブルーチンを用意います。
package Your::Plugin::Log;
use strict;
use warnings;
use MT;
use base qw(MT::Util::Log);
sub new {
my ( $self, $level, $file ) = @_;
# do something
return $self;
}
sub debug {
my ( $class, $msg ) = @_;
# do something
}
sub info {
my ( $class, $msg ) = @_;
# do something
}
sub warn {
my ( $class, $msg ) = @_;
# do something
}
sub error {
my ( $class, $msg ) = @_;
# do something
}
1;
新しく追加された環境変数
LoggerLevel (none | debug | info | warn | error)
出力するログのレベルを指定します。情報量が多い順に debug > info > warn > error です。指定がないあるいは、none が指定されている場合。または、存在しないレベルが指定されている場合は ログは出力されません。
default: none
LoggerPath
ログファイルの出力先ディレクトリ名を指定します。絶対パスでの指定を推奨しますが、相対パスを指定した場合は MT_HOMEからの相対パスとして処理されます。ログには機密情報も含まれるので、ウェブからのアクセスができない場所を指定してください。値を指定しない場合は、ログは出力されません。
default: 指定なし
LoggerModule
ログ出力モジュールを指定します。標準では Log4perl か Minimal が利用可能です。ただし、それぞれ 利用する Perl モジュールがインストールされていない場合は、システムログにその旨がログとして残り、ログファイルの出力は行いません。
default: Log4perl
変更された機能
クラウド版
DynamicCacheTTL の値として 3600 が初期設定されています。ダイナミック・パブリッシングで生成される Smarty の一時ファイルは 1 時間で削除され、次のアクセスのタイミングで再生成されます。
修正された問題
アイテム
- アップロード先パス名の入力チェックを見直し、URL として不適切な文字を弾くようになりました。(#114155)
- アイテム・画像の挿入ダイアログでチェックボックスを OFF にした時に JS エラーが発生する問題を解決しました。(#114123)
記事・ウェブページ
- TinyMCE が無効になっている環境において、テキストのワードラップが行われない問題を解決しました。(#113312)
サーバー配信
- 配信元のディレクトリを削除したあと、配信先を含むサーバー配信の設定を変更したり、「すべてのファイルを同期する」を実行したとき、エラーになる問題を解決しました。(#114131)
クラウド版
- サーバー証明書を設定済みの場合、サーバー証明書の初期化がうまくいかない問題を解決しました。(#114156)
ダイナミック・パブリッシング
- カスタムフィールド 用の入力フィールドが生成できない問題を解決しました。(#114148)
Thanks To
このリリースにはMovable Typeコミュニティーから報告された多くの、バグ修正、パッチ提供が取り込まれています。FogBugz を通じてパッチおよび、バグレポートを提供してくださったコミュニティーメンバーのお名前は以下の通りです。皆様のご協力に感謝します!(順不同、敬称略)
- Dan Wolfgang (#113312)
- taiju@alfasado (#114123)