mt-devを使ってローカル(MacOS)に Movable Type の開発環境を作る
mt-dev と言う開発ツールがエンジニアにとってとても良かったので これからはこのツールを利用して開発を進めたいと思っています。
https://github.com/movabletype/mt-dev
mt-dev Movable Typeの開発環境です。
VagrantとDockerの環境が利用できます。Vagrantの方を標準としてサポートしており、どのOS上でもMTの動作が高速で安定しています。Dockerを直接利用できる環境の場合にはVagrantを介すことなくDockerで起動でき、こちらの方が開発との相性はよいです。
本記事は、次の方を対象としています。
- Movable Type の開発環境を作りたい方
- mt-dev のマニュアルがなにやら難しく感じた方
- 1度やったことを忘れる私
私の環境
- macOS Ventura 13.4
- Docker 4.22.0
Read Me を読んでみる
日本語版があるのでそちらを私は読みました。
https://github.com/movabletype/mt-dev/blob/master/README.md
https://github.com/movabletype/mt-dev/blob/master/README.ja.md
Docker環境での起動 以下の環境が整っている場合には vagrant mt-dev を make に置き換えてローカル環境上で直接起動することができます。
と記載があるので、それに準じて環境を作ってみたいと思います。
準備するアプリ(ソフトウェア)
Docker
仮想環境を作ってくれます。詳しいことはわかってないです。 無料ではじめることができます。
Movable Type
お手元にない場合は個人無償版よりダウンロードしてください。
https://www.sixapart.jp/inquiry/movabletype/personal_download.html
Make
Xcode をインストールしてください。
環境の作成
Read me の「動かしてみる」の見出しの箇所に に以下のように記述がある。
その前に・・・ 自分の開発したいディレクトリーをあらかじめ決めておく
例えば
ユーザ > yourname > Work
の配下に作ろうかな?と考えている場合は
ターミナルで cd コマンドであらかじめそのディレクトリーまで移動しておきます。
なんやかんやをダウンロード
$ git clone git@github.com:movabletype/mt-dev.git mt-dev
git clone コマンドで自分の環境になんやかんやをダウンロード(みたいなことを)します。
上記は ssh を利用している git clone ですね。 なんかエラーが出る場合は、ssh や httpsやらの アクセスの仕方を調べてみると解決できるかと思います。
フォルダーへ移動
$ cd mt-dev
cd コマンドで mt-dev フォルダーへ移動します。
ここで言う mt-dev は任意だと思われます。
なので git clone コマンドを調べると自分の作りたいフォルダー名にする方法がわかります。
単純に手動でフォルダー名を変更してもこのタイミングであれば影響はないかもしれません。
archive フォルダーにコピー
$ cp /path/to/MT7-R0000.zip archive/
cp コマンドで MT7-R0000.zip を archive フォルダーにコピーします。
ここで言う MT7-R0000.zip は 任意だと思われます。
「準備するアプリ」の節で準備した Movable Type のzipファイル名を指定すると良いです。 私の場合は MT-8.0.2.zip にしました。
これも Finder を開いて手動でzipアイコンを archive フォルダーにピッと移動してもいいと思います。
ここでなんで、わざわざ archive フォルダーに わざわざzipファイルを入れているのか疑問を持つ方もいらっしゃるかもしれませんが、これは 例えば ver8.1と ver8.2を素早く切り替えたい!と言うテスター側の夢を叶えるためだと思われます。
archiveフォルダー配下に動かしたいバージョンのzipをいくつも入れて、好きなタイミングで切り替えてもいいよっていう動作を示唆していて、素晴らしい設計だと思いました。
色々アレコレを構築
$ vagrant mt-dev up ARCHIVE=MT7-R0000.zip
予想ですがコマンドを叩いて色々アレコレを構築しているんだと思います。
私の場合、vagrant mt-dev を読み換えてターミナルを開いて以下のコマンドを叩きました。
$ make up ARCHIVE=MT-8.0.2.zip
以下のようなログが表示された。 どうやらうまくいったっぽい。
[+] Running 5/5 ✔ Container mt-mt-1 Started 2.2s ✔ Container mt-memcached-1 Started 1.3s ✔ Container mt-mt-watcher-1 Started 1.8s ✔ Container mt-httpd-1 Started 2.2s ✔ Container mt-db-1 Running
データベースを作る(たぶん改めて作らなくていい)
$ vagrant mt-dev exec-mysql SQL=’CREATE DATABASE mt /*!40100 DEFAULT CHARACTER SET utf8mb4 */’
これは sql で mt と言うデータベースを作っているだけですね。
私の場合、vagrant mt-dev を読み換えてターミナルを開いて以下のコマンドを叩きました。
$ make exec-mysql SQL=’CREATE DATABASE mt /*!40100 DEFAULT CHARACTER SET utf8mb4 */’
とすると「mtて言うデータベースが既にあンだわ」てエラーになった。
1つ前の手順である make up のログを見てみると確かにデータベースを作っているっぽい。 このコマンドは必要ないのかもしれない。
ブラウザーからアクセス
http://192.168.58.25/cgi-bin/mt/mt.cgi を開くとインストール画面になります。
上記のURLでブラウザーからアクセスすると開けなかった。その代わり
http://localhost/cgi-bin/mt/mt.cgi
でアクセスすることで無事に開けた。 よく分かってないし調べるのがめんどくさいから予想ですが Vagrantfile にこのアドレスに関する記述があったので、Dockerだけで作った場合はそうじゃないのかもしれない。
オプション
色々とできるみたいですね。 私が使うのは、upとdownぐらいかな。
$ make up ARCHIVE=MT.tar.gz $ make up-psgi ARCHIVE=MT.tar.gz # PSGI環境で起動 $ make down # MTを停止 $ make down REMOVEVOLUME=1 # MTを停止してデータベースのデータを削除 $ make up UPARGS=”” # MTコンテナをforgroundで起動 $ make docker-compose ARGS=”logs -f” # ログの表示 $ make up PERL=5.28 PHP=7.3 # PerlやPHPのバージョンを指定 $ make up DB=mariadb:10.5.1-bionic # MariaDB 10.5.1を利用する
【注意】 make コマンドに置き換えています。
毎回、コマンドにパラメーター渡すのがめんどくさいので .env を使ってみる
.env と言うファイルを README.md とかがある階層に作って以下のように書いておけば、省略できて楽ちんです。
ARCHIVE=MT-8.0.2.zip
ARCHIVE=MT7-R5501.zip
MTCONFIGCGI=mt-config.cgi-local REPO=プラグインA,プラグインB,プラグインC
どうもプラグインが複数ある時はカンマ区切りっぽいです。
【注意】 mt7とmt8はデータベースのフォーマットが違うので「make down REMOVE_VOLUME=1」したほうがいいかもですね。
フォローしませんか?