📃

mt-config.cgiの設定項目について

2025/01/02に公開

概要

MT(PowerCMS含む、以下同)の設定ファイルmt-config.cgiについて、必須の設定項目と必要に応じて設定しておくとよい項目について解説しています。
本記事の解説は、以下環境での動作を対象としています。

  • ソフトウェア版(サーバーに設置して利用するタイプ)
  • 一般的なレンタルサーバー、およびLinux環境で動作している標準的なWebサーバー

なお、新規インストールなどでファイル名がmt-config.cgi-originalとなっている場合は、-originalを削除して使用します(念のためコピーしてバックアップを取っておくことをオススメします)

必須の設定項目

MTを動作させるのに必須の設定項目は以下です。

  • CGIPath
  • StaticWebPath
  • データベース設定
    • ObjectDriver
    • Database
    • DBUser
    • DBPassword
    • DBHost
    • DBPort
      • 標準 (3306) とは別のポートで動作している場合、必須設定
    • DBSocket
      • MTを動作させるウェブサーバーと同一のホストにあるが、MySQLとPerlで使用するUNIXソケットが違う場合、必須設定
  • DefaultLanguage

以降の項目では、MTがインストールされているディレクトリのURLをhttps://example.jp/mt/としています。

CGIPath

MTの各CGIスクリプトファイルが入っているディレクトリを、http(s)://からはじまるURLで指定する。

CGIPath https://example.jp/mt/

URLの指定は末尾を/とします。
ここで指定したURLが、管理画面内やブログ上に公開するCGIスクリプトファイル(mt-comment.cgimt-search.cgi)へのリンクを生成するために利用されます。また、MTCGIPathタグで出力(処理)されるURLにも利用されます。

ホスト名を含まない以下のような書き方もできますが、上記MTCGIPathの出力時にウェブサイト(ブログ)のURLが補完されて出力されるため、http(s)://からはじまるURLで指定することをオススメします。

# ホスト名を含まない書き方も可能
# MTの管理画面URLがサブドメイン(ex. https://mt.example.jp/)の場合など
CGIPath /

# ただし`MTCGIPath`タグを使用した場合、出力結果は以下のようになる
# サイト公開URLがhttps://www.example.jp/の場合、
# `MTCGIPath`タグの出力結果は、ウェブサイト(ブログ)のURLが補完されてhttps://www.example.jp/になる

StaticWebPath

MTのスタティックディレクトリ(/mt-static)を、http(s)://からはじまるURLまたはウェブサーバーのドキュメントルートからの相対URLで指定する。

StaticWebPath https://example.jp/mt/mt-static/

URLの指定は末尾を/とします。
ここで指定したURLが、管理画面内で利用されます。また、MTStaticWebPathタグで出力(処理)されるURLにも利用されます。

ホスト名を含まない以下のような書き方もできますが、上記MTStaticWebPathの出力時にウェブサイト(ブログ)のURLが補完されて出力されるため、http(s)://からはじまるURLで指定することをオススメします(MTStaticWebPathを利用することはあまりないと思いますが…)

# ホスト名を含まない書き方も可能
# MTの管理画面URLがサブドメイン(ex. https://mt.example.jp/)の場合など
StaticWebPath /mt-static/

# ただし`MTCGIPath`タグを使用した場合、出力結果は以下のようになる
# サイト公開URLがhttps://www.example.jp/の場合、
# `MTCGIPath`タグの出力結果は、ウェブサイト(ブログ)のURLが補完されてhttps://www.example.jp/mt-static/になる

データベース設定

ObjectDriver

DBにアクセスするためのドライバーを指定する。

ObjectDriver DBI::mysql

Database

DB名を指定する。

Database DB_name

DBUser

DBのユーザー名を指定する

DBUser DB_user

DBPassword

DBのパスワードを指定する。

DBPassword DB_password

DBHost

DBのホスト名を指定する。

DBHost DB_host

DBPort

標準 (3306) とは別のポートで動作している場合に指定する。

DBPort 6789

DBSocket

MTを動作させるウェブサーバーと同一のホストにあるが、MySQLとPerlで使用するUNIXソケットが違う場合に指定する。

DBSocket /path/to/mysql.sock

DefaultLanguage

管理画面で利用する言語の初期値を指定する。初期値はen_US

DefaultLanguage ja

必須の設定ではないですが、管理画面のデフォルト言語になるため設定をオススメします。初期値はen_USなので、jaにしておくとよいです。

サーバー環境により設定が必要な項目

以下はサーバー環境により設定が必要な項目です。

Apacheウェブサーバーがsuexecで動作している場合

Apacheウェブサーバーがsuexecで動作している場合は、以下を設定する。

  • DBUmask
  • HTMLUmask
  • UploadUmask
  • DirUmask
DBUmask 0022
HTMLUmask 0022
UploadUmask 0022
DirUmask 0022

テンポラリーファイルの保存場所を変更したい場合、またはMTがWindowsサーバー上で動作している場合

バックアップファイルなどのテンポラリーファイルの保存場所を/tmp以外にしたい場合、またはMTがWindowsサーバー上で動作している場合は、以下を設定する。

TempDir /temp/

必要に応じて設定しておくといい項目

以下は必要に応じて設定しておくといい項目です。

AutoSaveFrequency

記事やテンプレートの自動保存を行う間隔を指定する。初期値は5(5秒ごとに自動保存)

AutoSaveFrequency 0

0にすると無効となり、自動保存は行われません。

CGIMaxUpload

管理画面のアップロード機能で、アップロード可能なファイルのサイズの上限をバイト単位で指定する。初期値は20480000

CGIMaxUpload 100000000

CMSへの攻撃を未然に防ぐため、値はあまり大きくしすぎないほうがよいです。

SearchMaxResults

検索結果(mt-search.cgi)画面で表示される1ページごとの表示数を指定する。初期値は20

SearchMaxResults 50

コンテンツデータの検索結果(mt-cdsearch.cgi)の場合は、ContentDataSearchMaxResultsを利用できる。初期値は20
指定がなければ、SearchMaxResultsで指定されている値(または初期値)が優先される。

ContentDataSearchMaxResults 50

DisableVersionCheck / NewsboxURL

MTの管理画面のアクセスに時間がかかる場合(イントラなどで外部へのアクセスを遮断しているなど)、有効な設定。MTのバージョンチェックやニュースの取得を無効にする。
DisableVersionCheckはMTのみの環境変数。

DisableVersionCheck 1
NewsboxURL disable

詳細は以下の記事をご参考ください。

https://zenn.dev/srkkr/articles/42cb7c8525677a

CGIファイル名の変更

セキュリティの観点から、可能であれば変更することをオススメします。
詳細は以下の記事をご参考ください。

https://zenn.dev/srkkr/articles/276afbdf504324#cgiスクリプト名を変更する

Data APIを利用する場合

Movable Type Data APIを利用する場合は、以下を設定しておくことをオススメします。Data APIに関する公式リファレンスもご確認ください。

  • DataAPICORSAllowOrigin
    • データの取得を許可するアクセス元のサイトのオリジンを指定する
  • DisableResourceField
    • Data API経由で取得できるリソースを制限(設定)する
  • DataAPIDisableSite
    • Data APIによるアクセスを禁止したいサイトのIDを指定する(複数指定は,区切り)

公式リファレンス

MT

PowerCMS

Discussion