« 文字の回り込みのテスト | Main | 私がドットマック(.Mac)上にブログを開設するまで その2 »

2008年03月06日

私がドットマック(.Mac)上にブログを開設するまで その1

あらすじはこうです。ローカルのMac、つまり手元のMacでパーソナルweb共有を使ってブログをテストする環境を作ります。次にThingamablogを使ってその環境でブログを開設します。そして自分の.Macをマウントしてブログをアップします。こんな感じです。

ブログはやっぱりコメントとトラックバックが欲しいですよね。なのでHaloScanにアカウントを持って、それを使っています。さらに画像も貼り込みたいですね。そこで画像の管理にCamCamさんのプチフォトを使わせていただいてます。このプチフォトはperlのcgiなので、手元のMacでcgiが動くようにするのが結構難関でした。プチフォトはcgiが動くレンタルサーバで使うことが前提なのですが、ドットマックはcgiが使えないからです。そこで先ず手元のMacでcgiが動くようにするまでを書き記します。

ではまずこのページを参考にapache2の設定ファイルであるhttpd.confを書き換えていきます。

ターミナルを起動し、カレントディレクトリを移動します。

$ cd /private/etc/apache2

念のためバックアップを作ります。

$ sudo cp httpd.conf httpd.conf.back

さらに念のためhttpd.confをホームディレクトリにコピーします。

$ sudo cp httpd.conf ~

ホームにカレントディレクトリを移動します。

$ cd ~

持ってきたhttpd.confのパーミッションをユーザが書き換えられるようにします。

$ sudo u+w httpd.conf

これでFinderからも見えるし、使い慣れたエディタアプリケーションで書き換えられるようになります。先ほどのページを参照して書き換えます。しかし私の環境ではそのページにある書き換えだけでは足りませんでした。httpd.confの、455行目付近に、

# User home directories
Include /private/etc/apache2/extra/httpd-userdir.conf

と書かれています。このIncludeの行頭に#がついていたらとります。httpd.confとはまた別の、httpd-userdir.confを読み込む設定になっているのです。すぐあとで説明します。ひとまずhttpd.confを保存します。保存したらターミナルに戻り、パーミッションを元に戻し、元のディレクトリのものを上書きします。

$ chmod u-w httpd.conf
$ sudo cp httpd.conf /private/etc/apache2

出来たら一度apacheを動かして確認してみます。ドックの「システム環境設定」の、「共有」の、「Web共有」にチェックを入れます。システム環境設定を閉じて、ブラウザのURL入力フィールドに、

http://localhost/~ユーザ名/

と入力し、「ここはあなた専用のWebサイトです。」というページが現れるのを確認します。

さて、httpd-userdir.confですが、ターミナルでカレントディレクトリを/private/etc/apache2/extraに移動します。そこで、$ ls -lと命令すると、ディレクトリextraの中が見え、次のものがあります。

-rw-r--r--  1 root  wheel    435 Sep 24 10:11 httpd-userdir.conf

これを見てみます。cat httpd-userdir.confと命令します。するとこのように書かれています。

# Settings for user home directories
#
# Required module: mod_userdir

#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.  Note that you must also set
# the default access control for these directories, as in the example below.
#
UserDir Sites

#
# Users might not be in /Users/*/Sites, so use user-specific config files.
#
Include /private/etc/apache2/users/*.conf

最後の一行を見てみると、そこでまた*.confというファイルを読み込んでいます。「*」はワイルドカードです。ディレクトリusersの中の「.conf」と拡張子がつく全てのファイルを読み込むのです。そこでまたカレントディレクトリを移動して、/private/etc/apache2/usersに行きます。そこでlsすると、私のユーザ名.confというファイルがありました。そしてそれをcatしてみると、次のようなものでした。

<Directory "/Users/私のユーザ名/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

これを、始めにhttpd.confを弄ったように、バックアップをとったり、パーミッションをかえたりしながら、次のように書き換えました。

<Directory "Users/私のユーザ名/Sites/">
    #Options Indexes MultiViews
    Options +ExecCGI
    AddHandler cgi-script .cgi
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

そしてターミナルを終了し、ドックから「システム環境設定」を起こし、「共有」の「Web共有」のチェックを一旦外し、また入れて、apacheを再起動させます。今回はここまでです。

Posted by nao at 3:51 午後
Categories: Mac環境
|