ザ・ケイズページ
TOP > WindowsにおけるWebサーバの構築 > AnHTTPD設定「一般」タブ

最終更新日 : Saturday, 06-May-2006 00:09:18 JST

AnHTTPD設定「一般」タブ

  1. HTTPサーバ機能
     通常はONのままにする。
     AnHTTPDをWebサーバとして動作させたいときは必ずチェックを入れる。AnHTTPにはプロキシサーバの機能もあり,プロキシサーバとしてのみ動作させたいときはチェックをはずす。なので,通常はONのまま。

  2. バーチャルホスト
     通常はOFFでよい。
     バーチャルホスト機能を使うと複数のホストを単一PCで動作させることができる。たとえば,「www.keikun.homeip.net」と「www2.keikun.homeip.net」という二つのホスト名別にそれぞれ,ドキュメントルートやポート番号などを設定できる。だが,ここではあまり詳しく説明しない。

  3. HTTPバージョン
     HTTPのバージョンを1.0と1.1とを切り替えることができる。通常はデフォルトの1.1のままでよい。両者の差は使えるメソッドが違うことである。
    1.0 : GET, HEAD, POST, PUT, DELETE, LINK, UNLINK
    1.1 : GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT

  4. ドキュメントルート
     必ずWeb公開用フォルダを作成し,変更すること。
     ドキュメントルートとは,どこのフォルダ以下のファイルをWebで公開するかということである。たとえば,この「keikun.homeip.net」というサーバにドキュメントルートを「D:\www」と設定したのならば,「D:\www\index.html」というファイルが「keikun.homeip.net/index.html」で見ることができるのである。
     ドキュメントルート以下においたファイルは基本的にすべて外部からアクセス可能になるため十分に理解した上で設定を行ってほしい。

     また,セキュリティーの観点より以下のような設定はさけた方がよい。

    ・Windowsのルートディレクトリ(たいていCドライブ)におくことは避ける。
    ・「D:\」「E:\」のようなドライブルートをドキュメントルートとすることは避ける。(十分理解した上なら大丈夫)

  5. ポート
     通常はデフォルトの80を使用する。
     ブラウザで「http://keikun.homeip.net/」とアクセスしたとき,80番ポートへアクセスするため,通常は変更しない。
     どうしても,Webサーバソフトを重複して起動しないと行けない場合などの特殊な場合に80番ポートから変更した場合,次のようにブラウザからアクセスする。
    例:8888番ポートに設定した場合
    http://keikun.homeip.net:8888/
     また,プロバイダによっては80番ポートによるサーバの公開を許可していないところがあるのでご注意を。

  6. デフォルトインデックス
    変更の必要性はないが,必要があれば変更する。
     デフォルトインデックスとは,URLをファイル名なしのディレクトリのみの指定で行ったときに補われるファイル名。
     例えば,デフォルトインデックスを「index.html」と指定したとき,「http://keikun.homeip.net/」でアクセスすることと,「http://keikun.homeip.net/index.html」でアクセスすることは同じことである。
     「index.html」のほかにも「index.htm」や「default.htm」などを指定することもある。任意のファイル名を設定可能。
     複数のファイル名を指定可能で,指定の仕方は優先度の高い順からコンマ「,」で区切り並べる。
    例:「index.html,indexhtm,default.htm」
     デフォルトインデックスに指定したファイルがすべて見つからないときは,インデックスリストが表示される設定になっていればインデックスリストが,なってなければHttp Error404をはき出す。

  7. ユーザのドキュメントルートの指定
     AnHTTPDはApacheほどユーザディレクトリに関する考え方を重要視しておらず,ここで行った設定は後ほど説明する「エイリアス」で表現可能である。したがって,ここで設定をしてもよいが,エイリアス設定で設定がダブる可能性があることと,ユーザディレクトリを作成するほどのWebサーバを立てることが目的ではないはずなのでチェックをはずしてもかまわない。

  8. リモートホストを取得
    適宜変更する。
     アクセスしてきたホスト名を取得するかどうかを設定する。取得するとアクセスログファイルなどにホスト名で記録されr,取得しないとIPアドレスのまま記録される。
     「CGI/SSIでは取得」にすると CGI/SSI実行時に環境変数 REMOTE_HOST が必要な場合にのみホスト名を取得する。
     取得する設定にすると毎回DNSに問い合わせするのでパフォーマンスが落ちるというのもあるかもしれないが,それほどアクセス数が多くない(一日にせいぜい千回程度までのアクセス)Webサーバならそこまでシビアになることはないと思う。なので,私はONをおすすめする。

  9. SSIを許可する
     SSIを使用する場合にのみONにし,使用しない場合やわからないときはOFFにする。
     「/index.html」というのは,ドキュメントルート直下の「index.html」にのみ許可することを示す。
     「*.shtml」というのは,拡張子が shtml のファイルを示す。shtmlファイルというのはhtml文の中にSSIを埋め込んであるものとそうでないものを区別するために使用するファイルである。
     「*.html」を指定すると,すべてのHTMLにSSIを含むかどうか検査するのでパフォーマンスが落ちることと,セキュリティー的にもあまり良くないのでチェックは入れない方がよい。

     一般的にSSIを使用するときは,カウンタなどSSIを含んだhtmlの拡張子は「.shtml」にし,その他のHTMLとは区別する。そしてサーバの設定はデフォルトのままにしておくことをおすすめする。

  10. CGIを実行する
     CGIを使うならONに,使わないならOFFにする。
     ちなみに,CGIを実行できない環境でCGIスクリプトへのリクエストがあると,CGIは実行される代わりにソースが表示されたりソースのダウンロードになる。

  11. NPHスクリプトではサーバから接続を切る
     通常はONでよい。
     NPHスクリプトの場合は出力が終了したらサーバから接続を切断するかどうかの設定である。通常はNPHスクリプトを使用することはないのでONにしておく方がよい。



  12.  実行プログラム一覧が表示されている。セキュリティーの観点から一度すべてのリストを削除してから設定することをおすすめする。
     まず,追加をすると上の画面のような窓がでる。そこでの設定の説明を行う。

    ・「実行する」にチェックを入れるとそこで設定したものが有効になる。必ずチェックを入れる。

    ・拡張子
     どのような拡張子をプログラムで実行するかを指定する。例えば,CGIを動かしたいなら「.cgi」,PHPを動かすなら「.php」となる。また,複数の拡張子を指定することも出来,カンマで並べて指定する。

    ・実行プログラム
     指定した拡張子をどのプログラムで動作させるのか,プログラムまでのパスを記述する。(パスとはそのプログラムが存在する場所を示す。)例えば,このサイトの説明通りにActive Perlを「D:\perl\」へインストールしたのならば,Perlの実行ファイルは「D:\perl\bin\perl.exe」に存在するので,実行プログラムにそれを記述する。

    ・一般パスでも実行する
     普通CGIは実行パスで実行する(「cgi-bin」などCGI専用のディレクトリを作成し,その中でのみCGIを許可するということ。)ものを,普通のパス(ディレクトリ)でもCGIを実行してしまうオプションである。実行パスというのは「エイリアス」を指定するときに登場するが,CGIに関しては一般パスで実行を許可してもかまわないと思う。ただ,拡張子に「.exe」を指定したときはチェックしない方がよい。(特別なときは別として,cmd.exe や command.com への実行を防ぐためにもチェックしてはいけない。)

    ・#!の行をチェックする
     通常CGIスクリプトを記述するときソースファイルの一行目に「#!」からはじまる実行プログラムまでのパスを記述しなければならない。・・がしかし,AnHTTPDに関しては実行プログラムまでのパスを指定してしまうので,ここであえてプログラムまでのパスを調べる必要はない。なのでOFFでかまわない。
     もし,#!の行をチェックする設定を行った場合はCGIスクリプトの一行目に「#!d:\perl\bin\perl.exe」と記述しなければならない。

    ・PATH_TRANSRATEDを使う
     PATH_TRANSRATEDに実行ファイル名を入れるかどうかを指定する。古いバージョンの PerlIS.dll や,php.exe,php4isapi.dllなどではチェックが必要である。

    ・EXE形式の実行
     EXE形式とは「.exe」の事を示すのではなく,バイナリ実行形式のファイルを示す。NamazuのCGIなどはPerlのスクリプトファイルではなく実行形式で配られており,通常は「namazu.cgi.exe」で配られている。先ほど述べたとおり,「.exe」のファイルを実行することはさけた方がよいので,このファイル名を「namazu.cgi」に変更し,CGIとして動作させたいときはチェックをONにする。
     なお,ここにチェックがあるとAnHTTPDはCGIという拡張子の時は,CGIスクリプトなのかバイナリ実行ファイルなのか(EXE形式)を検査してから実行する。

     通常の使用法なら先ほどの画面の通りに設定したものだけを置いておくだけで十分なはずである。

  13. CGI/SSIプロセス制御
    ・単一スレッド
     Windows 95/98/Meの場合はチェックする。NT/2000/XPの場合は適宜決めるが,不安なときやわからないときはチェックをする。
     チェックするとCGIやSSIは一つしかスレッドをたてなくなる。つまり,二重にCGIが起動しなくなる。
     掲示板やカウンタのログなどのファイルロック(排他的制御)が出来ないとき,その代わりをする役目がある。
     Windows NT / 2000 / XP (ファイルシステムにNTFSを使用しているときに限る)ではOSが排他制御を行うため,単一スレッドに制限する必要はない。

    ・ヘルパープロセス
     Windows 9xシリーズのリソース減少対策のためにあるオプション。リソースの減少でシステムが不安定になる場合にのみONにする。
     Windows NT/2000/XPでは9xのようなリソースの減少でトラブルになることはほぼ無いので,チェックをしない。チェックによるCGIの誤動作の報告例もあったようである。

    ・CGI出力を検査・SSI出力を検査
     チェックを入れるとそれぞれエラー(HTTP ERROR 500など)が発生するとブラウザにメッセージを表示する。
     デバッグのためにチェックを入れた方が良いという考えもあるが,エラーの内容によってはファイルまでのローカルパスを表示することもあったり チェックしない方が実行が早いだろうという考えで外した方が良いということ人もいる。私はチェックしない方をおすすめする。

  14. ISPIタイムアウト
     ISAPI, PerlIS のタイムアウト時間を指定する。デフォルトは20秒である。特に理由がない限り変更する必要はない。ちなみに0秒を指定するとタイムアウトしなくなる。

  15. 接続持続タイムアウト
     HTTP/1.1の場合,同じスレッドからのリクエストをここで指定した時間だけ待つ。通常はデフォルトのままでかまわない。AnHTTPDのスレッドの上限である50を越えてしまうなどのトラブルが発生する場合などに調整すればよい。

基本設定は以上である。つづいてエイリアスの設定の説明に移る。

Topics 5 「AnHTTPDの基本設定・その1」

Topics 7 「AnHTTPD設定「エイリアス」タブ」


(c) 2000-2005 Kei All Rights Reserved.