45式::雑記
45式::雑記は、日々の事を記してないから日記ではなく雑記です。

環境変数は絶対パスでも相対パスでも設定できる

コメント
0件
トラックバック
0件

注意

この記事の内容はTempDirImportPath以外の環境変数では検証を行っていません。
実際に利用される場合にはくれぐれもご注意下さい。

動作検証した環境はMovable Type Pro 4.27-jaです。

記事中の記述は全て、次のようなディレクトリ構成のサーバを空想した上で行っています。

  • (ルート)
    • home
      • yuno
        • www(ドキュメントルート)
          • mt(アプリケーションディレクトリ)
            • import(初期設定のimportディレクトリ)
    • tmp(初期設定のtmpディレクトリ)

TempDirの場合

Movable Typeの設定は管理画面を使う以外にmt-config.cgiへ記述する事でも設定できます。
mt-config.cgiへ記述する環境変数はさまざまですが、その中にはシステムが利用するディレクトリの名前が場所を変更する事もできます。

例えば、バックアップの保存やアップロード時の一時ファイル置き場に使われるtmpディレクトリがあります。
このディレクトリはTempDirを使って自由に設定する事ができます。
MovableType.jpのリファレンスではルートから指定するように紹介されています。

TempDir /home/yuno/www/mt/tmp

この書き方はTempDirの初期設定値である/tmpがルート直下のtmpディレクトリを指している事から理解できます。

ImportPathの場合

次に、ImportPathの説明を覗いて見ましょう。
ImportPathはインポートするファイルを事前に納めておく場所を設定する環境変数です。
こちらの例ではディレクトリ名だけが指定されています。

ImportPath import

この書き方もImportPathの初期設定値であるimportMTのアプリケーションディレクトリ直下を指している事から理解できます。

絶対パス指定と相対パス指定

この二つの例の違いをTempDirImportPathの違いではなく、書き方による使い分けと解釈して試した所、次のような書き方でも無事に動作しました。

# tmpディレクトリの場所は /home/yuno/www/mt/tmp
TempDir tmp

# importディレクトリの場所は /home/yuno/www/mt/import
ImportPath /home/yuno/www/mt/import

ここで注目すべきはTempDirの指定です。
ImportPathと初期設定値の場所が全く異なるにも関わらず、ディレクトリ名だけを記述したらImportPathと同じくアプリケーションディレクトリ直下のディレクトリが指定されました。

この事からパスの指定は/(スラッシュ)から記述すると絶対パス(ルートが基準)、スラッシュから記述しなければ相対パス(アプリケーションディレクトリが基準)、になると考えられます。
相対パスの基準が初期設定値の場所ではない事には注意が必要です。

さらに相対パス指定では階層を遡る事も可能なので、次の二つは同じ場所を指定しています。

ImportPath /home/yuno/import
ImportPath ../../../import

使い道はないと思いますが、絶対指定も階層を遡る事ができます。

TempDir /home/../

DJ気分でスクラッチのような指定も可能ですが……ダレガスルンデスカ。

ImportPath /home/../home/../

さらにがんばる事もできますが、トテモ正気ノ沙汰トハオモエナイ。

TempDir ../mt/import/../../../yuno/temp

他にもこんな指定も可能デス。

TempDir ../
TempDir ./
TempDir ..
TempDir .

ネタっぽいですが、動作確認済みです。

コメント[0]

コメントはまだありません。

コメント投稿フォーム

コメントを投稿するにはJavaScirptが必要です。ブラウザのJavaScriptを有効にしてください。

コメント投稿フォーム

トラックバック[0]

トラックバックはまだありません。

カテゴリ
アーカイブ
ヘルプ
Feed

フィードとは