| 前置き |
| 管理人はそれまでMovable Type
3.32を利用していましたが、ハードディスクエラーが発生したためにその環境は完全に破壊されてしまい、静的なコンテンツだけが残された状態になりました(別の言い方をすれば、CGIの部分のバックアップが存在せず、HTMLの部分のバックアップのみが存在した)。Movable
Typeには過去のバージョンからのアップグレードパスもあるのですが、CGIの部分が失われているのでそれは難しそうです。 ということで、今回は全く新規に導入するイメージで作業をすることにしました。静的なコンテンツについては、別ディレクトリを利用するような形にすることにします。 |
| 事前準備 |
| 今回の導入対象は、現在管理人が利用しているCent OS
5です。必要となる環境については、ちょっとわかりにくいですがhttp://www.movabletype.jp/documentation/system_requirements.htmlに書かれています。ポイントとなるのは、今回からはRDBMSが必須となっていることです。Linux的にいえばPostgreSQL
/ MySQL / SQLiteの選択になりますが、今回は使い慣れているMySQLを利用してみることにします。 MySQL関連のパッケージはたくさんありますが、最低限必要になるのは、MySQLの本体であるmysql-serverと、そこに接続するために必要となるクライアントプログラム + ライブラリが収められたmysqlなので、この2パッケージをyumで導入します。 [root@www ryu]# yum install mysql-server mysql 結果的に関連パッケージを含めて3パッケージが導入されました。続いて、必要とされているPerlモジュールの導入を行います。おなじみのCPAN経由で行います。CPANを知らない人は、WikipediaのCPANのページでも参照してください。 [root@www ryu]# perl -MCPAN -e shell 指定されているImage::Sizeを導入しようとしたら、Module::Build::Compatがないと怒られたので、こちらを導入してから再度Image::Sizeの導入を行います。再導入をそのまま行うとうまくいきませんでしたが、ダウンロード済みのファイルを削除してから再度実行したらうまくいきました。 cpan> install Module::Build::Compat どうやら、DBD::mysqlを導入するにはMySQLのヘッダファイルが必要なようです。対応するパッケージはmysql-devel.i386になるので、こちらをyumで導入してから再度実行すれば正常に導入されるはずです。パッケージの導入を続けます。 cpan> install HTML::Entities Image::Magickにもヘッダファイルが必要なようです。先ほどと同じく、対応するパッケージとなるImageMagick-devel.i386をyumで導入してから再実行すれば問題ないはず...と思ったのですが、上とは別のエラーが出てどうしようもなかったので、yumでインストールしてしまおう...と思ったら、ImageMagick-devel.i386を導入した際に依存関係で導入済みでした。更にPerlから呼び出すためのImageMagick-perl.i386を導入すれば、Movable Typeから認識できるようなので、CPANでの導入は放棄しました。続けます。 cpan> install Storable 依存関係でいろいろなモジュールを突っ込まれる過程で、上記のエラーで失敗している模様。yumでlibxml2-devel.i386を導入してから再挑戦するも、本命のXML::Atomのインストールでエラーが出て停止。エラーを眺めてみると、テストの80%弱が成功しているにも関わらず、20%今日のエラーが出ているためインストールに失敗していました。 Failed Test Stat Wstat Total Fail Failed List of Failed こんな微妙な状況は自力では解決できないので放棄しましたが、結果的にMovable Typeからは認識されるようなので、よしとします。続けます。 cpan> install Archive::Tar 先に紹介したページに掲載されているモジュールの導入はこれで終了のはず...ですが、後でMail::Sendmailが必要になることが判明するので、ついでにここで入れてくといいでしょう。 |
| MySQLの設定 |
| 続いて、MySQLの設定を行います。MySQLはRDBMS(Relational
Data Base Management
System)ですが、RDBMSが何かを説明すると一冊の本になってしまうので、ここでは書きません。RDBMSが何たるかが分からない方にとっては、以下の作業は呪文のように思えるかもしれませんが、とりあえずここに書いてある通りに作業をすれば大丈夫です。 まずは、MySQLの設定ファイルである/etc/my.cnfに、文字コードの設定を追加します。CentOSのデフォルトの文字コードはUTF-8なので、ここではUTF-8でデータを格納するように設定します。当然ですが、Movable TypeとApacheが利用する文字コードも基本的にUTF-8で統一する必要がありますので注意してください。編集後の/etc/my.cnfは以下のようになります。 [mysqld] 続いて、データベースの作成を行います。MySQLが起動していない場合は手動で起動します。ちなみに、yumで導入した場合は、再起動をすれば自動的に起動するようになっているはずです。手動で起動した場合、以下のようなメッセージが出力されるはずです。 [root@www init.d]# ps -ef | grep mysql 途中に出力されているメッセージは、MySQLに組み込まれているデフォルトの管理者アカウントであるrootのパスワードが設定されていない、と言っています。MySQLのおけるrootは、Linuxにおけるrootと同じで、どのような操作でも許可されています。簡単にいえば、データベースの削除も可能なので、パスワードは必ず設定しておくようにしましょう。メッセージにも出ていますが、以下のコマンドで設定できます。XXXXXXXXの部分を、自分の設定したいパスワードに置き換えて実行してください(シングルクォーテーションはそのまま残す)。 [root@www init.d]# /usr/bin/mysqladmin -u root password 'XXXXXXXX' MySQLではユーザは"ユーザ名@ホスト名"という形で認識されます。このため、アクセスされる可能性があるホスト名別にパスワードの設定を行う必要があるということになります。1行目は"root@localhost"のパスワード設定を行っており、2行目は"root@www.bflets.dyndns.org"というユーザのパスワードを設定しています。 続いて、Movable Typeが利用するデータベースの作成を行います。作成するデータベースの名前は、既存のものと重なりさえしなければどのような名前でも問題はありません。 [root@www init.d]# /usr/bin/mysqladmin -u root -p create MT4 1行目のmysqladminというコマンドで、MT4という名前のデータベースを作成しています。-uはユーザ名を指定するオプション、-pはパスワードを利用することを指定するオプションです。パスワードそのものが引数に含まれていないため、コマンド実行後にパスワードの入力を求められます。 2行目のmysqlというコマンドは、mysqld(MySQLのデーモン)に接続するためのクライアントプログラムを起動します。パスワードを入力するとmysql独自のプロンプトに入りますが、そこで"show databases"と入力すると、現存するデータベースの一覧が表示されます。先ほど作成したMT4というデータベースが存在していることが確認できます。最後にセミコロンが付いていますが、基本的にSQLのコマンドは必ず最後にセミコロンがつくので、忘れないようにしてください。 続いて、Movable Typeが利用するユーザを作成します。 mysql> grant select,insert,update,delete,create,index,alter on MT4.* to MT4@localhost identified by 'XXXXXXXX'; grantとは"授ける"という意味を持つコマンドで、onの次に指定されているテーブル(ここではMT4.*、つまりMT4というデータベースに存在するすべてのテーブル)に対して、指定した権限を与えます。ここで与えているのはselect(データを選択する), insert(データを追加する), update(データを更新する), delete(データを削除する), index(索引を付ける), alter(データベースにかかわる設定変更を行う)という権限です。 toの次に指定しているのがユーザで、ここではMT4@localhostというユーザです。MySQLの場合、ユーザを作成/削除するというコマンドはなく、任意のオブジェクトに対する権限を持つユーザとして未知のユーザを指定すると、その時点でその名前のユーザが作成されます。identified byの後には、MT4@localhostというユーザに対応するパスワードを指定します。 作成したユーザを確認しておきます。 mysql> use mysql; use mysqlというコマンドは、mysqlという名前のデータベースをこれから利用するというコマンドです。その次の2つのコマンドについてはは書きませんが、MT4@localhostというユーザが存在すること、そのユーザがMT4というテーブルに対していくつかの権限を持っていることが確認できます。 |
| Movable Type 4の展開と導入 |
Movable Type 4の入手については特にここでは書きませんが、Six
ApartのWebサイトで個人向けの無償ライセンスを入手することができます。ダウンロードして展開したファイルを、CGIが動作するディレクトリの下にコピーします。普通に展開しただけですが権限設定が適切にされているようだったので、cpの-pオプションを利用しています。[ryu@www MT-4_0-ja]$ cd MT-4.0-ja/ ただし、静的ファイルが収められているmt-staticというディレクトリだけは、CGIとして動作しません。httpd.confの設定を変更すれば静的なコンテンツをCGIのディレクトリに置くこともできますが、普通にHTMLのコンテンツが置かれているディレクトリに移動したほうが簡単でしょう。管理人のサーバには過去のバージョンのMovable Typeがある関係で、ちょっと名前を変更してコピーしています。 [ryu@www MT4]$ cp -r /var/www/cgi-bin/MT4/mt-static /var/www/html/mt4-static ここまでの作業が終了したら、ブラウザを起動してMovable Typeを展開したディレクトリにあるmt.cgiにアクセスします。以下のようなページが表示されるはずです。 ![]() 管理人のmt-staticは先に書いたとおりhttp://www.bflets.dyndns.org/mt4-static/に置かれているので、そのパスを入力して"開始"を押下します。システムチェックの画面に遷移し、Perlモジュールの導入状況の確認が行われます。先に解説した事前作業を行った管理人の環境では、以下のようになりました。 ![]() DBD::SQLiteなど3つのモジュールが未導入ということになっていますが、利用するのはMySQLなので問題ありません。"次へ"をクリックします。 ![]() データベース名、ユーザ名、パスワードは、先にMySQLの設定の時に設定した内容を入力します。入力ができたら、"接続テスト"をクリックします。 ![]() 正常にテストが終了すると、上記のような画面になります。"次へ"をクリックします。 ![]() メールの設定ですが、本音を言えば外部のアドレスに通知メールを送りたいのですが、ISPの制約上それができないので、Movable Typeが動作しているサーバ上にいるMTAに送るようにします。管理人はCentOSでPostfixを利用していますので、上記のような設定になっています。sendmail.postfixというのは、postfixがsendmailとの互換性を保つために用意されているラッパーで、sendmailと同じ引数を利用することができるものです。"テストメールを送信"をクリックして、ちゃんとメールが送信されるかどうかを確認します。 ![]() 指定したメールアドレスにメールが届いていることを確認したら、"次へ"をクリックします。 ![]() ここまでの設定内容がmt-config.cgiというファイルに書き込まれました。"次へ"をクリックします。 ![]() いきなり初期ユーザアカウントの作成画面になります。必要項目を入力したら"次へ"をクリックします。 ![]() 自宅サーバで導入する人の場合、最初のブログ = 唯一のブログになるのではないでしょうか。パスなどを間違えないように慎重に入力したら、"インストール"をクリックします。 ![]() 自動的にインストール処理が走るので、正常に終了したら終了です。 |