シニアWebエンジニア M.H.
2026.7.14
Movable Typeをローカル環境で動かすのは意外と大変だったりします。
古くはXAMPPを使うなどしていましたが、Perl環境を用意するのが中々面倒だった記憶があります。(遥か昔の記憶なのでほぼ覚えていないですが)
とても久しぶりにMovable Typeを触る事になり、今更XAMPPを使うのもな…と、Docker環境で構築しようと思っていたところ、公式が開発環境を提供していました。
MTの開発環境を簡単に作れる mt-dev を公開しました - ブログ | CMSプラットフォーム Movable Type ドキュメントサイト
公式が出しているので導入しやすいと思いきや、調べてみないとわからないところもそこそこあったので、使えるようになるまでの記録を残しておきます。
なお、Windows11+WSL2環境の話となっておりますので、Mac環境の方は当てはまらないことも多々あるかと思います。また、この記録は2024年ごろの記録に加筆したものになるため、一部違うところがあるかもしれません。
まずは、「mt-dev」のリポジトリのREADMEを読みます。
https://github.com/movabletype/mt-dev/blob/master/README.ja.md
基本的にはVagrant前提、Dockerだけでも動きますが、Wikiの内容も含め説明はVagrant前提の記述が多いです。
https://github.com/movabletype/mt-dev/wiki
個人的にVagrantを入れたくなかったので、Dockerだけで動くようにします。
READMEに従って、必要なものを揃えておきます。
WSL2で下記が動くようにしておきます。
makeコマンド
perl
Docker環境
MTのファイル一式もダウンロードしておきます。
開発・動作検証目的なら開発者ライセンスが利用できます。商用ならライセンスを購入しておきましょう。ライセンス契約をすると会員用URLが送られてくるので、そこからダウンロード画面に進みます。
ダウンロードしたアーカイブファイルは展開・解凍はせず、zipかtar.gz のままにしておきます。
GithHubからmt-devをクローンするために下記も準備しておきます。
gitが動くようにしておく
GitHubに接続するためのキーペア作成&GitHubに鍵の登録
所定のフォルダに移動して、まずはmt-devのリポジトリからクローンしてきます。
$ git clone git@github.com:movabletype/mt-dev.git mt-testここではカレントフォルダ下の mt-test フォルダにクローンしてきたとします。
各フォルダの役割
/mt-test
├── /archive --- MTのコアファイル、既存テーマ・プラグインを入れる
├── /bin --- 起動・セットアップのスクリプト
├── /mt --- Docker関連
├── /recipe --- 環境設定をするyamlを置くらしい(試していません)
├── /repo --- 開発するテーマ・プラグインを入れる
├── /site --- サイトの公開ディレクトリ(ドキュメントルート)
├── CHANGELOG.md
├── Makefile
├── README.ja.md
├── README.md
├── Vagrantfile
└── mt-config.cgi-original
ダウンロードしてきたMTのアーカイブファイルを圧縮ファイルのままarvhiceフォルダに配置します。 zip でも tar.gz どちらでも大丈夫です。
今回は 8.0.4.zip を使用します。(この作業をしていた時の最新版)
/archive
└── 8.0.4.zip
MTコアファイルのファイル名をパラメータとして渡してmakeコマンドを叩きます。
$ make up ARCHIVE=MT-8.0.4.zip
Dockerのイメージの取得、コンテナの立ち上げ等々が行われます。(初回は少し時間がかかります。)
エラー無くRunningが出ればOK。
[+] Running 6/6
✔ Container mt-httpd-1 Started 0.3s
✔ Container mt-mt-watcher-1 Started 0.3s
✔ Container mt-db-1 Running 0.0s
✔ Container mt-phpmyadmin-1 Started 0.3s
✔ Container mt-mt-1 Started 0.3s
✔ Container mt-memcached-1 Started 0.2s
http://localhost/ にアクセスしてみます。
Test Pageが出ればWebサーバは立ち上がっています。

MTの管理画面 http://localhost/cgi-bin/mt/mt.cgi にアクセスしてみます。
初回はインストールされていない状態なので、下記URLに転送され、インストール作業を行います。(データベースは既に作成されている模様)
http://localhost/cgi-bin/mt/mt-upgrade.cgi?__mode=install

インストールが無事終わればMTを使用開始です。
終了する場合は make down コマンドを叩きます。
$ make down諸々終了されます。
[+] Running 7/7
✔ Container mt-mt-1 Removed 0.4s
✔ Container mt-memcached-1 Removed 0.3s
✔ Container mt-mt-watcher-1 Removed 0.0s
✔ Container mt-httpd-1 Removed 0.4s
✔ Container mt-db-1 Removed 1.7s
✔ Network mt_default Removed 0.2s
mt-devのルート直下(makefile、README.mdなどが置いてある場所)に .env ファイルを追加します。
.env に make up をした時に指定したパラメータを記載します。
ARCHIVE=MT-8.0.4.zipパラメータなしで make up をしても読み込まれて起動するようになります。
$ make up※ 起動中の場合は一旦 make downしてください
テーマ・プラグインを追加した状態で起動することもできます。
MT公式のプラグイン&テーマディレクトリに掲載されている下記テーマ・プラグインを追加してみます。
テーマ:Rimo
https://plugins.movabletype.jp/movable_type/rimo.html
プラグイン:QuickRebuild
https://plugins.movabletype.jp/taku_amano/QuickRebuild.html
それぞれダウンロードしてきて、MTコアファイルを入れている archiveフォルダの中に入れます。
/archive
├── 8.0.4.zip
├── mt-theme-rimo-master.zip
└── QuickRebuild-0.7.6.tar.gz
それぞれのファイル名を先ほどの.envに追加します。
ARCHIVE=MT-8.0.4.zip,mt-theme-rimo-master.zip,QuickRebuild-0.7.6.tar.gz
make up して、テーマ・プラグイン共に管理画面上で追加されているか確認します。


既存のテーマだけでなく、独自で制作しているテーマを追加して起動もできます。
下記構成でrepoフォルダ以下に配置します。
/repo
└── /mt-theme-sample01 --- テーマ識別用のフォルダ
└── /themes
└── /sample01 --- 追加するテーマフォルダ
.env に開発用テーマ識別用のフォルダ名を追記します。
ARCHIVE=MT-9.0.6.tar.gz,mt-theme-rimo-master.zip,QuickRebuild-0.7.6.tar.gz
REPO=mt-theme-sample01 ⇐⇐⇐追記フォルダに配置したら、 make up します。
テーマが管理画面で追加されているか確認します。

archiveフォルダに置いたファイルと違い、再度make upしなくても、テーマの中身は変更すればすぐに反映されます。普通にthemeフォルダに置いた状態と同じです。
オリジナルテーマと同様に、制作しているプラグインも独自のものを追加できます。
下記構成でrepoフォルダ以下に配置します。
/repo
└── /mt-plugin-sample02 --- プラグイン識別用のフォルダ
└── /mt-static --- mt-staticを使う場合はここにも追加
| └── /plugins
| └── /Sample02 --- 追加するプラグインフォルダ
└── /plugins
└── /Sample02 --- 追加するプラグインフォルダ
.env に開発用プラグイン識別用のフォルダ名記します。
ARCHIVE=MT-9.0.6.tar.gz,mt-theme-rimo-master.zip,QuickRebuild-0.7.6.tar.gz
REPO=mt-theme-sample01,mt-plugin-sample02 ⇐⇐⇐追記
管理画面上でプラグインが追加されているか確認します。

テーマ同様、こちらも変更はすぐに反映されます。
MTのDBの中身を確認したい、ということでphpMyAdminのコンテナを追加します。
mt/mysql.yml に phppmyadminの項目を追加します。
services:
~~ 省略 ~~
phpmyadmin:
image: phpmyadmin
depends_on:
- db
environment:
PMA_HOST: db
PMA_USER: root
PMA_PASSWORD: password
ports:
- "8080:80"
~~ 省略 ~~
make up時にphpMyAdminのコンテナが立ち上がっていればOKです。
[+] Running 6/6
✔ Container mt-httpd-1 Started 0.3s
✔ Container mt-mt-watcher-1 Started 0.3s
✔ Container mt-db-1 Running 0.0s
✔ Container mt-phpmyadmin-1 Started 0.3s
✔ Container mt-mt-1 Started 0.3s
✔ Container mt-memcached-1 Started 0.2s
http://localhost:8080/ でphpMyAdminの画面にアクセスできます。
改造ではないのですが、 make upで立ち上げる時に対象となるMTのアーカイブファイルを変更することで、別のバージョンのMTを立ち上げることができます。
別バージョンのMTを切り替えられるわけではなく、DBは同一のため、旧バージョン→新バージョンの場合はアップグレードされます。
新バージョン→旧バージョンは試したことがないので、どうなるかは不明です。時間があったら試してみたいところです。
テンプレートファイルはMTの管理画面上で編集するだけでなく、「ファイルへのリンク」でパスを指定してファイル(以下テンプレートファイルと呼びます)と連携させることができます。
しかし、テンプレートファイルを変更しても変更が反映されない、という現象が起きました。
どうやら、テンプレートファイルを手動で先に作ったせいで、ファイルの所有がWebサーバのユーザ(www-data)ではないため書き込みできなくて反映されなかった、ということのようでした。
読み込みさえできれば反映されるかと思いきや、書き込みもできないと反映されないようです。
対策としては、手動でファイルを作らず、管理画面の方でファイルへのリンクの指定をして、MTの方でファイルを作る、という流れにすればよいかと。
手動で作ってしまった場合は、ファイルのユーザをwww-dataのユーザに変更、もしくはファイルのゲストに書き込み権限を与えれば問題なく反映されます。
Macの情報ばかりですが、WSL2の環境でも参考になりました!
関連する記事
この人が書いた記事