Kenji Arisawa E-mail: arisawa@aichi-u.ac.jp Aichi University Kurozasa 370, Miyoshi-cho Aichi, Japan 2002/04/26
第0.9版との主な違い
Pegasus 1.0a 版は 1.0版のバグ修正版です。1.0 版との使用上の違いはありません。 処理上の違いに関しては技術ノートを参照して下さい。以下に 1.0版と0.9版の違いを載せます。
■ 実行ハンドラの導入
ファイルのパスパターンに応じて、それを処理するプログラムを指定できるようにしました。 この指定はサービス空間の/etc/handlerで行います。このファイルの標準的な内容は次のようなものです。
# path mimetype ramfs execpath arg ... *.http - 0 $target *.html text/html 1 $target *.dx_html text/html 0 /bin/dxこの表は、パスパターン(第1項)によって、そのファイルを処理するプログラム(第4項)と処理の方法(第2項と第3項)を表しています。第5項目以降でプログラムの引数を指定する事もできます。
パスパターンの指定において `/
' は基本的に他の文字と同じ扱いですが(従ってシェルのパスパターンの扱いと同じではありません)、1つの例外があります。
/netlib/*/index.htmlのように、
/*/
のパターンは /
にマッチすると言うルールが追加されています。(このルールは Pegasus が ftp ディレクトリを扱うのに都合の良い様にできている訳です。)
第2項は HTTP ヘッダの ContentType を表しています。これが `-
' の場合にはプログラムは HTTP ヘッダを自ら出力する必要があります。
第3項はプログラムの実行に伴って ramfs がサービスされるか否かを表しています。
第4項は実行プログラムが指定されます。第4項以降に現れる $target
はリクエストされたドキュメントの絶対パスを表しています。第4項が $target
になっていると言う事は、要求されたドキュメントが実行プログラムである事を意味しています。
第5項目以降に実行プログラムの引数を書くことができます。引数の最後が $target
で終る場合には、$target
を省略できます。
■ 実行ハンドラの導入に伴う CGI ファイルの扱い
第0.9版では CGI ファイルの拡張子を.http .cgi .htmlに固定していました。
第1.0版では CGI ファイルの拡張子を実行ハンドラの定義ファイルでユーザが定義する事にしました。(定義しないと CGI が使えません。)
拡張子が CGI のファイルはこのやり方では扱えません。この型のファイルは単に Apache の CGI ファイルとの互換性のために残されてきたのですが、この際に廃止する事にしました。
■ 環境変数の違い
幾つかの環境変数が異なっています。■ httpd の起動オプション
サーバモードで-u -Mが追加されました。これらは httpd をユーザ none 以外のユーザとしてサービスを行う仕組みを可能にするものです。