本文へジャンプ

あなたの知らない"mt-config"の世界

Posted by Takanori Shimizu

Plates

Movable Type(MT)についてこれまでいくつかのTipsをご紹介してきました。
「もっとマニアックに!!」という声が特に聞こえたわけではありませんが、今回は一部のニーズにお応えして、MTの初期設定で実はとっても便利なmt-config.cgiの設定(環境変数)を取り上げてみます。

ちょっとした設定で、MTがもっと安定する、安全性や軽量化にもつながるTipsです。SixApartの公式リファレンスも開きながらスタディしていただければ!

mt-config 環境変数 基礎編

AdminScript

管理画面「mt.cgi」のファイル名を指定することが出来ます。
管理画面のURLを推測されにくいファイル名に変更することで、セキュリティ的にも安心!

AdminScript mt-kanrigamen.cgi

的な感じで書き換えます。
同様に「mt-search.cgi」や「mt-check.cgi」なども、ファイル名を変更出来ますので、オリジナルに変更することをオススメします。

NewsboxURL

管理画面にある「Movable Type ニュース」ウィジェットの読み込み有無や、取得するURLを変更するための設定です。
そのままでも良いのですが、「MTの公式Twitterもフォローしてるし、MTのメルマガも購読してるぜ!」という場合、改めて管理画面でニュースを知る必要も無いので、読み込み処理の負荷軽減のためにもオフにしちゃいます。

NewsboxURL disable

AutoSaveFrequency

ブログ記事のやテンプレートの作成・編集画面には、「保存」を実行しなくても自動的に一時保存してくれる便利な機能が備わっていますが、ブラウザ環境によってはその保存実行が「重く」感じるときがあります(個人的な感想です)。
記事もテンプレートもあらかじめローカルで作成してから入力するのであれば、この自動保存は不要ですので、オフにしちゃいましょう。

AutoSaveFrequency 0

なんとなく、気持ち、感覚だけかもしれませんが、管理画面操作が軽くなった気がします(個人的な感想)。

AssetCacheDir

mt:AssetThumbnailURLタグでサムネイル画像を出力すると、「assets_c」フォルダに保存されますよね。
これらMTが生成するデータの出力先フォルダ名を変更出来ます。
個人的には「_c」がきもちわるいので、

AssetCacheDir assets

的なフォルダ名に変更することが多いですね。気分的な問題です、はい。

TempDir

MTが生成する一時ファイルを保存するディレクトリの指定です。
初期値では「/tmp」が設定されていますが、サーバが処理するその他のテンポラリファイルと混同させたくない場合には、指定しておいたほうが良いでしょう。

TempDir /home/hogehoge/cgi-bin/mt/tmp

※MTからの相対パスではないので要注意!

DBIRaiseError

MT構築フェーズのデバッグ時に「DebugMode」の設定をしている方も多いと思いますが、この設定を加えることでDBのクエリ実行の失敗も把握することが出来るようになります。
自分も、"もはやMTでは無い"的な混みいったCMSの構築のときに使ったことがある...という程度の設定ですが、あまり知られていないようなので、ご紹介。

DBIRaiseError 1

公式リファレンスにも、『注意:この設定はデバッグ用途のみにお使い下さい。本番運用環境での利用はお控え下さい。』とあるように、デバッグのみ使用します。

ちなみに、「DebugMode」は一般的に「1」を指定してデバッグしますが、実は「2」や「8」を指定することでより詳細なログを見ることが出来ます。これも意外と知らないヒトが多いかと! 詳しくはコチラ

mt-config 環境変数 MT5.1以降

DeniedAssetFileExtensions

その名の通り、アップロード可能なファイルの拡張子を制限出来ます。
セキュリティ対策として利用されるものですが、「画像を掲載しようとしてbmpファイルをアップロードしちゃうヒト」の対策にも有効かも。

DeniedAssetFileExtensions bmp,ascx,asis,asp,aspx,bat,cfc,cfm,cgi,cmd,com,cpl,dll,exe,htaccess,htm,html,inc,jhtml,js,jsb,jsp,mht,mhtml,msi,php,php2,php3,php4,php5,phps,phtm,phtml,pif,pl,pwml,py,reg,scr,sh,shtm,shtml,vbs,vxd,pm,so,rb,htc

mt-config 環境変数 MT6以降

PreviewInNewWindow

記事やテンプレートのプレビューを別ウィンドウで開くか、従来のように同じウィンドウ内で開くかを選択します。
別ウィンドウで開いた場合はサーバ内に一時ファイルが残るので、もしrun-periodic-tasksが使えないサーバ環境の場合は、「0」にしておいたほうが良いでしょう。
個人的には、run-periodic-tasksが使えない状況は有り得ないのですが、単純に設定を明示化するために、初期値のままですが、書いておくことが多いですね。

PreviewInNewWindow 1

mt-config 環境変数 MT6.0以降

JavaScriptで「DataAPI」を扱う上でマストな項目。
ざっくり公式リファレンスから引用させていただきます。

WebブラウザのJavaScriptを利用して外部のサイトからData APIにアクセスした場合、Webブラウザのセキュリティ上の仕様でデフォルトではデータを取得することができません。DataAPICORSAllowOriginにデータの取得を許可するアクセス元のサイトのオリジンを指定すると、アクセスの許可に必要な情報を設定します。

「*」と記入して全開放することも出来ますが、無用な穴を開ける必要もないので、APIに接続する自サイトのドメインに絞っておきましょう。

DataAPICORSAllowOrigin  http://www.hogehoge.com, https://www.hogehoge.com, http://dev.hogehoge.com, http://test.hogehoge.com

mt-config 環境変数 MT6.1以降

DataAPIDisableSite

とても便利なDataAPIですが、外からアクセスできる方法が増える分、配慮も必要です。
初期状態ではすべてのウェブサイト/ブログでDataAPIが有効になっていますので、APIの利用予定が無いブログはこちらの設定で閉じてしまいましょう。

DataAPIDisableSite 3,4,5

ブログIDをカンマ区切りで記入します。

まとめ

というわけで、ぱっと思いつく範囲で挙げてみましたが、いかがでしたでしょうか。
多くの項目は管理画面上(システム設定)からも指定することが出来ますが、個人的な好みかもしれませんが、mt-config内で初期インストール時点から設定出来るものは指定し、また、明示的に設定を把握しておきたい項目もこちらに書くようにしています。
特にチームでCMS構築を行う場合には、情報共有しやすくなるのではないでしょうか。

また機会があれば「ぼくのよくやるテンプレートの初期設定」も書いてみたいと思います!

Cover image by Tom Garnett via Flickr.

Recent Entries
MD EVENT REPORT
What's Hot?