Tiny Core Linuxでサーバ運用(5) - Movable Type

Movable Typeのインストール

このブログで使っているソフトウェアはMovable Typeなわけですが、Apache上にこれをインストールします。 なお、つい最近Movable Typeはセキュリティホールが見つかりアップデートが行われているので、必ず最新バージョン(2015年3月時点で4.38、5.07および5.13)をインストールするようにしましょう。

(2019年5月更新) TinyCore 9.x向けにアップデートしました。

CPANパッケージのインストール

Movable TypeはPerlで動作するのですが、いくつかのCPANパッケージを必要とします。 Tiny Coreのfrugal installでは、普通にCPANを使ってインストールすると、リブート時にそれが消えてしまうので、少々細工が必要となります。 それには、必要なファイルをTCZにしてアーカイブしておくのですが、それと同時に他のTCZのパッケージングの例に倣い、不要なファイルを削除してサイ ズを最小のパッケージにします。

具体的には、以下のパッケージが必要となります。

  • TCZパッケージでインストールするもの(tce-load -wiする)
    • perl5
    • mysql
    • ImageMagick (CAPTCHAに必要)
  • CPANのコンパイルに必要となるもの(tce-load -wilする)
    • compiletc (コンパイル環境のメタパッケージ)
    • squashfs-tools-4.x (TCZ作成のため)
    • mysql-dev (DBD::mysql作成のため)
    • ImageMagick-dev (Image::Magick作成のため)
  • 作成する必要のあるCPANパッケージ
    • DBI
    • DBD::mysql
    • Image::Magick

必要なパッケージのインストール

まずは、必要なTCZパッケージを入れておきます。

% tce-load -wi perl5
% tce-load -wi mysql
% tce-load -wi ImageMagick
% tce-load -wil compiletc
% tce-load -wil squashfs-tools-4.x
% tce-load -wil mysql-dev

CPANの設定

次に、CPANパッケージをインストールするのですが、あとでTCZパッケージを作成するため、インストール先を/tmp下にしておきます。

% cd /tmp
% mkdir -p /tmp/pkg/usr/local/lib/perl5/5.14.1/
% cpan
o conf makepl_arg "LIB=/tmp/pkg/usr/local/lib/perl5/5.14.1 \
 PREFIX=/tmp/pkg/usr/local/lib/perl5/5.14.1 \
 INSTALLMAN1DIR=/tmp/man1 INSTALLMAN3DIR=/tmp/man3"
(ここでインストール先をデフォルトから変更)
o conf commit
o exit

この設定では、cpanのパッケージは/tmp/pkgにインストールされます。 マニュアル類は/tmp/man1および/tmp/man3に入りますが、これらのファイルはここでは使わないので捨ててしまいます。 完全なパッケージを作るなら、これらを入れたものにするか、マニュアル類を別途パッケージ化しますが、ここでは省略します。

DBIの作成とインストール

% cpan DBI
% mksquashfs pkg perl_DBI.tcz
% cd pkg
% find usr -not -type d > ../perl_DBI.tcz.list
% cp perl_DBI.tcz perl_DBI.tcz.list /mnt/sda1/tce/optional
% tce-load -wi perl_DBI

これでDBIを含むperl_DBI.tczというパッケージができました。

DBD::mysqlの作成とインストール

DBD::mysqlについても同様にします。

% rm -rf /tmp/pkg/*
% cpan DBD::mysql
% mksquashfs pkg perl_DBD_mysql.tcz
% cd pkg
% find usr -not -type d > ../perl_DBD_mysql.tcz.list
% cp perl_DBD_mysql.tcz perl_DBD_mysql.tcz.list /mnt/sda1/tce/optional
% tce-load -wi perl_DBD_mysql

ちょっと面倒なImage::Magickの作成とインストール

Image::Magick は少々厄介です。 TinyCore 4.2.1でダウンロードされるImageMagickのバージョンは6.7.3なのですが、私がCPANを使って入手した最新の Image::Magick CPANパッケージのバージョンは6.7.4になります。 この両者は互換性がないようで、コンパイルが失敗します。そのため、別途ImageMagick-6.7.3をダウンロードし、中から Image::Magick (PerlMagick)を抜き出して使うことにします。 もしCHAPTCHAを使わないのであれば、この作業は不要です。

(リスト5)
% cd /tmp % mkdir pm % tar xf ImageMagick-6.7.3-9.tar.gz % cd PerlMagick % perl Makefile.PL LIB=/tmp/pm/usr/local/lib/perl/ INSTALLMAN1DIR=/tmp/man1 INSTALLMAN3DIR=/tmp/man3 % make install % mksquashfs pm perl_Image_Magick.tcz % cd pkg % find usr -not -type d > ../perl_Image_Magick.tcz.list % cp perl_Image_Magick.tcz perl_Image_Magick.tcz.list /mnt/sda1/tce/optional % tce-load -wi perl_Image_Magick

必要なパッケージのインストールができたの で、Movable Typeをインストールします。 私はバージョン5を使いました。 まず、パッケージをcgi-binで展開し、mt-staticディレクトリをWebで普通に参照可能な場所に移動します。 なお、この例ではApacheの設定は前回のApacheのセットアップで使ったものを利用しています。

% cd /mnt/sda1/apache2/cgi-bin
% unzip MT-5_13-ja.zip
% mv MT-5_13-ja mt
% cd mt
% mv mt-static /mnt/sda1/apache2/htdocs

TinyCore 9の場合(更新)

TinyCore 9.xの場合、ImageMagickのバージョンは6.8.7になり、少しインストール方法が変わります。

以下、コマンドだけ挙げます。(リスト5)の部分が置きかわります。

wget https://imagemagick.org/download/releases/ImageMagick-6.8.7-10.tar.xz
cd /tmp
tar vxf ImageMagick-6.8.7-10.tar.xz
cd ImageMagick-6.8.7-10

./configure --with-quantum-depth=16 --with-perl=/usr/local/bin/perl --prefix=/tmp/pm
make perl-sources
cd PerlMagick/
perl Makefile.PL LIB=/tmp/pm/usr/local/lib/perl/5.26.1/ INSTALLSITEMAN1DIR=/tmp/man1 INSTALLSITEMAN3DIR=/tmp/man3
make
make install
mksquashfs pm perl_Image_Magick.tcz
(cd pm;find usr -not -type d > ../perl_Image_Magick.tcz.list)
cp perl_Image_Magick.tcz perl_Image_Magick.tcz.list /mnt/sda1/tce/optional
tce-load -wi perl_Image_Magick

また、いくつかCPANパッケージが不足するので入れておきます。

(HTML::Tagset)

cpan HTML::Tagset
sudo rm -rf pkg/usr/local/lib/perl5/5.26.1/share
mksquashfs pkg perl_HTML_Tagset.tcz
(cd pkg;find usr -not -type d > ../perl_HTML_Tagset.tcz.list)
cp perl_HTML_Tagset.tcz perl_HTML_Tagset.tcz.list /mnt/sda1/tce/optional
tce-load -i perl_HTML_Tagset
sudo rm -rf pkg

(HTML::Entities)

cpan HTML::Entities
sudo rm -rf pkg/usr/local/lib/perl5/5.26.1/share
mksquashfs pkg perl_HTML_Entities.tcz
(cd pkg;find usr -not -type d > ../perl_HTML_Entities.tcz.list)
cp perl_HTML_Entities.tcz perl_HTML_Entities.tcz.list /mnt/sda1/tce/optional
tce-load -i perl_HTML_Entities

対話式インストーラの起動

あとは、Webブラウザでhttp://ドメイン名/cgi-bin/mt/にアクセスし、対話式インストーラでインストールしてください。 詳しいドキュメントはMovable Typeのサイトにあります。

一点注意としては、セットアップ後に作成されるcgi-bin/mt/mt-config.cgiに次の行を追加しておきます。

CaptchaSourceImageBase /mnt/sda1/apache2/htdocs/mt-static/images/captcha-source

以上です。

おまけ: TinyCore 9.xでは

新しいバージョンのTinyCore Linuxでは、mysqlの代わりにmariadbが付属しています。mysqlをインストールする代わりに

% tce-load -wi mariadb
% tce-load -wi mariadb-dev

としておけば、コマンド名も同じなのでそのまま使えます。

ただ、cpan時に

% cpan DBI
Can't exec "mysql_config": No such file or directory at Makefile.PL line 573.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located

のようなエラーが出た場合、mysql_configがあるディレクトリが変わったのが原因ですので、

% export PATH=$PATH:/usr/local/mysql/bin/

しておきます。

戻る 1 2 3 4 5 6 次へ

こちらもよく読まれています