ホームHTMLに役立つヒントADSLでMACサーバ・実験室 > MacHTTPの勉強

MacHTTPの勉強

 フリーwebサーバのMacHTTPですが、商品版であるWebSTARユーザーが多く、MacHTTPについて日本語で情報を得るのが難しい状況にあるのでコツコツ勉強中です。
 しかし、テストしてみたらCGIの動作がWEB共有に比べて倍くらい遅いことがわかった(MacHTTP 2.4)ので、もはや使う気なし。このページも更新されないでしょう。

目次 ▲ページトップ

インストール ▲ページトップ

 ダウンロードしてきて解凍するとMacHTTP 2.4 トというフォルダができ、その中にMacHTTP Software & Docsというフォルダがあります。この中のMacHTTP 2.4をダブルクリックで立ち上げると、これだけでもう動いています。

 これらのフォルダやソフトはハードディスクのどこにあってもかまいません。

 試しに「http://127.0.0.1/」にアクセスする(このIPは自分自身にアクセスするという意味)と見事にページが表示されます。Documentationをクリックするとリリースノートなどがでてきます。まずは設定法などが知りたいので「MacHTTP Technical Reference」をクリックして説明書きを読みます。

MacHTTP Technical Reference ▲ページトップ

 以下、「MacHTTP Technical Reference」の中から重要と思う点を意訳しつつ抜粋。

必要なシステム:MacHTTP requires System 7 and MacTCP.メモリは600kb以上で、ファットバイナリなので68k MacintoshでもPowerMacでも動きます。

インストール:解凍してダブルクリックで立ち上げる。ハードディスクの任意の位置でよい。

AppleScript:「Apple's Scripting System」フォルダの中身をコピーしてください。「Apple's Scripting System」フォルダの中の2つのフォルダをシステムフォルダの中の拡張機能フォルダの中にコピーします。ただし、PowerMac上でMacHTTPを動かさないならPower Mac folderはコピーしないでね。PowerMacで使うつもりなら両方のフォルダを拡張機能フォルダの中にコピーします……。
 (このあたり、何をしろというのかハッキリわかりません<(_ _)> 単にAppleScriptが動くようにしろということのような気がします。)

3.0 Configuring MacHTTP:設定は「MacHTTP.config」ファイルを書き換えることで行います。MacHTTPが走っている場合は、メニューから、またはアップルイベントを通じて変更できます。
 設定ファイルはプレーンテキストですのでTeachTextなどで変更できます。

MacHTTP Settings File:MacHTTPが最初に実行されると、同じフォルダの中に「MacHTTP Settings」ファイルが作られます。このファイルはセキュリティのためのユーザーネームとパスワード、MacHTTPのオプションメニューから選択された内容を記録します。
 ファイルの内容は「MacHTTP Settings」ファイルのリソースフォークに保存されるので、WEBを通じて中身を覗かれる心配がありません。
 セッティングファイルはアプリケーションと同じフォルダか、初期設定フォルダの中に置けます。これによって複数のMacHTTPを違う設定で動かすことができます。サービスによって違うポートで動かすことはよいアイディアです。


Configuration File Reference:以下「MacHTTP.config」ファイルの中の設定についての説明。

INDEX <file name>: デフォルトで表示されるファイルの名前。

ERROR <file name>: 指定されたファイルが見つからないときに表示する、いわゆる「not found」を表示するファイル名。

LOG <file name>: ログファイル名。

NOACCESS <file name>:アクセス拒否者に対して表示されるファイルの名前。「あんたにアクセス権はない」って表示ですね。

こんな感じ
ERROR :Error.html
INDEX Default.html
LOG :MacHTTP.log
NOACCESS :NoAccess.html
 ファイル名の前の「:」は同じフォルダの中にあるという意味。ただし、INDEXに対しては「:」を付けないこと。

Suffix Mapping:拡張子のマッピング。次のように指定する。
<transfer type> <suffix> <Mac file type> <Mac creator> <MIME Type/MIME Subtype>
 transfer typeはTEXT、CGI、ACGI、SCRIPT、APPL、BINARYのいずれか。
 suffixは対応する拡張子。
 Mac file typeはMAC上のファイルタイプ。例:TEXT、APPL、JPEG、GIFfなど。
 Mac creatorはMAC上のクリエーター。通常は「*」指定でよい。
 MIME Type/MIME Subtypeはwebに送り出すときのファイルタイプ。例:text/html、image/gif、image/jpegなど

 マッピングはデフォルトのままでたいてい大丈夫のはずです。

Security:MacHTTPでは2つの方法でセキュリティを提供します。ひとつはホストベースで、ALLOWまたはDENYの指定で許可/不許可を指定します。
 二つ目はユーザーネームとパスワードによる認証制限です。ファイルはセキュリティ領域(realms)に割り当てます。

ALLOW <address>: アクセスを許可するIPアドレスかドメインネームを記述します。

DENY <address>:アクセスを許可しないIPアドレスかドメインネームを記述します。

REALM <match string> <menu name>:セキュリティ領域(realms)を指定します。許可するユーザーネームとパスワードはMacHTTPの「Edit/PASSWORD」メニューで指定します。詳しくはTutorialsフォルダのセキュリティの項目を見てください。

Realm-based security example:「REALM private Private_Stuff」という指定をしたとします。「private」という文字を含むURLにアクセスしようとすると、ユーザー名とパスワードを聞いてきます。「Private_Stuff」で指定した(MacHTTPのPASSWORDで指定する)グループのユーザー名とパスワードに一致しないと入れません。
 んで、「private」という文字列を指定すると次のケースすべてが該当します。
/private.html
/a_folder/private_things.html
/private_files/picture.gif

Port Number:ポートナンバーの指定です。フツー、HTTPは80番ポートを使用します。1024番未満のポートはtelnet, FTP, HTTP, Gopherなどのサービスで使われるので、1024以上の番号を勧めます。(ちなみに80番ポートの代替として8080番がよく使われる)

PORT <number>: ポート番号を指定します。省略すると80番になります。

User Limit:同時にアクセスできるユーザーの数を指定します。最低3以上の数を指定してください。上限は1000です。あんまり多くするとサーバの動きが鈍くなりますので、8〜20の間に指定しておくといいでしょう。

MAXUSERS <number>: 同時にアクセスできる最大人数を指定します。3〜48の間で指定します(前述のUser Limitでは1000まで許可できるとなっているが、ここの説明では最大48までとなっている)。省略すると8になります。

Listening for Clients:(この部分、自信がありません。これまでsingle incoming connectionだったので処理しきれなくなると「Unable to connect」というエラーがでていました。どーやらこれがマルチプルになったよ、ということらしいですが、どんな意味を持つのか不明です。User Limitとどう違うんだろう?)

MAXLISTENS <number>: 3〜48の間で指定します。デフォルトは5です。

Timeout:一定時間クライアントから要求がない場合、そのクライアントをディスコネクトします。また、この指定時間以内にサーバが処理を終えられなかった場合、同様にディスコネクトします。キューを監視してこの値を決めるのは重要なことだそーです。

TIMEOUT <seconds>: タイムアウトまでの時間を秒で指定します。最小15秒で、最大600秒です。デフォルトは90秒。


Commands for Tuning MacHTTP's Performance:サーバ調整用の2つのコマンドの説明。

PIG_DELAY <ticks>: ticks(1ticksは1/60秒)を0〜120の間で指定します。(この部分自信なし。MacHTTPがクライアントにデータを送る際に費やす時間のことらしい。この時間だけはMAC上の他の処理を止めてひたすらデータを送りますぜ、ということみたいだ)

DUMP_BUF_SIZE <bytes>: ファイルを転送する際の分割データサイズの指定。このサイズが大きいとその分1回の送信に時間がかかる。反対にこれが小さいとデータを送りきるまでの送信回数が増える。最低256(バイト)で最大10240(10KB)。

NO_DNS: DNSルックアップを行わないようにする。(この項も自信なし。遅いDNSに当たるとサーバの動作が遅くなるから、その場合はこの指定を使え、ということらしい。MacHTTPは最近のドメインネーム検査を保存しているそーです。この設定はDNSで問題が発生した場合だけ使ってくださいってことらしいです。)


Configuration File Version:設定ファイルのバージョンについて。新しいバージョンのMacHTTPを使うときはちゃんと新しい設定ファイルを使って。新しい機能が付け加わっているはずだから。で、設定ファイルのバージョンがあっているかチェックするのがこれ。

VERSION <version number>: フツーいじらないでしょう、これ。


MacHTTP Menus:(以下、省略します)


ホームHTMLに役立つヒント > ADSLでMACサーバ・実験室