LoginSignup
7

DockerにMovable Type 7をインストールした開発環境構築

Last updated at Posted at 2020-04-25

DockerにMovable Type 7をインストールした開発環境構築

本題について

  • 本題を達成するために、環境とインストール方法を記載する

環境

  • MacBook (Retina, 12-inch, Early 2016)

    • 1.3 GHz Dual-Core Intel Core m7
    • 8 GB 1867 MHz LPDDR3
    • Intel HD Graphics 515 1536 MB
    • OS MacOS Catalina(version 10.15.4)
  • docker desktop

    • Version 2.2.0.5(43884)
    • Channel stable
  • Apache/2.4.29 (Ubuntu)

  • MySQL Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper

  • Movable Type 7 r.4605

インストール

Ubuntuイメージのダウンロード

$ docker pull ubuntu

コンテナを起動し、そのコンテナに入る

$ docker run -it -p 3002:80 ubuntu

※ubuntu上でWebサーバーにアクセスするため、3002番ポートを解放する

各種コマンドをインストール

# apt-get update
# apt-get install vim wget unzip

Apacheをインストール

# apt-get update
# apt-get install apache2

MySQLをインストール

2023/06/27 追記
MySQLのバージョンは以下で動作確認済みです

# mysql -v
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
# apt-get update
# apt-get install mysql-server libdbi-perl libdbd-mysql-perl

※ mysql-serverインストール中に以下のメッセージが表示されたが、
結果的に問題なかったです

Cannot stat file /proc/3391/fd/0: Permission denied

ApacheとMySQLの設定

Apacheの設定(cgiを動作させる設定)

# cd /etc/apache2/conf-available
# touch cgi-enabled.conf

cgi-enabled.confは以下の記述

/etc/apache2/conf-available/cgi-enabled.conf
<Directory "/var/www/html">
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl
</Directory>

cgi-enabled、CGIモジュールを有効にする。

# a2enmod cgi
# a2enconf cgi-enabled

Apacheを起動

# /etc/init.d/apache2 restart

以下にアクセスして表示されていれば問題なし

http://localhost:3002/

MySQLの設定

MySQLの起動

# service mysql start
# mysql -u root

データベースの作成(データベース名は'mt')

mysql> CREATE DATABASE mt DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

ユーザーの作成(ユーザー名'mtuser'、パスワード'mtpasswd')

mysql> CREATE USER mtuser@localhost identified by 'mtpasswd';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on mt.* to mtuser@localhost identified by 'mtpasswd';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

MovableType7のインストール

以下にインストールし、フォルダ名をmt7に変更
またパーミッションを変更

# cd /var/www/html/mt7
# chown -R www-data:www-data /var/www/html/mt7

MovableType7のセットアップ

以下にアクセス

http://localhost:3002/mt7/

「システムチェック」で以下のメッセージが表示されればOK

必要なPerlモジュールは揃っています。 Movable Typeのインストールを続行する準備が整いました。

オプションのPerlモジュールのうちいくつかが見つかりませんでした。オプションモジュールを表示

データベースの設定

データベースの種類:MySQLデータベース(推奨)
データベースサーバ:localhost
データベース名:mt
ユーザー名:mtuser
パスワード:mtpasswd

メールの設定、アカウントの設定→よしなに

以上で完了!

目標達成からの課題

  • kinematicがMac上で起動できない 調べたものの分からず。とりあえずコマンドで頑張るしかない。良いツールなんだけども。
    [2020/06/25 追記]Macの設定でできました。
  • [2020/05/02 追記]Sequel ProからUbuntu上のMySQLサーバーにアクセスできない・・・。

マシン移行に伴うイメージの移行 追記(2020/06/06)

MacBook Pro 13(2020)を購入し、MacBook12にあったイメージを移行しました。
実際の手順は以下。

Macbook12
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu_mt           v1.3                e438bafbbd73        12 days ago         1.68GB

このイメージを保存

MacBook12
$ docker save e438bafbbd73 > ubuntu_mt.tar

保存したイメージをAirdropでMacBook Pro 13(2020)へ転送

イメージをdockerに読み込む

MacBookPro13(2020)
$ docker load < ubuntu_mt.tar

するとなぜかREPOSITORY、TAG名が[none]...

MacBookPro13(2020)
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
[none]              [none]              e438bafbbd73        12 days ago         1.68GB

リポジトリ名、タグ名を変更

MacBookPro13(2020)
$ docker tag e438bafbbd73 ubuntu_mt:v1.4

無事にリポジトリ名、タグ名を変更できた

MacBookPro13(2020)
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu_mt           v1.4                e438bafbbd73        12 days ago         1.68GB

イメージをGitHub Container Registryに登録する 追記(2020/10/01)

先日GitHub Container Registry(以下GHCR)が便利そうと思い、
忘備の意味も含め、追記しました。
こちらのサイトが大変参考になりました。

  1. GHCRに対するログイン
  2. ローカルへイメージの保存
  3. 保存したイメージの送信

1. GHCRへのログイン

こちらを参考にしました。(手抜きですみません・・・)

2. ローカルへイメージの保存

稼働中のコンテナからイメージを書出します。


$ docker ps

CONTAINER ID        IMAGE       COMMAND                  CREATED             STATUS              PORTS                                           NAMES
811606b9409f        Mt:latest   "/bin/bash -c 'apt-g…"   9 hours ago         Up 9 hours          0.0.0.0:3002->80/tcp, 0.0.0.0:33006->3306/tcp   mt7

# ここで、docker commit <コンテナ名> ghcr.io/<Githubのユーザー名>/<イメージ名>:<タグ>
# のコマンドで、イメージを書き出します
$ docker commit mt7 ghcr.io/githubusername/mt7:latest

3. 保存したイメージの送信

$ docker push ghcr.io/githubusername/mt7:latest

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7