環境変数を上手に使いこなそう
環境変数とは
皆さんは環境変数をご存知ですか?環境変数は、OSやアプリケーションソフトが動作する際の基本的な設定が保存をするための変数です。Windows や Linux のようなOSはもちろん、ApacheやPHPといったアプリケーションにも環境変数が存在します。
Movable Type の環境変数
Movable Type にも、環境変数が用意されており、Movable Type の動作をいろいろと定義することができます。
Movable Type の環境変数は、設定ファイル「mt-config.cgi」に記述を行い設定します。mt-config.cgi は、通常、Movable Type をインストールした直下ディレクトリ、mt.cgi などの実行ファイルと同じディレクトリに存在します。
環境変数を設定する際は、テキストエディタなどを利用して mt-config.cgi を直接編集します。例えば、LocalPreview という環境変数を有効にする場合は、mt-config.cgi ファイルの中に
LocalPreviews 1
と、記述します。
(なお、Movable Type クラウド版 では、管理画面から環境変数の指定と編集ができるようになっています)
環境変数の例
「環境変数リファレンス」では、Movable Type で利用できる環境変数をまとめています。 Movable Type の環境変数を利用すると、どんなことが設定できるのでしょうか。ここでは、いくつかの環境変数をサンプルとして挙げ、どんな設定ができるかをご紹介しましょう。
AutoSaveFrequency
Movable Type は、記述途中の記事をデータベースに保存して、万が一書きかけの最中に画面にアクセスできなくなった場合などに、記述途中の状態を再現する「自動保存機能」があります。
「AutoSaveFrequency」を利用すると、自動保存を行う頻度を設定することができます。
AdminScript
Movable Type の管理プログラムの CGI スクリプトの名前を設定します。初期状態は通常 mt.cgi ですが、「AdminScrpit」 に、容易に推測できない名前を管理プログラムの CGI スクリプト名として設定することにより、不正なアクセスを防いだりすることができます。セキュリティの強化に威力を発揮する環境変数です。
SearchNoOverride
カンマ区切りで、検索テンプレートやユーザーによる検索用パラメーターの上書きを禁止する設定ディレクティブを指定できます。Movable Type の検索は、検索時のクエリー設定で検索結果の表示をいろいろ設定できますが、「SearchNoOverride」 を使うと、mt-config.cgi の指定値のみ指定することができます。
NoPublishMeansDraft
XML-RPC API / MetaWeblog API 経由で投稿されたブログ記事の公開に関する設定を行うことができます。一部のブログエディタで、「下書き」として投稿した際に、実際の Movable Type では記事が公開されてしまう場合は、この値を設定することで、下書き状態での保存ができます。
PreviewInNewWindow
Movable Type 6から追加された環境変数です。この値を 1 に設定すると、記事やテンプレートのプレビューが新しいウィンドウ(ブラウザによっては新しいタブ)で開くようになります。
TransparentProxyIPs
Movable Type をリバースプロキシーの後ろで利用する場合、全てのアクセスが同一 IP アドレスから送られてきたように見えてしまいます。このとき、コメントやトラックバックのスパム判定や、IP アドレスによるロックアウト機能が、有効に働かなくなります。この環境変数を有効にすると、リクエスト元の IP アドレスを利用して処理を行うようになります。(ただし、ご利用中のウェブサーバによっては、設定が必要になります)
CGIMaxUpload
Movable Type のファイルアップロード機能でアップロードできるファイルサイズの上限を設定します。この環境変数を指定すると、デジカメの画像や添付資料ファイルなど、間違って何 10MB もある大きなサイズのファイルをアップロードした時に、画面上でアラート表示を行い、ファイルサイズがオーバーしていいることを知らせます。
AssetFileExtensions
アップロードできるアイテムの拡張子を制限したい場合、この環境変数で指定ができます。例えば、 jpg, pdf と指定すると、その他の拡張子ファイル( .gif や .png、.php など)のファイルをアップロードできなくなります。
AllowFileInclude
Movable Type 5.13、5.07、および 4.38 以降のバージョンでは、MTInclude タグで外部ファイルを読み込む file="file_foo" モディファイアが標準では無効化されています。これはセキュリティ対策の一環ですが、この環境変数を設定すると、外部ファイルの読み込みを有効化します。
DataAPICORSAllowOrigin
Web ブラウザの JavaScript を利用して外部のサイトから Data API にアクセスした場合、セキュリティ上の仕様でデフォルトではデータを取得することができません。DataAPICORSAllowOrigin にデータの取得を許可するアクセス元のサイトのオリジンを指定すると、アクセスの許可に必要な情報を設定します。Data API を利用する場合に、よくお世話になる環境変数です。
いかがでしょうか?一口に環境変数と言っても、いろいろな機能があることがお分かりいただけると思います。環境変数をうまく使いこなすと、Movable Type をより便利に、快適に使いこなすことができます。また、Movable Type を使ったウェブサイトやブログの構築が、より効率的になる場合があります。
環境変数を上手に使いこなして、Movable Type をより便利に、快適にしてみましょう。
- 前の記事: デザイナーが参加しやすいハッカソンについて考えてみた
- 次の記事: Movable Type 新製品ページの設計について