株式会社アスタスタ
WEB技術

Movable Typeの公式開発環境「mt-dev」を使う(Windows11+WSL2+Docker)

シニア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が送られてくるので、そこからダウンロード画面に進みます。

ダウンロードしたアーカイブファイルは展開・解凍はせず、ziptar.gz のままにしておきます。

GithHubからmt-devをクローンするために下記も準備しておきます。

  • gitが動くようにしておく

  • GitHubに接続するためのキーペア作成&GitHubに鍵の登録

mt-devをクローンする

所定のフォルダに移動して、まずは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をインストールする

ダウンロードしてきた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

改造編

.envを作ってmakeコマンドでパラメータを指定しなくてもよいようにする

mt-devのルート直下(makefile、README.mdなどが置いてある場所)に .env ファイルを追加します。

.envmake 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 ⇐⇐⇐追記

管理画面上でプラグインが追加されているか確認します。

テーマ同様、こちらも変更はすぐに反映されます。

phpMyAdminを使用できるようにする

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の画面にアクセスできます。

MTのバージョンを変更する(MTをアップグレードする)

改造ではないのですが、 make upで立ち上げる時に対象となるMTのアーカイブファイルを変更することで、別のバージョンのMTを立ち上げることができます。

別バージョンのMTを切り替えられるわけではなく、DBは同一のため、旧バージョン→新バージョンの場合はアップグレードされます。

新バージョン→旧バージョンは試したことがないので、どうなるかは不明です。時間があったら試してみたいところです。

トラブル編

ファイルへのリンクを設定したテンプレートの変更が反映されない

テンプレートファイルはMTの管理画面上で編集するだけでなく、「ファイルへのリンク」でパスを指定してファイル(以下テンプレートファイルと呼びます)と連携させることができます。

しかし、テンプレートファイルを変更しても変更が反映されない、という現象が起きました。

どうやら、テンプレートファイルを手動で先に作ったせいで、ファイルの所有がWebサーバのユーザ(www-data)ではないため書き込みできなくて反映されなかった、ということのようでした。

読み込みさえできれば反映されるかと思いきや、書き込みもできないと反映されないようです。

対策としては、手動でファイルを作らず、管理画面の方でファイルへのリンクの指定をして、MTの方でファイルを作る、という流れにすればよいかと。

手動で作ってしまった場合は、ファイルのユーザをwww-dataのユーザに変更、もしくはファイルのゲストに書き込み権限を与えれば問題なく反映されます。

参考サイト

Macの情報ばかりですが、WSL2の環境でも参考になりました!

share

関連する記事

この人が書いた記事