今回は久しぶりにCMSのお話です。CMSとはContents Management System
(コンテンツマネジメントシステム)の頭文字をとってCMSと呼んでいますが、
筆者のこのOSManiaXのブログもWordpressというCMSで構築しています。

そんなCMSでもMovableTypeというWordpressとは別のCMSを使ったWEBサイト構築に
挑戦することにしました。
今回はインストールに際し、若干のトラブルもありましたが解決し、環境構築が無事完了しました。

尚、MovableTypeはWordpressと異なり、サイト更新するとMySQLのDBにデータは格納されるものの、
再構築を実施し、HTMLファイルを静的に吐き出して、ユーザはそれを参照する仕組みです。
しかし、Wordpressの場合はユーザがサイト参照時に毎回DBからデータは呼び出されるという仕組みになり、
サーバへの負荷がMovableTypeよりも高い構造のCMSとなります。

というわけで前置きはこれくらいにしておきまして、今回はタイトルの件の通り、
UbuntuLinux21.04のOpenLiteSpeedなWEBサーバ環境におけるMovableType7の
インストール手順について以下に記載していきます。

MovableTypeのダウンロード

まずMovableTypeのダウンロードはこちらから行います。
https://www.movabletype.jp/documentation/mt7/
筆者は個人無償版をセレクトしました。

メールでダウンロード先のURL情報が送付されます。
サーバ上でwgetでダウンロードし、ダウンロードしたファイルを解凍します。

$ sudo unzip MT-R4902.zip

解凍するとディレクトリMT-R4902という中にMovableTypeのファイル群が格納されています。
筆者はドメイン直下に格納したいため、ディレクトリの中身を全てひとつ上に移動し、
空のディレクトリは削除しました。
以下のように実施します。

$ cd MT-R4902
$ sudo mv * ..
$ cd ..
$ sudo rm -R MT-R4902 

ここで、OpenLiteSpeedで構成したドメインのURLにアクセスすると、
以下のようなサインイン画面が表示されました。


MovableTypeの環境構築

次に上記記載のシステムチェックのリンクを実行して、サーバ環境を確認していきます。


WEBサーバはLiteSpeedを認識しているようです。
必須モジュールは問題ないようですし、データストレージもMySQLで問題ないと思います。
(今回はPG(PostgreSQL)は使わない)
オプションについては無くても動くことは動くようですが、やや気持ち悪いのとやはり高速動作させたいので、
なるべく必要そうなオプションをインストールしていきます。



モジュールを追加する

オプションはPerlのモジュールとなります。
su で rootになり、以下のコマンドで追加していきます。
筆者環境の場合は以下オプションの追加を実施しています。


$ sudo su -
# cpan
# cpan>install XML::SAX
# cpan>install IPC::Run
# cpan>install CGI::PSGI
# cpan>install Cache::File
# cpan>install Mozilla::CA
# cpan>install Digest::SHA1
# cpan>install Plack
# cpan>install Archive::Zip
# cpan>install Cache::Memcached
# cpan>install YAML::Syck
# cpan>install GD
# cpan>install Crypt::DSA
# cpan>install XML::SAX::ExpatXS
# cpan>install XMLRPC::Transport::HTTP::Plack

そして、いざインストール開始!!




ここでmysql上にデータベースを作成し、以下に合わせます。

# mariaDB> create database mt7_vrmaniax;

※この際、文字コードを入力しておく必要がありました。後述します。







インストール中にエラーが発生しました
failed to execute statement ALTER TABLE mt_ts_job ADD CONSTRAINT mt_ts_job_uniqfunc UNIQUE(ts_job_funcid,ts_job_uniqkey):Specified key was too long; max key length is 767 bytes at lib/MT/Upgrade.pm line 839,kine 1662.

エラーへの対処

なんと、ここまでスムーズでしたが、痛恨のエラー発生。
処理完了後のバグのエラーメッセージであれば、ログインできるか?と思い
ログイン画面に移ってみてログイン試行をしましたが、ID/PASSが合ってないと、ログインできず。

どうやら問題なのは登録時のキー長が長すぎるとのことでテーブルに収まらないとのエラーです。
テーブルは以下で表示。

MariaDB [mt7_vrmaniax]> show tables;
+------------------------+
| Tables_in_mt7_vrmaniax |
+------------------------+
| mt_accesstoken         |
| mt_asset               |
| mt_asset_meta          |
| mt_author              |
| mt_author_meta         |
| mt_author_summary      |
| mt_blog                |
| mt_blog_meta           |
| mt_cd                  |
| mt_cd_meta             |
| mt_cd_rev              |
| mt_cf                  |
| mt_comment             |
| mt_comment_meta        |
| mt_content_type        |
| mt_failedlogin         |
| mt_field               |
| mt_filter              |
| mt_formatted_text      |
| mt_group               |
| mt_ipbanlist           |
| mt_log                 |
| mt_plugindata          |
| mt_rebuild_trigger     |
| mt_role                |
| mt_session             |
| mt_tbping              |
| mt_tbping_meta         |
| mt_ts_error            |
| mt_ts_job              |
+------------------------+
30 rows in set (0.00 sec)

上記の「mt_ts_job」テーブルが該当するようです。
descでテーブル情報を確認し、バイト数が不足しているのかと思い、
ts_job_uniqkey varchar(255)を以下のように300まで増やしてみましたが解決せず。。。

alter table mt_ts_job modify ts_job_uniqkey varchar(300);

というわけで、一旦データベースを削除して、再度インストールにチャレンジすることにします!!
まずは以下コマンドでデータベースを削除します。

# mariaDB> drop database mt7_vrmaniax;

次にドメインのディレクトリ直下にあるmt-config.cgiというコンフィグファイルを削除、
またはmt-config.cgi_bakなどとリネームします。

そして再度同じようにインストールを開始していきます。
ひょっとしてデフォルト文字コードの問題では?という懸念もあり、
今回は、以下、データベース作成時に文字コード指定(UTF8)を入れました。

なんとエラー解決!

# mariaDB> create database mt7_vrmaniax;
# mariaDB> alter database mt7_vrmaniax default character set utf8;

上記のようにデータベース作成後にデータベースの文字コードをUTF8へセットしたら問題解決、
インストール完了画面へ辿り着きました。



インストール成功

作成したID/PASSでダッシュボードへのログインまでができました。
無事にMovableType7のインストールからログイン確認が完了です。
この後はサイト作成などの使い方についてまた別途記載していきたいと思います。