15 Aug 2009

mac osxのローカル環境でMTを動かす

友人のwebサイトを作るのを手伝っています。サーバはさくらインターネットのライトプランで借りようとしているのですが、このプランは月額125円と値段が安い一方で、phpやmysqlがつかえないなど機能がかなり限られています。(一方で一つ上位のスタンダードプランでは、sshで入れたりcronを設置できたりなど、かなり充実しています)。

phpが使えないので、cmsをどうしようかと悩みました。wordpressやdrupalなど有名どころはphp製が多いです。python, ruby, perlで動くcmsはないか調べてみたところ、有名なものでpythonのploneがありました。ploneにしようかなと思いつつあったんですが、そういえばMovable Typeを忘れていたことに気づき、調べてみたところperlとSQLiteで動くようだし、さくらのライトプランでMTを運用しているひともたくさんいるようなので、Movable Typeでいくことにしました。

まずはローカルにMTをインストールして、テーマのカスタマイズやプラグインの設置などを行い、完成したらさくら上に構築することにしました。

そこでまずはmacのローカル環境でMTを動かします。macにはMAMPという、XAMPPのmac版のようなソフトがあり、これを使えばローカルでのテスト環境の構築はかなり楽そうです。しかし今回は勉強のために、こうしたオールインワンのパッケージに頼らず、自分でサーバやDBの設定などを行うことにしました。macにはデフォルトでapacheが入っているし、macportsがあるのでソフトのインストールも簡単。よってなんとかなるかなと考えました。

apache

まずはローカルでapacheを動かすことから始めます。ここらへんを読みながらやってみました。

Start! MacBook:第2回 なぜMacなのか(後編) ~ApacheでCGIを動かすまで|gihyo.jp … 技術評論社

超簡単 Mac OS XのローカルでCGI (SSIもPHPも)

まずはapacheを起動して、ローカルホストにアクセスしてみます。リンゴマークからSystem preferences -> Sharing -> Web Sharingのチェックをつける。またはコマンドラインで、apachectl start とすればOKです。この状態でブラウザからhttp://localhost/にアクセスし、なにかそれらしいメッセージが出ていればOKです。ついでに、http://localhost/~USERNAME(自分のユーザー名)/にもアクセスしてみます。こちらでは~/Sitesの中身が表示されます。

perl

次はperlです。/private/etc/apache2/users/kosei.confを次のように編集し、~/Sitesの中にperlのスクリプト(test.cgi)をいれます。なお僕のユーザ名はkoseiなので、各自適宜読み替えてください。

kosei.conf


    AddHandler cgi-script cgi
    Options Indexes MultiViews ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all

test.cgi

#!/usr/bin/perl
print "Content-Type: text/plain\n\nHello\n";

ブラウザからhttp://localhost/~kosei/test.cgiにアクセスし、Helloと出ればokです。

余談ですが、test.cgi2行目のコンテントタイプをtext/plainではなくtest/plainとtypoしてしまい、少しはまってしまいました。ブラウザからアクセスしてもスクリプトが実行されず、cgiファイルをダウンロードしてしまうので、なんでだろうと思っていたのですが、このtypoが原因でした。

SQLite

SQLiteもなにもせずともインストールされてました。

% sqlite3
SQLite version 3.4.0
Enter ".help" for instructions
sqlite>

Movable Type

日本語版のソフトをダウンロード、解凍します。

Download Movable Type | MovableType.org - Home of the MT Community

展開したディレクトリの中のreadme.htmlでrequirementsやインストール方法が説明されています。インストールは、

  1. 展開したファイルを任意の場所に設置。(ここでは~/Sites/mt とします)
  2. *.cgiのパーミッションを変更。+xをつける。
  3. ルートディレクトリにcgiの実行権限を付加。(今回は上記で設定したので必要ありません)
  4. ルートディレクトリに書き込み権限を付加。(chmod a+w)
  5. http://localhost/mt/ にアクセス。

あとは説明に従って進めるだけです。途中必要なperlモジュールをチェックしてくれるので、適宜インストールします。

データベースを作成する段階で、ディレクトリのパーミッションを変更する必要がありました。デフォルトでは、~/Sites/mt/db/mt.dbというパスにdbを作ろうとするので、mtの下にdbというディレクトリを作り、chmod a+wで書き込み権限を与えてあげます。

あとはファイルの保存先やそのパーミッションに注意して、おこられたら適宜修正しながらやっていけば大丈夫です。

インストールも簡単だし、デザインも見やすいし、日本語もよくサポートされていて、MTはすばらしいですね。