Movable Type 不思議な現象あれこれ

 root 権限を取れるVPSサーバーでは色々な事が出来る。本当に面白いサーバーである。しかし、摩訶不思議な現象も多いので、危険性も高い。それでも面白さに目覚めれば、触らずにはいられない。とりあえず、入っている Perl モジュールと Image::Magick を最新にする作業を始めた。ところが最初からつまずいた。

 まず、これはラピッドサイトのVPS(RV-7 シリーズ)ユーザーだけに限られるかもしれないが、入っている Image::Magick のバージョンが 6.0.7 と古い。そこで、お決まりの手順で Image::Magick 最新版をインストールすると、Movable Type が Image::Magick を認識しなくなった。これにはハマった。困り果てた挙句、もうダメでサーバー初期化しか無いかと思ったが、ラピッドサイトVPSの Image::Magick は、ディレクトリ /usr/lib にインストールされている事に気が付いた。Image::Magick はデフォルトで、/usr/local/lib にインストールしようとする。これで競合が起きていたわけだ。

 そこでまず、/usr/lib の Image::Magick 6.0.7 を "rm -r -f ディレクトリ名" で削除する(削除が恐ければリネーム)。そして、Image::Magick インストールの ./configure にオプションを付ける。つまり、

"./configure --prefix=/usr" として Makefile を作成し("/lib" や "/bin" は勝手に付く)、後は、"make"、"make install"。

 なお、./configure でメモリー不足のエラーになる時は、Mailman 等の使っていないアプリケーションを停止させて、メモリーを確保する必要が有る。

 これでめでたく Image::Magick が最新版になった。最新版 6.4.0 にはバージョン 6.0.7 に無い機能が入っており、これは、プラグイン Better File Uploader で活きてくる。具体的には、GIF と PNG で「透かし」機能が使える。ラピッドサイトのVPSユーザーの方は、どうぞお試しあれ。余談だが、Movable Type 4.1 を使うのに、プラグイン BetterFileUploader(有料)、InsertLinkSortCatFld の三つは必須ですね。なお、さらに強力な編集投稿を行いたい方には FCKeditor という WYSIWYG エディタも有る。

 その他、Movable Type は、独自に extlib というディレクトリに古いバージョンの Perl モジュールが沢山入っている。バージョンが古いのは問題だが、これは root 権限を取れない共用サーバーで動かすための親切だろう。Perl モジュールの最新版をインストールしても、mt-check.cgi でバージョンが上がらないのはこのためである。しかし、root 権限を取れるのであれば、リネームして最新版モジュールを正規のディレクトリにインストールできる。この方がサーバーへの負荷も少なく安全。例えば CGI::Cookie、File::Temp、Image::Size、LWP::UserAgent など(CGI、JSON はextlib に有るものでないと不具合が起こる。また、SOAP::Lite は事実上 CPAN から消えた。現在有る最新バージョンをインストールすると、mt-check.cgi が認識しなくなる。どうしても新しいバージョンをインストールしたい方は、FTP Search 等で "SOAP-Lite-0.71.tar.gz" を検索してください)。このように extlib に有るモジュールでないと不具合が起こる場合も有るので、mt-check.cgi で出てくる CGI を除いたモジュールと、extlib ディレクトリのトップに有る CGI と JSON を除いたモジュールだけにしておくのが無難だろう。全部アップデートしようとすると、300近いモジュールをインストールしなければならず、生産的ではない。それから、extlib ディレクトリに無い DBI、DBD::mysql モジュールなどは最新版にした方が良い。

 なお、繰り返すが、これらの操作はサーバーの根幹にかかわる操作なので危険が伴う。長くなるので書かなかったが、Perl モジュールのインストールで不思議な現象にたくさん出くわした。UNIXシェル操作に慣れていない方は止めた方がいい。それでもやるならもちろん自己責任でね。

 Perl モジュールのインストールには CPAN シェルを使うのがラクチン。CPAN サイトから勝手に最新バージョンのモジュールはもちろん付随するモジュールまで取ってきてインストールしてくれる。まず CPAN シェルを最新版にしておこう。これは単に、とりあえず入っている CPAN シェルから "install Bundle::CPAN" と入力して Enter キーを押すだけ(Bundle::CPAN は、CPAN 本体を含む多数のモジュールのセットで、頻繁にアップデートされているので、僕は CPAN シェルを起動したら真っ先に "install Bundle::CPAN" を実行するのが習慣になっている)。CPAN シェルの設定は、ほぼデフォルトでOKだが、ダウンロード元はもちろん日本に、それから "make install" に "UNINST=1" パラメータを、"./Build install" に "--uninst 1" パラメータを付けておくと良い。既に設定が有って再設定したい時は、/usr/lib/perl5/5.x.x/CPAN に有る(場所はサーバーによって違う)Config.pm をリネームして CPAN シェルを起動する。

 使う上では、"install モジュール名" コマンドが基本だが(アップデートをチェックして必要なモジュールだけをインストールする)、DBD::mysql モジュールのように、mysql にパスワードを設定しているとインストールできない(テストでエラーになる)等、"install" コマンドが通用しないモジュールは、"force install モジュール名" コマンドという強制非常手段も有る(あくまで非常手段ね。乱用しない事。サーバーがダウンしても知りませんよ。経験による)。僕は、SSH2接続ソフトに TeraTerm を使い、マクロで Bundle::CPAN と Movable Type 各モジュールを自動アップデートするようにしている。

 CPAN シェルの起動は、ルート権限を取って、"perl -MCPAN -e shell" が「お決まり」だったが、Perl のバージョン("perl -v" で確認できる)が 5.8.1 以降の場合は、単に "cpan" で起動するようだ。噂によると、ルート権限が無くても CPAN シェルを利用できるらしい。詳しくは自分で検索してください(例えばここ)。とにかく頭が良くて便利だから。

 とまあ、今日はラピッドサイトのVPSと、Movable Type に振り回された一日だった。

 設定完了した環境の mt-check.cgi 出力である(環境オタクの本性が出てしまった...)。

確認中: 必須モジュール

CGI::Cookie
サーバーに CGI::Cookie がインストールされています(バージョン 1.29)。

File::Spec (version >= 0.8)
サーバーに File::Spec がインストールされています(バージョン 3.2701)。

Image::Size
サーバーに Image::Size がインストールされています(バージョン 3.100001)。

CGI
サーバーに CGI がインストールされています(バージョン 2.80)。

確認中: データストレージモジュール
これらのモジュールは、Movable Type がデータを保存するために必要なモジュールです。DBIと、1つ以上のデータベース用のモジュールがインストールされている必要があります。

DBI (version >= 1.21)
サーバーに DBI がインストールされています(バージョン 1.605)。

DBD::mysql
サーバーに DBD::mysql がインストールされています(バージョン 4.007)。

DBD::SQLite
サーバーに DBD::SQLite がインストールされています(バージョン 1.14)。

DBD::Pg (version >= 1.32)
サーバーに DBD::Pg がインストールされています(バージョン 2.8.3)。

DBD::SQLite2
サーバーに DBD::SQLite2 がインストールされています(バージョン 0.33)。

確認中: オプションモジュール
これらのモジュールのインストールは任意です。お使いのサーバーにこれらのモジュールがインストールされていない場合でも、Movable Type の基本機能は動作します。これらのモジュールの機能が必要となった場合にはインストールを行ってください。

Crypt::DSA
サーバーに Crypt::DSA がインストールされています(バージョン 0.14)。

XML::SAX
サーバーに XML::SAX がインストールされています(バージョン 0.16)。

Archive::Zip
サーバーに Archive::Zip がインストールされています(バージョン 1.23)。

Storable
サーバーに Storable がインストールされています(バージョン 2.18)。

SOAP::Lite (version >= 0.5)
サーバーに SOAP::Lite がインストールされています(バージョン 0.71)。

List::Util
サーバーに List::Util がインストールされています(バージョン 1.19)。

HTML::Entities
サーバーに HTML::Entities がインストールされています(バージョン 1.35)。

Archive::Tar
サーバーに Archive::Tar がインストールされています(バージョン 1.38)。

Safe
サーバーに Safe がインストールされています(バージョン 2.16)。

IO::Uncompress::Gunzip
サーバーに IO::Uncompress::Gunzip がインストールされています(バージョン 2.011)。

Digest::SHA1
サーバーに Digest::SHA1 がインストールされています(バージョン 2.11)。

IO::Compress::Gzip
サーバーに IO::Compress::Gzip がインストールされています(バージョン 2.011)。

Image::Magick
サーバーに Image::Magick がインストールされています(バージョン 6.4.0)。

XML::Atom
サーバーに XML::Atom がインストールされています(バージョン 0.28)。

LWP::UserAgent
サーバーに LWP::UserAgent がインストールされています(バージョン 5.813)。

Mail::Sendmail
サーバーに Mail::Sendmail がインストールされています(バージョン 0.79)。

MIME::Base64
サーバーに MIME::Base64 がインストールされています(バージョン 3.07)。

File::Temp
サーバーに File::Temp がインストールされています(バージョン 0.20)。

システムのチェックを完了しました。
Movable Typeを利用できます。 お使いのサーバーには、Movable Type の動作に必要なすべてのモジュールがインストールされています。モジュールを追加インストール作業は必要はありません。マニュアルに従い、インストールを続けてください。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Movable Type 不思議な現象あれこれ

このブログ記事に対するトラックバックURL: http://www.korngold.jp/mt/mt-tb.cgi/13

コメントする

このブログ記事について

このページは、Maestroが2008年4月12日 20:24に書いたブログ記事です。

ひとつ前のブログ記事は「XOOPSの使い道(その2)」です。

次のブログ記事は「憧れの Photoshop」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

アイテム

  • tronal300b.jpg
  • mazda12ax7hi-fi.jpg
  • 12AX7_42.jpg
  • melz1578.jpg
  • ehgold12ax7.jpg
  • m7eq.jpg
  • 6sn7_1.jpg
  • raytheon1.jpg
  • sylvania1.jpg
  • luxA3032_2.jpg