in between days

表参道で働くシニアのブログ

必要なディレクトリの用意(UNIXでMTをインストール その2)

(その1は6/15の記事にあります)

続いてMTの動作に必要なディレクトリを作成し、パーミッションやオーナー/グループを適切に設定します。必要なディレクトリは次の4つです。

  • MTの管理用CGI(mt.cgiなど)のディレクトリ
  • 管理用CGIが利用する画像やCSSのスタティックWebパス(必要があれば)
  • MTが使用するデータベースファイルを置くディレクトリ
  • 公開するブログやアーカイブを保存するディレクトリ


MTの管理用CGI群を置くディレクトリ

まずCGI用ディレクトリはいま展開したMT-2.64-full-libなのですが、このままではアクセスしにくいので単純にmtというパスでアクセスできるよう名前を変更します。


# mv MT-2.64-full-lib mt
# ls -l
total 818
drwxr-xr-x 10 nobody nobody 1024 Jun 14 22:15 mt
-rw-r--r-- 1 root wheel 810314 Jun 5 16:18 MT-2.64-full-lib.tar.gz

もしくは次に新しいバージョンが出て入れ換えたり(もしかして不具合が出て元に戻したり)するときにリンクを張り直すだけで済むように、シンボリックリンクを張ってもかまいません。


# ln -s MT-2.64-full-lib mt
# ls -l
total 818
drwxr-xr-x 10 nobody nobody 1024 Jun 14 22:15 MT-2.64-full-lib
-rw-r--r-- 1 root wheel 810314 Jun 5 16:18 MT-2.64-full-lib.tar.gz
lrwxr-xr-x 1 root nobody 16 Jun 14 22:32 mt -> MT-2.64-full-lib

ただしApacheの設定によってはcgi-binディレクトリ下でのシンボリックリンク(FollowSymLinks)を許さないというポリシーのサイトも多いので、その場合は素直にディレクトリ名を変更してください。


スタティックWebパス

続いて、CGIディレクトリ中の画像やCSSにアクセスできないことがあります(cgi-bin以下がすべてスクリプトとして扱われるようにApacheを設定した場合)。MTでは、設定ファイルmt.cfg中のStaticWebPathで、CGIから使われる画像用に別のディレクトリを指定できます。

ここではドキュメントディレクトリ下のmtディレクトリをスタティックWebパスとすることにして、必要なCSSや画像ディレクトリへのリンクを貼っています(ファイルをコピーしてもかまいません)。なおディレクトリ所有者の変更は任意です。


# cd ../data
# pwd
/usr/local/www/data
# mkdir mt
# chown nobody:nobody mt
# cd mt
# ln -s ../../cgi-bin/mt/styles.css
# ln -s ../../cgi-bin/mt/images
# ln -s ../../cgi-bin/mt/docs
# ls -l
total 0
lrwxr-xr-x 1 root nobody 21 Jun 14 23:21 docs -> ../../cgi-bin/mt/docs
lrwxr-xr-x 1 root nobody 23 Jun 14 23:21 images -> ../../cgi-bin/mt/images
lrwxr-xr-x 1 root nobody 27 Jun 14 23:21 styles.css -> ../../cgi-bin/mt/styles.css

これでMTのCGI群が設置できました。次のURLにアクセスすればMTの管理画面が表示されることになります(ここではまだアクセスしません)。

http://this.server/cgi-bin/mt/mt.cgi


データベースディレクトリ

次にデータベースディレクトリを用意します。これはCGIファイルと同じでもかまわないのですが、セキュリティ上CGI用ディレクトリに何かファイルを書き出すことを避けるため、MTのインストールディレクトリとまったく別の場所に保存することにします。

ここでは例として/var/db/mt/というちょっと凝ったディレクトリを使用することにします。そんなのは面倒だというひとはドキュメント通りに./mt/db/でもよいでしょう。以下のDBディレクトリは自分の環境に読み替えてください。


# cd /var/db
# mkdir mt
# chown www:www mt
# chmod 750 mt
# ls -ld mt
drwxr-x--- 2 www www 512 Jun 14 22:51 mt

ここでDBディレクトリ(mt)の所有ユーザ/グループをApacheの起動ユーザ/グループに合わせて変更しています。これはCGIの動作ユーザ/グループがここに書き込めるようにするためです(これは必須)。またいちおう安全のためにパーミッションをそのユーザ/グループにのみ与えています。Apacheの起動ユーザ/グループはhttpd.confUserGroupで確認してください。


ウェブログのHTMLディレクトリ

最後にブログのドキュメントディレクトリを作成します。このWebサーバ全体を1つのブログだけで運営するならドキュメントルートをそのままブログのディレクトリにしてもいいのですが、せっかくMTでは複数のブログを運営できるので、ドキュメントルート化にサブディレクトリを作成して、それをブログのトップページとすることにしましょう。

ここでは「今日産まれたひと」についてなにか蘊蓄を書くネタ系のブログ「birthman blog」というものを立ち上げてみます。これは次のURLでアクセスさせることにします。

http://this.server/birthman/

このURLに対応するディレクトリパスはドキュメントルート直下のbirthmanになりますから、このディレクトリとその下にアーカイブ用のディレクトリを作成します。


# cd /usr/local/www/data
# mkdir birthman
# mkdir birthman/archives
# chown -R www:www birthman
# chmod -R 750 birthman

ドキュメントディレクトリの所有者をApacheの起動ユーザに変更しているのは、ここにMTのCGI群がファイル(HTML文書やRSSなど)を書き込むためです(パーミッションはデフォルトのままでもかまいません)。

この時点でのディレクトリ構成を確認しておくと、次のようになっています(mtのサブディレクトリを省略しています)。


# find /usr/local/www -type d | sort
/usr/local/www
/usr/local/www/cgi-bin
/usr/local/www/cgi-bin/mt

/usr/local/www/cgi-bin/mt/images/lang-ja

/usr/local/www/data
/usr/local/www/data/birthman
/usr/local/www/data/birthman/archives
/usr/local/www/data/mt