« 文字の回り込みのテスト | 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を再起動させます。今回はここまでです。