#59 コアサーバにMovable typeを入れる方法【ぴよぴよコーダーの開発日記】
CMSといえば、WordPress一強の時代が続いていますね。WordPressは無料だし、プラグインもドキュメントも豊富で使いやすいですが、無料ということもあって、バージョンアップなどのセキュリティ関連の対応が面倒という面もあります。
商用のCMSもいくつかありますが、そういえば10年くらい前にMovable typeってのがあったなぁと思いだして、趣味で持っているサーバに入れてみることにしました。ちなみに個人的に使う場合は、無償版が提供されています。
さて、Movable Typeぐぐっても、ぐぐっても公式のSix apertの記事以外に最近の記事が少ない。とはいえ、いろんな情報をかき集めながら入れてみることにしました。方法は下記。
1. Movable typeをサーバにインストールする。下記のコアサーバ公式の記事をもとに、1から5まで(DB設定の前まで進める)。3はWordPressになっていますが、その右隣のMovable type 5.2と書いてあるボタンのほうを押します。(Movable type 5.2、、5.2かよ。なんでだよ。最新は7だよと、後で気づいて少し苦悩しましたが後で解決できます)。
2. ブラウザで新しいタブでコアサーバの管理画面を開いて、データベースを作ります。コアサーバの管理画面に、ドラム型のアイコンのデータベースというメニューがあるので、そちらに入って、下記の設定をします。基本ボタンを押すだけでDBの設定ができるなんてGUIってすばらしい。。
データベースの種類 MySQLデータベース
データベースサーバ localhost
データベース名 任意の名前
ユーザー名 任意の名前
パスワード 任意の名前
3. Movable typeにログインして、DBやメールアドレスなどの設定をします。ログイン方法は、https://www.自分のドメイン/mt.cgi でログイン画面が表示されます。ログイン後の設定方法は、下記のページの3から12までの手順を行います。
できた!できたって思うでしょ。で、デザインテーマでも作っていくかとLIGさんの記事がまとまってたんで参考にしようと思っていたんですよ。
参考:Movable Typeのインストール・使い方から運用まで
で、読んでいるうちに気づいたのですが、もしかして記事古くないか?、、2014年あたりの記事でした。そしてMTのバージョンも合っていないから見ているMTの管理画面と記事の内容が少し一致しないところがある。そんなことから先ほどのMTのバージョンが5.2っていうのは古いって気づいたんですね。まさかサーバ側が提供しているMTのバージョンが2世代前のものだったなんて思わなかったですよ。
でもあきらめませんよ。MT7にアップグレードしますよ。なぜコアサーバのMTのバージョンが2世代前なのか?もしかしてMTを構成するPerlのバージョンが古いのだろうかとまずは仮説を立ててみました。というかMTってPHPじゃなくてPerlで動いているのかっていうのが、まず驚いたのですが。。Perlは15年くらい前にKENT WEBさんってサイトにお世話になりながら書いていた時代もあったなぁ。。
まずMT公式で、動作環境の確認。Perlは5.10.1 以上が必要とのこと。
そしてコアサーバの公式のドキュメントを確認。5.16系と書いてある
参考:サーバー仕様
本当に、サーバに5.16系が入っているのか、PHPだったら、phpinfo()でPHPの設定内容が確認できるけど、Perlで設定内容ってどうやって確認するんだろうと、ググっていたら下記のcgiファイルを作ってサーバにアップしてアクセスすると確認できました。
#!/usr/bin/perl
use strict;
use warnings;
my $title = "Information about $ENV{'HTTP_HOST'}";
my %mod_list;
my $version = `perl -v`;
$version =~ s/\n\n/\<br\>\n/g;
print "Content-type: text/html\n\n",
"<html><meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>",
"<title>$title</title><body>\n",
"<h1>$title</h1><hr>\n",
"<h2>Version (perl -v):</h2>\n",
"<p>$version</p><hr>\n",
"<h2>Environment values:</h2>\n",
"<ul>";
foreach my $key( keys %ENV ){
print "<li>$key: $ENV{$key}</li>\n";
}
print "</ul><hr>\n",
"<h2>Include path:</h2>\n",
"<p>";
print "$_\n" for @INC;
print "</p>\n",
print "</ul><hr>\n",
"<h2>Installed module list:</h2>\n",
"<ul>";
&listup($_) for grep {$_ ne '.'} @INC;
print "<li>$_</li>\n" for sort keys %mod_list;
my($user, $system, $cuser, $csystem) = times;
print "</ul><hr>\n",
"<p>User CPU times:$user / ",
"System CPU times:$system / ",
"Child process user CPU times:$cuser / ",
"Child process system CPU times:$csystem (sec)</p>\n",
"</body></html>\n";
exit;
sub listup {
my ($base, $path) = @_;
(my $mod = $path) =~ s!/!::!g;
opendir DIR, "$base/$path" or return;
my @node = grep {!/^\.\.?$/} readdir DIR;
closedir DIR;
foreach (@node) {
if (/(.+)\.pm$/) { $mod_list{"$mod$1"} = 1 }
elsif (-d "$base/$path$_") { listup($base, "$path$_/") }
}
}
上記のコードを、perlinfo.cgiのような名前を付けてサーバにアップした後は、そのままブラウザで、https://www.自分のドメイン/perlinfo.cgi でアクセスしても開かなかったので、perlinfo.cgiのパーミッションのオーナーの部分を7に変更。すると下記のように、Perl 5.16.3が入っていることが確認できました。
Perlのバージョンは問題ない。とすると、後はMTをアップグレードするのみ、やり方は既存環境をバックアップとって、新しいMT7のファイルをアップロードする。バックアップは、サーバ上に、新しいフォルダ作って、今の環境を丸ごと移動すればよいけれど、新しいMT7のファイルが、ぐぐってもなかなか見つからない。ふつうトップページにダウンロードボタンあるよね??って探しまくってたら、Movable type公式サイトのヘッダーの右上に「個人無償版ダウンロード」というボタンがあったので、そちらをクリック。そして自分のメールアドレスと用途を入力すると、メールにダウンロード用のURLが送られてくるので、そこで初めてMT7の環境がダウンロードできます。
参考:【MT】MT5からMT6へのバージョンアップ手順まとめ【Movable Type】
参考:旧バージョンから Movable Type 7 へアップグレードする
サーバにMT7のファイルをアップし終わった後は、改めて https://www.自分のドメイン/mt.cgi でログインする。ここでまた500エラーでログインできなかったりするので、設定に必要な、mt.cgi, mt-wizard.cgi, mt-upgrade.cgiなどのファイルのパーミッションのオーナー権限を7に変更する。
パーミッションを変更するとログイン画面が表示されるので、そこからは、先ほど設定の紹介をした下記ページの3から12までの手順を進めていくとようやくMT7へのアップグレードが完了できました。
ちょい手間がかかりましたが、勉強になったなー。これからテーマファイルの作成方法を勉強しよう。。