AN HTTP Server FAQ2

2003.11.24 追記
2000.10.09 初版
※Qの並びを変更しましたが、番号自体はこれまでと同じです。(2003.9.20)

 まずは中田さんの FAQ

(実行環境・インストール)
Q35AH HTTPDが動作するOSは?
Q36AH HTTPDをインストール/バージョンアップ/アンインストールする方法は?
Q37AN HTTPDの設定を初期化するには?

Q59オプションで設定した情報を他のパソコンに移したい、あるいは OS をクリーンインストールした後も同じ設定にしたいなどの理由で設定情報をファイルに保存したい。
Q61AN HTTPDのホームページからダウンロードしたファイルが解凍できない。

(起動・表示)
Q01AN HTTPDを起動すると「Winsock error 0: サーバソケットを使用できません。他の HTTPサーバが動いていないか確認してください。あるいはポート番号を変えて下さい。」というエラーが出る
Q02「PROXY.DLLがみつかりません」というエラーが出る
Q03起動すると「待機中, httpd - 接続要求待ち」と表示される

Q04コマンドメニューバーに「編集」「接続」「HTTPサーバ」が表示されない
Q05コマンドメニューの一部のコマンドがグレーアウトされて実行できない
Q06ステータスバーにホスト名、IPアドレスが表示されない

Q07AN HTTPDを起動するとダイヤルアップ動作してしまう
Q08Win2000で起動時にDOS窓の表示が残ってしまう
Q09モデムが付いていないパソコンでAN HTTPDが実行できない

Q38WinNT/2000をサービスで動作させているとき、バージョンアップ後の起動に失敗したり、サービスの削除でエラーになることがある。
Q60httpd.exeを実行すると Windows2000では「エラーが発生したため、httpd.exe を終了します。プログラムをもう一度開始する必要があります。」、WindowsXPでは「問題が発生したため、httpd for Windows を終了します。ご不便をおかけして申し訳ありません。」と出て起動に失敗する。
Q62AN HTTPDの起動時に「ローカルコンピュータの AN HTTP Service サービスを開始できません。エラー2:指定されたファイルが見つかりません。」や「Winsock error 997:AN HTTP サービスは既にインストールされています。コントロールパネルのサービスアイコンを使ってスタートして下さい」というエラーが出る。

(アクセスエラー)
Q10http://127.0.0.1/~user/ にアクセスするが、表示されない
Q11LAN環境下でローカルホスト(http://127.0.0.1/)にアクセスできない
Q12「ブラウザが不正なリクエストを送信しました」というエラーが出る

Q53ドキュメントルート下の index.htmlファイルが他のホストからアクセスしたときに表示されないが、なぜ?

(Perl・CGI)
Q13cgisample.htmlの簡単なテストなどで「次のファイルまたはディレクトリを見つけられません」というエラーが出る
Q14cgisample.htmlのテストがダウンロードになってしまう。ファイルタイプでバッチファイル(.bat)のMIMEタイプを追加/変更したいができない
Q15CGIを実行すると「以下のコマンドラインを実行できません」(Win9x)、「'…' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません」(Win2000/WinXP)、「指定した名前は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されません」(WinNT) というエラーになる

Q16CGIを実行すると「Content-Type ヘッダが正しくありません」というエラーになる
Q17PerlにはPerl for Win32、ActivePerlなどいくつか種類があるがどれを使えばいいか?
Q18Netscapeで「ドキュメントにデータが含まれていません」(IEでは「サーバが見つからないか、または DNS エラーです」あるいは「無効または認識されない応答をサーバが返しました」)というエラーが出る

Q19FORMメールを使うには? あるいは sendmail を使いたい。
Q20AN HTTPD上ではCGIがエラーになるがプロバイダのサーバにアップすると動く
Q50Windows2000で簡単な CGIなのにどうしてもエラーになって動かない。

(機能・性能)
Q29プロクシサーバ機能を使うには?
Q30ゲートウェイ機能を使うには?
Q31キャッシュ機能を使うには?

Q32SOCKSサーバ機能を使うには?
Q23ユーザ認証の設定方法は?
Q63ユーザ認証のためのユーザ名/パスワードをテキストファイルから一括登録できないか?
Q51アクセス制御の設定方法は?

Q24PHPは動くか?
Q25Ruby/eRubyを動かすには?
Q26ASPをサポートしているか?

Q27Java Servlet(サーブレット) や JSP は使えるか?
Q56XMLファイルを表示可能か?
Q22AN HTTPDにftpアクセスできない

Q54SSL(https://〜によるアクセス)に対応しているか?
Q55WebDAVに対応しているか?
Q21利用しているプロバイダが htmlアクセス用とCGI実行用で別のサーバになっているが、AN HTTPD上で同じ実行環境を実現するには?

Q28同時実行可能なスレッド数は? また、変更は可能か?
Q33exeファイルをCGIとして実行するものとダウンロードさせるものに使い分けるには?
Q34「東風荘」や「ウルティマオンライン」などのネットワークゲームはできるか?

Q49ブラウザの「戻る」で前のページを表示させると『警告 : ページの有効期限切れ』が表示される。

(自宅サーバ・セキュリティ)
Q41ダイヤルアップルータ接続で、自宅サーバにインターネットからアクセスできない。
Q58自宅サーバにインターネットからアクセスできない。
Q52ダイナミックDNSを使ってバーチャルホストを構築するには?

Q43自宅サーバを常時接続で公開したときのセキュリティ上の注意事項は?
Q44httpd.logに不審なアクセスが記録されているが心配ないか?

(利用について)
Q45AN HTTPDを営利目的で使用してもよいか?
Q46AN HTTPDを再配布してもよいか?
Q47AN HTTPDはこの先もフリーソフトのままか?

Q48AN HTTP Server Home Page にリンクしてもよいか?
Q57AN HTTPDのソースを入手可能か?

(その他)
Q40AN HTTPDの名前の由来は?
Q39AN HTTPDの解説書、参考書の類はあるか?
Q42ゲストブックでしばしば話題に上がるソフトとその配布元


  1. AN HTTPDを起動すると「Winsock error 0: サーバソケットを使用できません。他の HTTPサーバが動いていないか確認してください。あるいはポート番号を変えて下さい。」というエラーが出る。
    (注) 状況によっては「Winsock error 0: …」ではなく「Winsock error 10038: …」のことがある。



    A. 以下のような理由が考えられます。
    (1)AN HTTPDが既に起動している
     AN HTTPDが起動中なのに再度実行すると以下の 2重起動警告のアラートが出る。



    この場合には通常は「はい」を押して終了させる。もし「いいえ」を押すと上記のエラーダイアログが出る。特別な事情がない限り 2重起動させる必要はない。
    (注) 2重起動させる特別なケースとしては、
     ・80番ポート以外のポートでも Webサーバを動作させたい
     ・NT系OSでサービスの実行を停止したい
    がある。別ポートで動作させるときは、httpd.exe に必ず設定名(引数)を付けて実行すること。

    (2)AN HTTPD以外の Webサーバが動いている
     もし Apache, BJD, 04WebServerなどが動いているなら停止するか、80番以外のポート番号に変更する。Windows2000, WindowsXP Proでは IIS(Internet Information Services)が動いているかもしれないのでやはり停止するかポート番号を変える。ポート番号を 80以外に設定したときは、http://127.0.0.1:8000/ のようにポート番号(この例では8000)付でアクセスする必要がある。

    (3)AN HTTPDが異常終了した後の起動で出ることがある
     タスクマネージャのプロセスに httpd.exe が残っていればプロセスを終了させてから AN HTTPDを起動する。それでもだめなら Windows を再起動する。

    (注)似たような状況として、AN HTTPDをサービスとして実行中に、以下のエラーになることがある。



    既に AN HTTPDは稼動しているか、あるいは異常終了した後などでは以下の手順で再実行させる。
     コントロールパネル -> 管理ツール -> サービス -> AN HTTP Service を右クリック -> 再起動

    (注)プロクシサーバ機能を使っているときに以下のよく似たエラーが出ることがあるが、これは上の HTTPサーバの場合とは別物である。
    「Winsock error 10038: プロクシサーバソケットを使用できません。他の プロクシサーバが動いていないか確認してください。あるいはプロクシポート番号を変えて下さい。」



     ちなみにこの原因としては、プロクシサーバ機能にチェックがあり、そのときのサーバIPアドレスが正しく設定されていないことが考えられる。また、Windows2000/XP で PC が LAN接続されていないスタンドアロン状態のときにもこのメッセージが出ることがある。

    関連過去ログ:(1)2000年11月3日05:38、(2)2000年10月5日19:46、(3)2000年9月25日04:24、(4)1999年10月13日16:16


  2. PROXY.DLLがみつかりません」というエラーが出る

    A. このエラーは解凍してできた httpd.exe だけを別のフォルダにコピーして実行したようなときに出ます。httpd,exe と proxy.dll は常に同じフォルダに置いてください。ただし、AN HTTPDのプロクシ機能を使わなければこのエラーが出ても特に問題はありません。AN HTTPD の以前のバージョン(どのバージョンまでかは未確認)では「古いバージョンのproxy.dllです。新しいPROXY.DLLを使ってください」というエラーになることがある。これも proxy.dllがないかそうでなければ httpd.exe と proxy.dll のバージョンが一致していないことが考えられます。

    関連過去ログ:(1)2000年7月28日01:58、(2)2000年3月11日01:41


  3. 起動すると「待機中, httpd - 接続要求待ち」と表示される

    A. AN HTTPDが正常に動作している状態ですので何も問題ありません。ブラウザからAN HTTPサーバにアクセスがある度にこの部分の表示は変化し、実行が終了するとまた元のこの表示に戻ります。

    関連過去ログ:(1)2000年10月8日19:47、(2)2000年7月5日12:55


  4. コマンドメニューバーに「編集」「接続」「HTTPサーバ」が表示されない

    1.30d以降のメニュー


    1.30c以前のメニュー


    A. バージョン1.30dで不要な項目が整理され、その前後のバージョンでは表示が異なります。1.30d以降では上の左図のように表示されていればAN HTTPDは既に実行中であり、ブラウザからのアクセスを待っている状態です。何も問題はありません。

    関連過去ログ:(1)2000年10月7日16:59、(2)2000年10月1日14:34


  5. コマンドメニューの一部のコマンドがグレーアウトされて実行できない

    A. 使う必要のない項目なのでグレーアウトされています。実行上何も問題はありません(バージョン1.30d以降では大幅に減少しています)。

    関連過去ログ:(1)2000年8月20日17:53、(2)2000年7月28日11:04

    1.30d以降


    1.30c以前



  6. ステータスバーにホスト名、IPアドレスが表示されない



    A. オプション/一般メニューの表示/インデックス -> スタートアップの「ホスト名/アドレスを取得」にチェックすると表示されます。
     ちなみにこの欄の表示は以下のようになる。
     ・LAN接続されていないとき:localhost 127.0.0.1
     ・LAN接続されているとき:ネットワークの識別情報で設定したコンピュータ名 プライベートIPアドレス
     ・インターネット接続後に起動:グローバルホスト名 グローバルIPアドレス(環境によっては必ずしもこのようにならないかもしれません)

     コンピュータ名やプライベートIPアドレスが表示されて気になるときは、「ホスト名/アドレスを取得」のチェックを外すとよい。

    関連過去ログ:(1)2000年7月28日11:04


  7. AN HTTPDを起動するとダイヤルアップ動作してしまう

    A. オプション/一般メニューの表示/インデックス -> スタートアップの「ホスト名/アドレスを取得」のチェックをオフにしてください。

    関連過去ログ:(1)2000年10月8日19:47、(2)2000年2月24日23:02


  8. Win2000で起動時にDOS窓の表示が残ってしまう。

    A. 1.30dで修正されました。最新のバージョンを使用してください。

    関連過去ログ:(1)2000年7月21日21:33、(2)2000年4月21日02:40


  9. モデムが付いていないパソコンでAN HTTPDが実行できない

    A. ダイヤルアップアダプタとTCP/IPプロトコルをインストールすれば実行可能です。まず、
     コントロールパネル -> ネットワーク -> 追加 -> アダプタ -> Microsoft ダイヤルアップアダプタ
    を追加します。さらに、プロトコル -> Microsoft TCP/IP を追加し、Windowsを再起動すれば動作します。
    関連過去ログ:(1)2000年10月10日11:01、(2)2000年5月11日14:18



  10. http://127.0.0.1/~user/ にアクセスするが、表示されない

    A. 以下のデフォルト設定を元にした説明に従って、順を追って確認してください。



    ・デフォルト状態で、http://127.0.0.1/readme.html にアクセスすると c:\www\readme.html の内容が表示されるか。
    ・ドキュメントルートを変更したときには、その下に index.html ファイルを置くと http://127.0.0.1/ でアクセスできるか。
    ・ドキュメントルートの下に user さらにその下に public_html フォルダを作成する(user, public_html の名称や階層の深さは任意に設定可)。
    ・c:\www\user\public_html の下に index.html を作成し、http://127.0.0.1/~user/ でアクセスできるか。
    ・もし上記のアクセスでError 403になるようなら、オプション -> 一般 ->表示/インデックス の中の .www_browsable があるディレクトリのみ表示 のチェックを外してファイル一覧から選択する。
    ・http://127.0.0.1/~user/ がError 404 になるときは、http://127.0.0.1/user/public_html/index.html (~user を使わない)ならアクセスできるか
    ・オプション設定で /~user の後に空白が入って気づかないこともあるので注意する。
    ・また、勘違いして c:\www\~user\public_html を作成しないように注意が必要

    関連過去ログ:(1)2000年7月29日21:38、(2)2000年7月20日18:45、(3)2000年6月15日22:56、(4)2000年3月31日01:57


  11. LAN環境下でローカルホスト(http://127.0.0.1/)にアクセスできない

    A. ブラウザの設定でプロキシを使うになっているなら、ローカルホストにはプロキシを使わない設定に(例外に127.0.0.1を追加)してください。

    関連過去ログ:(1)2000年10月13日14:53、(2)2000年8月23日16:28、(3)2000年3月8日23:31


  12. ブラウザが不正なリクエストを送信しました」というエラーが出る

    A. WinGateをポート80でプロクシとして使用していると、WinGateがこのメッセージを出すようです。以下の過去ログを参考にポートの衝突回避などの対策を行ってください。

    関連過去ログ:(1)2000年8月18日23:37、(2)2000年6月22日02:47



  13. cgisample.htmlの簡単なテストなどで「次のファイルまたはディレクトリを見つけられません」というエラーが出る

    A. file:///…/cgi/cgisample.html のように httpアクセスでない場合に以下のエラーが出ますNetscape 4.xの場合)。
       次のファイルまたはディレクトリを見つけられません:
       /cgi-bin/test.bat (どのテストを実行するかで異なる)
       名前を確認して、やり直してください。

     http://127.0.0.1/cgi/cgisample.html からテストを実行してください。
     IEでは「サーバが見つからないか、DNS エラーです」と表示されるか、白紙ページが表示されるだけかもしれません。

    関連過去ログ:(1)2001年1月18日09:30、他に 1999年8月2日06:27、1998年7月19日00:49 にも。


  14. cgisample.htmlのテストがダウンロードになってしまう。ファイルタイプでバッチファイル(.bat)のMIMEタイプを追加/変更したいができない

    A. レジストリエディタ(regedit.exe)で直接、レジストリを書き替えることによって解決可能です。
     HEKY_LOCAL_MACHINE\SOFTWARE\Classes\.bat に
      名前: Content Type
      種類: REG_SZ (Win2000のとき)
      データ: text/plain
    を追加してください。

    (注) この cgisample.html が動かなくてもインターネットからダウンロードした一般の CGIを実行する上で何の支障もありません。それは多くの CGIは Perlで書かれているのに対して cgisample.html は BATというインターネットの世界ではまず使われることのない言語で書かれた CGIだからです。実際、BATの CGIは探してもまずみつからないでしょう。そもそもそういう酔狂な作者自体どこにもいないでしょう。cgisample.html は Perlをインストールしなくても CGIの雰囲気を味わってもらうために作られたテストファイルなので(?) これが動かないといって悩む人が出てこないようにコメントしておきます。

    関連過去ログ:(1)2000年11月3日11:16、(2)2000年10月10日15:03、(3)2000年10月3日20:48、(4)2000年2月20日15:23


  15. CGIを実行すると「以下のコマンドラインを実行できません」(Win9x)、「'…' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません」(Win2000/WinXP)、「指定した名前は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されません」(WinNT) というエラーになる

    A. Perlのインストールやオプション/一般の中の実行プログラムの設定に問題があると思われます(CGIファイル自体に問題があって出るエラーではありません)。

    ・MS-DOSプロンプトから perl -v とコマンド入力してバージョン情報が表示される場合には、オプション/一般の設定が以下のようになっていればこのエラーは出ないはずです。
     ------------------------------------------------
     拡張子  |実行プログラム   |般|#!|PT|EX
     ------------------------------------------------
     v .pl,.cgi perl         v
     ------------------------------------------------

    ・Perlインストール後、PCを再起動しても perl -v でバージョン情報が表示されない(Win9x系なら「コマンドまたはファイル名が違います」と表示される)ときは、PATHが設定されていない可能性があります。Perlのインストール先を確認し(「perl.exe」を検索すれば分かります)、MS-DOSプロンプトから perl.exeをフルパス指定して(Perlをデフォルトのフォルダにインストールしたときは C:\Perl\bin\perl.exe -v のようにコマンド入力します)バージョン情報が表示できることを確認してください。このときは、オプション/一般を以下のように設定してください。Perlのインストール先が C:\Perl 以外のときは、もちろん実行プログラムのパスをそれに合わせます(例えば、C:\www\…\bin\perl.exe のように)。
     ------------------------------------------------
     拡張子  |実行プログラム   |般|#!|PT|EX
     ------------------------------------------------
     v .pl,.cgi C:\Perl\bin\perl.exe v
     ------------------------------------------------

    ・IEではキャッシュファイルの内容が表示されることがあるようなので、インターネット一時ファイルを削除してみてください。
    ・どうしてもPerlのバージョン情報が表示されないときは、Perlをアンインストール後、再インストールしてください。

    関連過去ログ:それでも解決できないときは過去ログの実例を 「以下のコマンドラインを実行できません」の検索結果 で調べてください。特にメッセージの最後に「errorcode = 32, Broken pipe」と出るときは、「broken pipe」の検索結果を参考にしてください。中田さんによる Broken pipe の説明が 1997/12/24 21:27 にあります


  16. CGIを実行すると「Content-Type ヘッダが正しくありません」というエラーになる

    A. CGIの文法的な誤り、Windowsでは許されない関数(例えばWin9x上でflockなど)の使用、Content-Typeヘッダがない、CGI実行中のエラーで異常終了 などいろいろな原因が考えられ、Perlは正しくインストールされているがCGIが動かないというときの多くの場合がこれだと思います。

    「CGI 出力メッセージ:」の後にエラー内容が出力されていますのでそれを手掛かりに解決してください。文法エラーならメッセージの行末に「line xx」のようにCGIソースのxx行目(それより少し前の行の可能性もあり)に問題があるという表示が大抵あります。

    エラーメッセージの説明は perldiag(Ark Think Tank)を参照してください。

    関連過去ログ:過去ログの実例を知りたいときは、「Content-Type ヘッダが正しくありません」の検索結果 を見てください。


  17. PerlにはPerl for Win32、ActivePerlなどいくつか種類があるがどれを使えばいいか?

    A. Windows上の主な Perには古い順に以下のものがある。
    (1)Perl for Win32:ftp://ftp.ActiveState.com/unsupported/Perl-Win32/Release/ の Pw32i316.exe(1.5 MB)が最後のバージョン
    (2)ActivePerl build 522:http://downloads.activestate.com/ActivePerl/Windows/5.005/Intel/ の APi522e.exe(5.2 MB)が最後のバージョン
    (3)ActivePerl 5.6.1 build 638:http://downloads.activestate.com/ActivePerl/Windows/5.6/ の ActivePerl-5.6.1.638-MSWin32-x86.msi(約8.5 MB)が最新バージョン(使うときはzipではなくmsiをダウンロードする)
    (4)ActivePerl 5.8.x build 809:http://downloads.activestate.com/ActivePerl/Windows/5.8/ の ActivePerl-5.8.3.809-MSWin32-x86.msi(約12.0 MB)が最新バージョン(使うときはzipではなくmsiをダウンロードする)

     CGIスクリプトのテスト用として使うのであればどれでも大差はない。プロバイダのサーバにアップロード後、CGIを実行するのであれば、そのサーバ上の Perlと同じバージョンを使うのがベストという意見が多い。

     自宅サーバで使用するなら、(1)と(2)は既にサポートが停止しているのでお勧めではない。(3)は現在、世界中のサーバで一番多く使われているであろう「枯れた」安定バージョンなので安心して使える。(4)は最新版なので新しい機能を使いたい人は選んでもよいが、インターネット上で配布されているCGIスクリプトの中には 5.8.x に未対応のものがあることを知っておいたほうがいい。
     例えば NamazuでPPMのインストール(代替手段はある)、DBD-MySQLのインストール(2003.3下旬に可能になった)などでつまずく。時間が経てば解決する問題なので、5.8.xでしか動かないCGIを使うのでなければ(3)を使うのが筆者は賢明と思う。

     (3)と(4)をインストールするには Win9x/Me/NT/2000では こちらのページから、Windows Installer2.0 の入手が必要である(Win9x/Me用とWinNT/2000用は別物なので要注意。WinXPには2.0がバンドルされている。Win2000にバンドルされているのは1.1なので古い)。
     またWin95に(2),(3),(4)のActivePerlをインストールするためには、Microsoft社のDCOM for Windows95(dcom95.exe)が必要である。さらにIEはバージョン5.5以降を必要とする。このあたりのシステム要件は上記のページに記述がある。

     Perl には他に JPerl というものもあるが、JPerlでなくても日本語は扱えるし、JPerlゆえのトラブルもあるので、Perlは初めてという人は手を出さない方がよい。

    関連過去ログ:(1)2000年8月17日15:32、(2)2000年8月13日00:08


  18. Netscapeで「ドキュメントにデータが含まれていません」(IEでは「サーバが見つからないか、または DNS エラーです」あるいは「無効または認識されない応答をサーバが返しました」)というエラーが出る

    A. CGIがエラーになっている。オプション/一般で「CGI出力を検査」にチェックを入れて実行するとエラーメッセージが表示されるようになるので、それに対応する。
     IEの「サーバが見つからないか、DNS エラーです」については「Internet Explorerで出るエラー」も参考に。
    関連過去ログ:(1)2000年10月21日01:12、(2)2000年6月28日00:32、(3)2000年1月22日00:41、(4)1999年11月8日10:09


  19. FORMメールを使うには? あるいは sendmail を使いたい。

    A. Windowsには、UNIX/Linuxのように sendmailコマンドはありませんが、Blatj、sendmail.cgi、sendmail.batwSendmail、などの代替プログラグを使って FORMメールの送信が可能である。

    Blatjは KENT WEBの 自宅マシン・メール送信計画 に解説があります。ただ、この下で説明する sendmail.cgiや sendmail.bat/sendmail.exeと比べると使い方がやや複雑かと思います。

    sendmail.cgi は配布サイトが閉鎖してしまいましたが、以下のURLにある sendmail.pl がその配布サイトにあった sendmail.cgi です(実は CGI ではなく Perlスクリプトです)。
     http://www.lira.co.jp/t-room/xp_server/sendmail.txt
     http://www.kent-web.com/dload/sendmail_pl.txt
    Wayback Machineにも下記URLにコピーが保存されています(いつまでもあると思うな…ですが)。
     http://web.archive.org/web/20030601210930/wan.magical.gr.jp/txt/winsendmail.htm
    使い方は鷹の巣さんの Windows自宅サーバ用フォームメールの設定例 を参考にしてください。

    ◆スペンサーさんの sendmail.bat は Perlスクリプトを BATファイル(sendmail.bat) に変換して UNIX の sendmailコマンドのように使えるようにするものです。
    (注)情報が古いという理由でページが閉鎖されたので、Wayback Machineを参照のこと。
    使い方は 解説ページにある通りですが、以下の要領で Perlスクリプト sendmail.pl(拡張子 txtを pl に変更) としても実行可能です。
    配布ページにある formmail.cgi と jcode.pl を同じフォルダ下に置き、formmail.cgi の中の 11行目を
     $mail_prog = "sendmail";
      ↓
     $mail_prog = "perl sendmail.pl";
    sendmail.pl の 21行目
     $smtpserver = "mail.domain.tld";
    を自分が使用している SMTP サーバに設定すればよい。

    sendmail.bat(sendmail.pl) は sendmail互換なので、例えば KENTさんのところの 掲示板CGIなどで投稿があると管理者にメールする機能は、sendmail.bat をPATHの通ったところに置けばCGIは変更なしに動くし、Perlスクリプトとして実行するなら
     $sendmail = 'perl sendmail.pl';
    と変更するだけでよいのでなかなか便利である。

    Spencerさんのところでは下記URLで、sendmail.exe V2.0 も配布されている。
     http://www.spencernetwork.com/CommonGatewayInterface/WindowsProgram/sendmail.exe.html
    こちらは SMTPサーバで認証が必要なときに使える。
    使用上の注意事項として、sendmail.ini を必ず c:\bin\ の下に置くということがある。
    sendmail.exe も sendmail.ini と同じところに置くなら、上記の formmail.cgiを使う場合には
     $mail_prog = "c:/bin/sendmail";
    のように設定する。
    sendmail.iniの中では、MySMTPServer に使用している SMTPサーバを設定する。
    もし SMTPで認証が必要なら、ユーザ名/パスワードも設定する。
    sendmail.exeも sendmail 互換なので、KENTさんの掲示板CGIは
     $sendmail = 'c:/bin/sendmail';
    とすれば動く。
    呼ぶ側の CGIをほとんど手直ししなくても使えるので、スペンサーさんの sendmail.bat, sendmail.pl, sendmail.exeはお勧めである。

    wSendmail は配布ページの Mailutilの中にある wsendmail.exe であるが、現在のバージョン(2.1)ではドキュメントが同梱されていない。筆者が以前使ったバージョン(1.5)には、wSendmail.rtf ファイルに解説や iniファイルが含まれていたので、wSendMail v1.5を こちらからダウンロードする。
    解凍後、使用方法(wsendmail.iniなど)は wSendmail.rtf を、フォームのサンプルは forms.htm を参考に。過去ログの「いと 1998/12/01 21:14」の個所が参考になるであろう。

    ◆中田さんは Blatj や wSendmailのように外部プログラムを使う方法より、Sendmail.pmの方を勧めておられます(この過去ログ参照)。
    Sendmail.pmは、
     http://alma.ch/perl/ppm/
    の最新版(2003.11.24現在 Mail-Sendmail-0.79-PPM.tar.gz) あるいは
     ftp://ftp.dti.ad.jp/.1/lang/CPAN/modules/by-category/19_Mail_and_Usenet_News/Mail/
    の Mail-Sendmail-x.xx.tar.gz (2003.11現在 x.xxは 0.79)をダウンロードします。
    次に解凍して Sendmail.pmを C:\Perl\site\lib\Mail に置きます。あるいは Sendmail.pmを呼ぶ CGIのあるフォルダに Mailというフォルダを作成し、その下に置いてもよい。
    あるいは以下の手順通りに実行すれば、Sendmail.pm (の最新版)が自動的に C:\Perl\site\lib\Mail\ にコピーされる。
    コマンドプロンプトからコマンド ppm を実行し、
    PPM> install http://alma.ch/perl/ppm/Mail-Sendmail.ppd
    Install package 'http://alma.ch/perl/ppm/Mail-Sendmail.ppd?' (y/N): y
    Installing package 'http://alma.ch/perl/ppm/Mail-Sendmail.ppd'...
    Bytes transferred: 27962
    Installing C:\Perl\html\site\lib\Mail\Sendmail.html
    Installing C:\Perl\site\lib\Mail\Sendmail.pm
    Writing C:\Perl\site\lib\auto\Mail\Sendmail\.packlist
    PPM> quit
    (注) ActivePerl 6.8.0では (y/N)の問い合わせはない。
         プロクシを使っているときは以下の要領で環境変数の設定が必要。
             set HTTP_PROXY=http://192.168.0.2:8080
    
    Sendmail.pmの使い方については例えば以下のページが参考になるかと思います。
     http://internet.watch.impress.co.jp/www/article/1999/1122/special.htm
    Sendmail.pm v.0.79 では 20行目
     'smtp' => [ qw( localhost ) ],
    の「localhost」を環境に応じて SMTPサーバ、SMTPゲートウェイなどの IPアドレスまたはホスト名に変更します。
    また、230行目
     $mail{'Content-Type'} ||= 'text/plain; charset="iso-8859-1"';
    と 531行目
     Content-Type: 'text/plain; charset="iso-8859-1"'
    の「iso-8859-1」を「iso-2022-JP」に変更します。
    ◆この他に鷹の巣さんのサイトでは sendまね〜る を勧めています。sendまね〜る(sendmane.exe) も sendmail互換なので sendmail.exe と同様の使い方ができる。

    ◆シェアウェアでは高機能な SendmailClone がある。

    ◆さらに Googleで「コマンドライン メール smtp windows」を検索すると、コマンドラインからメール送信するプログラムが沢山みつかる。自分で CGIを書ける人はそれらが CGIから呼べるかどうかを試してみてはどうか。
    一例として、以下のようなプログラムがある(ただし、筆者は使ったわけではない)。
     SMAILSimple Send Mail (SSMail)CMAIL WRITER

    関連過去ログ:(1)2000年9月15日07:58、(2)2000年5月28日19:32、(3)2000年2月21日21:51


  20. AN HTTPD上ではCGIがエラーになるがプロバイダのサーバにアップすると動く

    A. まず、AN HTTPD上で hello.cgi などの簡単なCGIなら動きますか?
    それでもプロバイダのサーバ上でしか動かないのであれば、恐らく、UNIX用とWindows用のPerlの相違が原因と思われます。ダウンロードしたCGIスクリプトの多くはUNIX用に作成されており、UNIXでしか使えない関数が使われていることがあります。
    例えば、ActivePerl 5.6.1では、\Perl\html\faq\WindowsActivePerl-Winfaq5.html に以下の関数が ActivePerl では実装されていないとあります(ActivePerl 5.8.0でも同様)。symlink は要注意でしょう。

    プロセスとプロセスグループ用関数
    alarm(), getpgrp(), getppid(), getpriority(), setpgrp(), setpriority()
    ユーザとグループ情報の取得
    endgrent(), endpwent(), getgrent(), getgrgid(), getgrnam(), getpwent(), getpwnam(), getpwuid(), setgrent(), setpwent()
    System V プロセス間通信関数
    msgctl(), msgget(), msgrcv(), msgsnd(), semctl(), semget(), semop(), shmctl(), shmget(), shmread(), shmwrite()
    ファイルハンドル、ファイル、ディレクトリ用関数
    link(), symlink(), chroot()
    入出力関数
    syscall()
    ネットワーク情報の取得
    getnetbyname(), getnetbyaddr(), getnetent(), getprotoent(), getservent(), sethostent(), setnetent(), setprotoent(), setservent(), endhostent(), endnetent(), endprotoent(), endservent(), socketpair()
    また、同じ上記ドキュメントの少し下に WindowsNT系では動くが Windows9xでは動かない例も上がっています。flockは特に要注意です。
    Win32::NetAdmin, Win32::NetResource, Win32::EventLog モジュール
    flock() 関数
    hostname プログラム など
    flock()については flockを含む行の1桁目に # を付ける(コメント行にする)ととりあえず動くでしょう。

    関連過去ログ:(1)2000年10月4日07:09、(2)2000年9月14日00:06、(3)2000年4月22日17:01、(4)2000年4月21日09:40



  21. 利用しているプロバイダが htmlアクセス用と CGI実行用で別のサーバになっているが、AN HTTPD上で同じ実行環境を実現するには?

    A. AN HTTPDのバーチャルホスト機能とWindowsのHOSTS設定を使えば、インターネット上のホスト名のままローカルファイルにアクセスすることが可能になります。ただしダイヤルアップ接続時にはHOSTS設定を変更しないとプロバイダのサーバ上のCGIファイルにアクセスできないので注意が必要です。詳細は以下の過去ログを参照してください。

    関連過去ログ:(1)2000年7月11日11:00、(2)2000年2月8日06:09、(3)1999年11月18日18:09


  22. AN HTTPDにftpアクセスできない

    A. AN HTTPDにはftpd機能はないので、ftpによるファイル転送はできない。War-ftpd や Tiny-Ftpd などの ftpサーバソフトをダウンロードし、インストールしてください。ただし、日本語のファイル名も扱いたいなら War-ftpd は適しません。ファイル名に 5C のコードを含む文字があると転送に失敗します。例えば以下のようなファイル名はアウトです。「…フトウェア…」「…成…」「…請…」「…性…」「…〇〇…」「…算…」。初心者向きではありませんが、筆者は機能が豊富な MoreFTPd! をお勧めします。

    関連過去ログ:(1)2000年9月2日02:21、(2)2000年3月11日00:21、(3)2000年1月8日03:08


  23. ユーザ認証の設定方法は?

    A. ユーザ認証の説明ページを参考にしてください。

    関連過去ログ:(1)2001年2月4日12:22、(2)1999年9月28日21:34の回答


  24. PHPは動くか?

    A. php4をダウンロードしインストール、オプション/一般で拡張子と実行プログラムの対応付けを設定、一般パスでも実行、PATH_TRANSLATEDにチェックなどに注意して設定すれば実行できます。
    AN HTTPDでPHPを動かす や以下の過去ログを参考にしてください。

    関連過去ログ:(1)2000年10月8日03:45、(2)2000年9月13日13:05、(3)2000年4月29日16:44、(4)2000年3月12日08:40


  25. Ruby/eRubyを動かすには?

    A. AN HTTPDでRuby/eRubyを動かす や以下の過去ログを参考にしてください。eRubyは HTML 中にRubyスクリプトを書くことができるすぐれもので、RubyだけでなくeRubyも一緒にインストールしましょう。

    関連過去ログ:(1)2001年7月5日03:25、(2)2001年4月9日03:24、(3)2000年5月17日10:39


  26. ASPをサポートしているか?

    A. AN HTTPDはASP(拡張子.asp)には対応していません。ASPを使いたい場合は IIS を使ってください。AN HTTPDと IIS(80番以外のポートで)の両方を動かし、ASPのときだけ IISを呼ぶ使い方なら簡単でしょう。

    関連過去ログ:(1)2000年11月24日18:27、(2)2000年10月23日15:47、(3)2000年8月27日18:59


  27. Java Servlet(サーブレット) や JSP は使えるか?

    A. 今のところJava Servlet、JSP とも使えません。Apache や IIS では可能な TOMCAT連携ができないからです。ただ、AN HTTPD と TOMCAT の Webサーバ(デフォルトでポート 8080)も同時に動かし、Servletや JSP のときのみ TOMCATサーバを呼ぶような使い方をすれば Servletや JSP も実行可能です。以下の過去ログを参考に。

    関連過去ログ:(1)2003年3月10日01:08、(2)2002年12月23日21:41、(3)2000年9月29日14:36、(4)2000年4月3日22:19、(5)1999年12月1日22:10


  28. 同時実行可能なスレッド数は? また、変更は可能か?

    A. 同時処理可能なスレッド数はデフォルトで 50という制限があります。一般的には 1アクセス当たりの処理は 1〜5スレッド程度(CGIは1スレッド)と予想され、時間がズレればスレッドは終了するので 50で不足するという状況は起き難いと考えられる。ただ、アクセス頻度やマシンスペックなどによっては不足する事態にならないとも言えない。その時は以下のレジストリ変更でスレッド数を増加することが可能である(ただしバージョン 1.39以降)。レジストリの変更後 AN HTTPDの再起動が必要。
    HKEY_LOCAL_MACHINE\Software\AnHttpd\default の MAX_THREAD

    関連過去ログ:(1)2003年1月12日08:26


  29. プロクシサーバ機能を使うには?

    A. プロクシの説明ページを参考にしてください。proxy.pac については自動プロキシ設定についてを参考にしてください。


  30. ゲートウェイ機能を使うには?

    A. ゲートウェイの説明ページを参考にしてください。

    関連過去ログ:(1)2000年9月19日18:02、(2)2000年8月18日02:23


  31. キャッシュ機能を使うには?

    A. キャッシュの説明ページを参考にしてください。

    関連過去ログ:(1)1999年12月13日21:26


  32. SOCKSサーバ機能を使うには?

    A. SOCKSの説明ページを参考にしてください。

    関連過去ログ:(1)2001年4月15日18:45、(2)2000年10月31日11:03、(3)2000年9月16日13:55、(4)2000年8月22日23:44



  33. exeファイルをCGIとして実行するものとダウンロードさせるものに使い分けるには?

    A. 以下のように設定すれば、exeファイルの実行とダウンロードを使い分けられます。
     (1) エイリアスタブで「実行パス」と「一般パス」にエイリアスを追加する。例えば、/execute と /download。
     (2) 実行したいexeファイルを /execute の下に置く。ダウンロードしたいexeファイルを /download の下に置く。
     (3) 一般タブの拡張子設定で、.exe の「一般パスでも実行する」のチェックを外す(「般」のところの「v」が消えた状態)。

    関連過去ログ:(1)2004年5月29日07:45、(2)2004年4月18日17:29、(3)2001年5月22日01:50



  34. 「東風荘」や「ウルティマオンライン」などのネットワークゲームはできるか?

    A. 「東風荘」も「ウルティマオンライン」もサーバPCで SOCKSサーバ機能を動作させ、クライアントPCで SocksCap32を使用すれば可能です。Yahoo!ゲームも同様に SocksCap32に登録したブラウザを起動すればクライアントPCでもゲームが可能になります。SOCKS、SocksCap32については、SOCKSの説明ページ を参考にしてください。その他のゲームについては未確認ですが、同様にSocksCap32を試してみてください。
     ディアブロ(Diablo)、スタークラフト(STARCRAFT)、ディアブロII(Diablo II)、Quake II、Ultima Online、SiN、Life Storm、信長の野望 Internet、三國志 Internet、Direct X(Direct Play)系ゲームについては、YAMAHAのWebページにある ネットワークゲームのための設定ヒント や、MN128のトラブルシューティングのページにある ネットワークゲームができない なども参考になります。もし動作確認できればAN HTTPDコメント集での報告をお願いします。

    (追記)
     パンダネットという囲碁対局ネットワークも上記の SocksCapを使う方法で接続が可能ですが、以下のようにゲートウェイを経由する別の方法でも接続が可能です。
     サーバPC(IPアドレスが例えば 192.168.0.2 であるとする)で AN HTTPDのゲートウェイに以下の設定を追加し、TELNET の前のチェックをオンにします。
    --------------------------------------------
     6969 @ panda-egg.pandanet.co.jp 6969 * (2番目以降に入るときは @ と * はつかないが構わない)
    --------------------------------------------
    
    クライアントPCの hosts で以下のように接続先のホストに中継するサーバPC(192.168.0.2)を設定します(グローバルIPアドレスでなくサーバPCのIPアドレスを指定するのがみそ)。
    ---------------------------------------
     192.168.0.2 panda-egg.pandanet.co.jp
    ---------------------------------------
    
    これによってアクセス用ソフト(PANDA-EGG)で普通に接続すれば、クライアントPC -> サーバPC経由 -> パンダネット という接続が可能になります。

     実は東風荘でもSocksCapを使わなくても上と全く同じ要領で接続することも可能です。サーバPCでゲートウェイに以下を追加します。東風荘には複数の接続用IPがあり、サーバ側のポート番号は全て9007にしなければならないが、受ポート(LAN側のポート番号)は例えば 9007-9010のように異なる値に設定するのがみそ。ここを全て9007にしてしまうと一番下のものしか認識されなくなってしまう。@, * についてはこの上の説明と同様つかなくても問題ない。
    ----------------------------------
    受ポート  ホスト名     ポート
     9007 210.239.241.71 9007
     9008 210.239.241.72 9007
     9009 210.239.241.73 9007
     9010 210.239.241.74 9007
    ----------------------------------
    
    東風荘はパンダネットと違いアクセス先がホスト名ではないので、hosts ファイルは使えない。mjlist.ini ファイルを以下のように変更し、サーバPCを経由するように設定します。第2東風荘、第3東風荘など異なる接続先があり、IPアドレスは全て同じ(192.168.0.2)にするが、受ポートを変えることによって接続先を選択できるようになる。
    --------------------
    [IPLIST]
    (略)
    NAME1=東風荘
    IP1=192.168.0.2     <- ゲートウェイが動くPCのIPアドレスを設定
    ;IP1=210.239.241.71 <- コメント化
    PORT1=9007
    
    NAME2=第2東風荘
    
    IP2=192.168.0.2     <- ここも上と同様ゲートウェイが動くPCのIPアドレスを設定。IP3, IP4も同様
    ;IP2=210.239.241.72 <- コメント化
    PORT2=9008          <- PORT1と同じポート番号は使えないので別番号にする。PORT3, PORT4も9009,9010のように
    (略)
    --------------------
    
     上の2例のようにSOCKSではなくゲートウェイを使う方法は、接続先の ホスト名/IPアドレスとポート番号が分かっている場合には応用が可能なので、他のゲームでも試してみるとうまくいくかもしれない。

    関連過去ログ:(1)2003年2月28日16:19、(2)2001年5月9日17:49



  35. AH HTTPDが動作するOSは?

    A. Windows95/98/NT4.0/2000/Me/XP で動作確認されています。WindowsNT3.51では 1.31cまで 稼働実績 があります。サービスやプロクシを使わず Webサーバ機能だけなら最新バージョンが動くのかもしれませんが、もはや WinNT3.xの使用報告が皆無なので確認できません。NEC PC98上のWindowsでも(動作確認については不明ですが)基本的には問題なく動作するものと思います。

    関連過去ログ:(1)2001年2月23日03:27、(2)2001年2月10日10:12


  36. AH HTTPDをインストール/バージョンアップ/アンインストールする方法は?

    A. インストールとアンインストールの方法はAN HTTPDを解凍したフォルダ内のreadme.htmlに書かれていますのでそちらを参照してください。
     バージョンアップはまずAN HTTPDを実行中なら終了し(WinNT/2000/XPでサービスで実行中なら、コントロールパネル -> 管理ツール -> サービス から停止させる)、以前のバージョンを解凍したのと同じフォルダに新しいバージョンのファイル一式を上書きで解凍します。その後、 httpd.exeを起動(サービスのときは開始)すると以前の設定がそのまま引き継がれ実行されます。
     オプションの設定情報は全てレジストリに記録されているので、以前のファイル一式を削除するなどしても、レジストリを削除しない限り、設定情報が初期化される心配はいりません。
     バージョンアップ前に旧バージョンのアンインストールは必要ありません。
     新旧のバージョンを両方とも試してみたいという場合には旧バージョンとは別のフォルダに解凍すればよい。レジストリは共通なので同じ設定でテストができる。ただし同時に異なるバージョンは起動できない。

     以下のような状況になるのは AN HTTPDが終了していないのが原因です(表示されるメッセージは OSの種類によって多少異なるかもしれません)。
    ・配布された exeファイルを実行して以下のエラーメッセージが出る
     「Can't create output file: インストール先パス\proxy.dll」
    ・配布された zipファイルを上書きで解凍して以下のようなエラーメッセージが出る
     (このメッセージとは限らない。解凍ツールによっては解凍処理のログも要確認)
     「Error: プロセスはファイルにアクセスできません。別のプロセスが使用中です。
     Cannot create インストール先パス/proxy.dll.」
    ・配布ファイルを解凍後、コピーしようとして以下のようなエラーメッセージが出る
     「httpd を作成または置換できません: 指定されたファイルは、Windows が使っています。」
     「httpd をコピーできません。共有違反がありました。
     送り側または受け側のファイルは使用中の可能性があります。」

    (追記) Win2000/XP/NT4でレジストリを削除しようとして削除できないことがあります。削除できずに残るのは恐らく HKEY_LOCAL_MACHINE\Software\AnHttpd\default\SVC\Account でしょう。regedit(Win2000/NT4ではregedt32) でこのレジストリキーを開き、右クリック -> アクセス許可 -> Administrators のフルアクセスの許可欄 にチェックすれば削除できるようになります(参考:2002年12月21日23:532001年10月21日21:28)。

    関連過去ログ:(1)2002年12月14日23:21、(2)2002年10月14日18:14、(3)2000年12月5日22:52、(4)2000年11月22日9:53、(5)2002年12月14日23:21


  37. AN HTTPDの設定を初期化するには?

    A. レジストリエディタ(regedit.exe)を起動し、HKEY_LOCAL_MACHINE\Software\AnHttpd\default 以下を(defaultも含めて)削除後、AN HTTPDを再起動すると設定は全て初期化されます。もしAN HTTPDを設定名付で起動させている場合には、defaultではなくそのキー以下を削除します。

    関連過去ログ:(1)2000年11月29日8:22、(2)2000年7月22日8:14、(3)2000年4月24日02:45


  38. WinNT/2000でサービスとして動作させているとき、バージョンアップ後の起動に失敗したり、サービスの削除でエラーすることがある。

    A. サービス動作がエラーするときは一度サービスを削除した後、必要な処理を実行し、サービスを再開すると問題なくできます。サービスの削除はコントロールパネルのサービスからではなく、サービスタブの中のサービスのチェックを外すことで行います。その手順は、
      1.エクスプローラから httpd.exe を起動する。
      2.タスクトレイのアイコンを右クリックし、オプション/一般のサービスタブを表示させる。
      3.サービスに一度チェックし適用ボタン、次にチェックを外して適用ボタンを押すとサービスは終了する。
    上記の操作途中でエラーが起きても無視してそのまま続けるのがコツ。

    関連過去ログ:(1)2000年11月22日9:53、(2)2000年3月9日11:17、(3)1999年10月16日16:47


  39. AN HTTPDの解説書、参考書の類はあるか?

    A. AN HTTP Server Home Pageの関連リンクの中「AN HTTPD解説付き掲載書籍」にいくつか紹介されています。ただ、書籍はプログラムの変更や新規機能追加に対応できませんので、内容が古くなっていることがあります。書籍よりはむしろWebの紹介ページを参考にした方がいいでしょう。

    例えば以下のページなどが内容的にも新しく、お勧めかと思います。

    関連過去ログ:(1)2000年10月28日05:51、(2)1999年12月15日15:05、(3)1999年11月7日19:19


  40. AN HTTPDの名前の由来は?

    A. HTTPD は HTTP Daemon のことで、ftpd、telnetd などと同様一般的な用語である。AN には以下の3つの意味がある。
      (1) another を略して an
      (2) 不定冠詞の an
      (3) Akio Nakata のイニシャル A.N.

     なお、AN HTTPD はいくつもの名前で呼ばれている。
      (a) トップページなどでは「AN HTTP Server」
      (b) レジストリの中では「AnHttpd」
      (c) バージョン情報は「AN HTTP Daemon」
      (d) メッセージ出力時などは「AnWeb」

    関連過去ログ:(1)2000年5月16日23:35、他に 1999年1月1日15:30、1997年8月6日22:13、1997年12月5日21:01 にも。


  41. ダイヤルアップルータ接続で、自宅サーバにインターネットからアクセスできない。

    A. 当然のことながらローカルでは動作していること。次に、winipcfg(Win9x)、ipconfig(NT/2000)あるいは netstat -an などのコマンドを使ってグローバルIPアドレスを調べ、アクセスしている URLが正しいことを確認します。
     それでもアクセスできないときの多くはルータの NATあるいは IPマスカレードが正しく設定されておらず、グローバルIPアドレスからプライベートアドレスへの変換ができていないことによるのではないかと思われます。取扱説明書や各社のホームページの該当個所をよく読みましょう。また、検索エンジンで機種名をキーに検索すると、設定方法の実例が見つかるかもしれません。
     それでもダメというときには、ゲストブック/コメント集で質問するのではなく各社のサービスセンターに問い合わせるのが筋だと思います。

    ルータメーカー各社のホームページ: YAMAHANTT-MEMN128NEC富士通OMRON

    NAT/IPマスカレードに関するFAQ:
     ・YAMAHA RTシリーズのFAQ / NATとIPマスカレード
     ・AutoNAT(アドレス変換)設定例集 (MN128)
     ・NAT、NATe のFAQ (NEC)
     ・FAQ(NAT(マルチNAT)について編) (富士通)

    関連過去ログ
     YAMAHA 2000年8月14日19:112000年12月25日17:371999年4月11日00:051999年3月17日20:32
     MN128 2000年7月18日04:461998年10月16日11:48
     NEC  2000年2月19日15:191999年2月17日00:09
     Netvehicle 2000年8月9日09:32
     NetGenesis 1999年12月8日20:08
     NetCruz  1999年4月24日02:47


  42. ゲストブックでしばしば話題に上がるソフトとその配布元

    ゲストブックで話題になったことはないが、注目ソフト。


  43. 自宅サーバを常時接続で公開したときのセキュリティ上の注意事項は?

    A. セキュリティ対策のページを参考にしてください。


  44. httpd.logに不審なアクセスが記録されているが心配ないか?

    A. 2001年7〜9月にかけて CodeRed、CodeRed II、Nimda というコンピュータウイルス/ワームが相次いでインターネット上で猛威を奮いました。2002年4月現在、CodeRed、CodeRed II によるアタックは極めて珍しくなりましたが、Nimda に感染したマシンからのアタックは依然として続いているようです。これらはマイクロソフトのWebサーバ IIS の脆弱性を突いたものであり、AN HTTPD から感染することはありません(Nimda は IIS以外の経路(IE, OE経由)で感染することがあるので要注意です)。httpd.log には以下のログが記録されます(nnnはバイト数でありサーバによって値は異なる)。レスポンスとして 404 を返しているので心配無用です。
     CodeRed:
    	"GET /default.ida?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
    	NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
    	NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
    	NN%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090
    	%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a HTTP/1.0" 404 nnn
    
     CodeRed II:
    	"GET /default.ida?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    	XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    	XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    	XX%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090
    	%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a HTTP/1.0" 404 nnn
    
     Nimda:(以下の全てがこの順で出るというわけではない)。
    	"GET /scripts/root.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /MSADC/root.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /c/winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /d/winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /scripts/..%5c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /_mem_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /msadc/..%5c../..%5c../..%5c/..%c1%1c../..%c1%1c../..%c1%1c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /scripts/..%c0%2f../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /scripts/..5c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /scripts/..%5c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 nnn
    	"GET /scripts/..%2f../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 nnn
    CodeRed、CodeRed II、Nimdaに関するもう少し詳しい情報は例えば以下のページなどを参照してください。
     http://www.ipa.go.jp/security/ciadr/vul/20010727codered.html
     http://www.ipa.go.jp/security/topics/newvirus/nimda.html

    (追記)
     2003年3月10日前後から、CodeRed II の亜種である CodeRed.Fが出回っているようです(以下の Symantecの情報を参照のこと)。
     http://www.symantec.com/region/jp/sarcj/data/c/codered.f.html

     CoreRed.Fのアクセスがあると、ログにはこの上の CodeRed IIと同じものが残ります。IISの脆弱性を狙ったワームであり、既に CodeRed対策用の IISの修正パッチを当てていれば全く問題はありません。また、Webサーバとして AN HTTPDしか使っていなければ何の心配もいりません。2001年の時と比べると桁違い以上に数は少ないようです。また国内のホストからも届いているので、ことウイルスに関しては海外だけアクセス拒否しても何の効果もないことは明白です(参考)。httpd.logに XXXX が並ぶのがいやであれば、AN HTTPDで オプション -> ログ -> 「エラーは記録しない」にチェック すれば httpd.logにはログは残らなくなります。

    (追記2)
     2003年8月18日前後から、Welchiaワーム(他にも Welchi, Nachi, MSBLAST.D など様々な呼び方あり)のアクセスがインターネット上で急増している。Welchiaからのアクセスがあると httpd.logには以下のようなログが記録される。
    	"GET / HTTP/1.1" 200 nnn
    あるいは
    	"GET / HTTP/1.0" 200 nnn
    
     一見、トップページにファイル名なしでアクセスしたときと同じ結果であるが、正常なアクセスならトップページの中を解釈してそのページに埋め込まれている画像ファイル(<IMG SRC="…"> の … に書かれたもの)などを続いて読み込んだログが残るのに対して、Welchiaは単にトップページのファイルだけへのアクセスになる。通常はデフォルトインデックス(index.htmlなど)が存在するのでエラーにはならず、AN HTTPDのオプションで「エラーは記録しない」にチェックしてもこのログを除くことはできない。

     Welchiaにはポート135 とポート80 からの2種類のアタックがあるが、ポート80の方は IIS5.0の脆弱性を狙ったものなので、Webサーバが AN HTTPDなら心配無用である。OSが WindowsXP ならポート135からの方は注意が必要である。

      http://www.ipa.go.jp/security/topics/newvirus/welchi.html

     Welchiaは ping(ICMP)に応答のあったホストにアタックするので、ルータ/ファイアウォールソフトを ping に応答しないように設定すれば、アタックを減少させることができる。

    Welchia関連過去ログ: (1)2003年9月4日10:25、(2)2003年8月23日22:08 (ここまで追記2)

    (追記3)
     2004年に入って Welchiaが活動停止し、ICMP(ping)のトラフィックが急激に減少しているとのことである。
     http://www.rbbtoday.com/news/20040106/14700.html
     http://itpro.nikkeibp.co.jp/free/ITPro/NEWS/20040107/138039/
     http://internet.watch.impress.co.jp/cda/news/2004/01/06/1661.html
     http://www.jpcert.or.jp/press/2004/0107.txt
     http://www.cyberpolice.go.jp/detect/pdf/H160106_worm.pdf (ここまで追記3)

    (追記4)
     以下のようなログが増えています(2004年前半)。
      " ?????? HTTP/1.0 400 nnn"
      " ?????? HTTP/1.1 400 nnn"
      " ?????? HTTP/文字化けやでたらめな文字列 400 nnn"

     ?????? は実際にそういう文字列のリクエストがあったわけではなく、AN HTTPDが置き換えた(伏字にした)ものです。本当のリクエストを書かずに伏字にするのはリクエストが極端に長いか、バイナリなので記録できないかなどの理由ではないかと想像します。
     実際のリクエストが何であったかは trace.log を取っていれば調べることは可能ですが、trace.log を取っている人はまずいないでしょうから、後になって httpd.logを見ただけでは分かりません。trace.logを取って調べてみてください。筆者が以前調べた結果についてはこの過去ログを参考にしてください。
     ?????? が全て W32.HLLW.Gaobot.gen というウイルスかどうかは分かりませんが、W32.HLLW.Gaobot.gen については AN HTTPDでは問題はありません。(ここまで追記4)

    関連過去ログ:(1)2002年9月7日22:06、(2)2001年9月18日22:52、(3)2001年8月18日10:48、(4)2001年8月5日21:02、(5)2001年7月19日23:47



  45. AN HTTPDを営利目的に使用してもよいか?

    A. 以前、以下のような質問/回答(抜粋)がありました。
    ---------------------------------------------------------------------------------
    k-taka 1998/10/13 17:38
    このソフトは営利がからむ商業目的に使っても(商用利用)いいのでしょうか?
    そこのところも教えていただけますか?
    皆さんのメールアドレスを見ていると、orやacの方が多いように感じられたもので・・・

    中田昭雄 1998/10/13 21:52
    商業目的でも使用していただく分にはまったくかまいません。
    このページで co の方は確かに少ないかもしれませんが、
    メールの問い合わせでは結構いらっしゃいます。


  46. AN HTTPDを再配布してもよいか?

    A. 以前、以下のような質問/回答(抜粋)がありました。
    ----------------------------------------------------------------------
    kusu 2000/03/09 16:36
    AnHttpdを他の商品に付けて再配布することは可能でしょうか?
    条件とかがあれば教えてください。

    中田昭雄 2000/03/09 21:25
    その商品の内容などを差し支えない範囲でメールでお知らせ下さいませんか?
    原則としては、商品につけての再配布は可能で特に条件はありません。


  47. AN HTTPDはこの先もフリーソフトのままか?

    A. 以前、以下のような質問/回答(抜粋)がありました。
    ------------------------------------------------------
    たかやま兄き 1998/12/13 22:27
    ANHTTPdは今後もずっとフリーのままにするのでしょうか。
    シェアウェアでもいいような気がするけど・・・

    中田昭雄 1998/12/16 21:33
    他のフリーのHTTPサーバに比べて付加価値がつかない限り、
    シェアウェアにすることは考えていません。


  48. AN HTTP Server Home Page にリンクしてもよいか?

    A. リンクフリーですので、ご自由にどうぞ。ついでに「AN HTTPDゲストブック/コメント集 全文検索」のページもリンクフリーです。



  49. ブラウザの「戻る」で前のページを表示させると『警告 : ページの有効期限切れ』が表示される。

    A. 表示されるメッセージは IEでは以下の通りである。
    ------------------------------------------------------
    警告 : ページの有効期限切れ

    要求したページは、フォームで送信された情報を使用して作成されました。このページは、もう利用できません。セキュリティ保護のため、情報は自動的には再送信されません。

    情報を再送信し、この Web ページを表示するには、ツール バーの [更新] ボタンをクリックしてください。
    ------------------------------------------------------

    また、Netscapeでは以下の通りである。
    ------------------------------------------------------
    データがありません

    このドキュメントはポスト操作によって作成されてから、キャッシュの有効期限が 過ぎています。再読込ボタンを押せば、フォームを再送してドキュメントを作り 直すことができます。
    ------------------------------------------------------

     オプション -> 表示/インデックス タブで、Pragma:no-cache にチェックがあると、CGIで作成されたページはブラウザにはキャッシュされず、「戻る」ボタンを押すと上記のようなメッセージになる。Pragma:no-cache のチェックを外せば直前に表示されたページが表示されるようになるが、ブラウザにキャッシュされたページなので、Reload しないとサーバ側で変更があっても結果は反映されない。結局、チェックの有無は大差ないと言えるが、上記のようなメッセージが出るよりも前回と同じ表示が出る方が違和感がないので、チェックを外しておいたほうがいいのではないだろうか。

    関連過去ログ:(1)2002年6月23日15:44、(2)2002年5月16日15:28


  50. Windows2000で簡単な CGIなのにどうしてもエラーになって動かない。

    A. WindowsMeから Windows2000にアップグレードした PCでそういう状況が起きています。Meから 2000へのアップグレードは Microsoftも動作保証しておらず、過去にもトラブルが多数報告されています。CGIを実行して以下のような状況のときは該当する可能性大だと思われます。一時的には COMSPEC を変更すれば動くかもしれませんが、先々を考えると早めに Windows2000のクリーンインストールをすることをお勧めします。

    (1) CGI実行時にブラウザに以下のようなエラーメッセージが表示される。

    Error 500
    CGI エラー - 以下のコマンドラインを実行できません : "c:\perl\bin\perl.exe …\xxx.cgi ", errorcode = 203

    「以下のコマンドラインを実行できません」というのは Windows9x系でしかでないメッセージなのに Windows2000で出るのは元が WindowsMeであったことの証です。「errorcode = 203」が出ている報告もいくつかありますが、必ず出るかどうかは不明です。

    (2) process.log に以下のようなログが記録されている。
     C:\WINDOWS\system32\COMMAND.COM /C c:\perl\bin\perl.exe …\xxx.cgi

    ここは Windows2000では COMMAND.COMではなく CDM.EXE になるところです。Windows2000のインストール時に環境変数 COMSPEC が COMMAND.COM から CMD.EXE に書き替えられないために COMMAND.COM が実行され、CGIエラーになっています。これも元が WindowsMeであったことの証です。

    関連過去ログ:(1)2002年7月4日11:36、(2)2002年4月11日12:31、(3)2001年4月23日12:28


  51. アクセス制御の設定方法は?

    A. アクセス制御の説明ページを参考にしてください。

    関連過去ログ:(1)2002年10月17日08:01、(2)2002年5月2日00:28


  52. ダイナミックDNSを使ってバーチャルホストを構築するには?

    A. 自宅サーバをバーチャルホストにしたいという人には バーチャルホストの説明ページ は余計な部分も多く、返って分かり難いかもしれない。以下では自宅サーバ向けに要点を絞って説明する。

    例えばZIVEで 2つのホスト名 abc.zive.net と xyz.zive.net を取得し、バーチャルホストにするには次のように設定すればよい(非固定IPアドレスなので IPアドレス欄は必ず *.*.*.* にする)。
     abc.zive.net *.*.*.* 80 C:\www1
     xyz.zive.net *.*.*.* 80 C:\www2
    
    このとき
    http://abc.zive.net/ にアクセスすると C:\www1\index.html が、
    http://xyz.zive.net/ にアクセスすると C:\www2\index.html が表示される。

    また abc.zive.net はポート番号 80 に、xyz.zive.net はポート番号 81 にしたいなら、次のように設定する(バーチャルホストで異なるポート番号を使う必然性はないかもしれないが)。
     abc.zive.net *.*.*.* 80 C:\www1
     xyz.zive.net *.*.*.* 81 C:\www4
    
    このとき、
    http://abc.zive.net/ にアクセスすると C:\www1\index.html が、
    http://xyz.zive.net:81/ にアクセスすると C:\www4\index.html が表示される。

    ここまでは問題ないであろうが、最初のケースと違って http://abc.zive.net:81/ や http://xyz.zive.net/ など未設定のアクセスがあったときにどういう結果になるのかちょっと気になる(http://abc.zive.net/ を知っていて http://abc.zive.net:81/ にアクセスしてみようかという人はまずいないだろうが、http://xyz.zive.net:81/ を知っていれば http://xyz.zive.net/ を試してみたくなるのは人情であろう)。

    http://abc.zive.net:81/ にアクセスすると C:\www4\index.html が、
    http://xyz.zive.net/ にアクセスすると C:\www1\index.html が表示される。

    ホスト名 + ポート番号で完全に一致する設定がないときは IPアドレス + ポート番号が一致する一番上の設定が選択されるのである(IPアドレス *.*.*.* は全てのIPアドレスに一致する)。

    もしかすると、http://abc.zive.net/ と http://xyz.zive.net/ あるいは http://abc.zive.net:81/ と http://xyz.zive.net:81/ が全く同じ表示になるとは予想もしていない人がいるかもしれない。もしそうであるなら、
     abc.zive.net *.*.*.* 80 C:\www1
     xyz.zive.net *.*.*.* 80 C:\www2
     abc.zive.net *.*.*.* 81 C:\www3
     xyz.zive.net *.*.*.* 81 C:\www4
    
    のように設定し、2番目、3番目の設定(http://abc.zive.net:81/ と http://xyz.zive.net/)にアクセスがあったときには 4番目あるいは 1番目にジャンプさせるか、白紙のページを表示させなどの工夫をすればいいのではないか。

    グローバルIPアドレスでアクセスがあったときにも IPアドレス、ポート番号が一致する一番上の設定が選択される。もしそれでは不都合であれば、設定の一番上に以下のような設定を置いてジャンプするなり、何かメッセージを表示させるといいのではないか。
     *            *.*.*.* 80 C:\www0
    
    関連過去ログ:(1)2003年01月07日11:51


  53. ドキュメントルート下の index.html ファイルが他のホストからアクセスしたときに表示されないが、なぜ?

    A. AN HTTPDがハード依存のトラブルを起こすことはまずないが、この症状は報告されている限りでは VIAのマザーボード EPIA にオンボードの NICやメルコ LGY-PCI32-GTなど一部のネットワークアダプタが原因のようである。筆者は検証できる環境を持ち合わせてはいないのでこれまでに報告された内容から(推測も含むが)まとめると以下のような状況である。

     現象としては、
    ・自PCからのアクセスでは問題ないが、他のPCからアクセスすると index.htmlが表示されない。
    ・他の CGI、画像ファイル、txtなどは何の問題もないが、ドキュメントルートの index.htmlだけ が表示されない。
    ・SSIを含むページが表示されないという報告もある

     原因は SSIを含むページ(必ず SSIが含まれるということではなく含むとして処理されたページなら全て?)を処理するとチャンクエンコーディングを行うために細切れの応答を返すようになり、これをオンボードの NICが正常に処理しないためであろうということである。

     AN HTTPDの オプション -> 一般 の設定はデフォルトでは
     [v] SSIを許可する : [v] /index.html [v] *.shtml □ *.html

    となっており、/index.html が表示されないのはこのためであろう。であれば、全ての shtml ファイルも表示されないはずである。もし *.htmlにチェックをすると全ての htmlが表示されなくなるのであろう。SSIを許可する のチェックを外してしまえばもちろんSSIは使えなくなるが、表示はされるようになったとの報告がある。

     対策として、SSIを全く使わないならSSIのチェックを外すだけでよい。SSIを使う場合には、オンボードのNICは使用せず、PCIスロットに差す NICや USBタイプのLANアダプタを使えば解決する。

     インターネット上でも以下のページなどいくつかの例がみつかる。
     http://kobo1jo.ddo.jp/EPIAserver/EPIAserver.htm
     http://sakaguch.com/cgi/bbs/?mode=allread&pastlog=0011&no=5740&page=80&act=past#5740

    関連過去ログ:(1)2004年5月4日18:25、(2)2003年3月14日10:30、(3)2003年1月6日11:58、(4)2002年12月9日11:45、(5)2002年10月2日13:03、(6)2002年9月18日00:35


  54. SSL(https://〜によるアクセス)に対応しているか?

    A. 開発中ですが、2002年10月6日に「まだだいぶかかりそう」という中田さんのコメントがありました。期待して待ちましょう。必要に迫られているという人は、stone+OpenSSL、Orenosp+OpenSSL、DeleGate+OpenSSL などでも実現可能なので試してみましょう。

    関連過去ログ:(1)2003年2月25日01:14、(2)2002年10月27日18:30


  55. WebDAVに対応しているか?

    A. 開発中ですが、2002年10月6日に「まだだいぶかかりそう」という中田さんのコメントがありました。レジストリには DAV というキーができていますし、プログラムにも含まれているようなのですが、DAV.DLL が配布されていないのでまだ使えないという状況かと思います。期待して待ちましょう。

    関連過去ログ:(1)2001年4月19日15:13


  56. XMLファイルを表示可能か?

    A. XMLをブラウザで表示するにはスタイルシート(XSL)が必要である。XML と XSLのセットがあればローカルに表示することが可能である。HTMLファイルを直接ファイルとして開いて表示するのと同様である。HTMLの場合と違って、スタイルシートを変更すれば表示方法を自由に変更することができる。XMLファイルは固定でも XSLファイルをいくつか用意すれば異なる見せ方をすることが可能である。
     このあたりを説明したページは Googleで探せばいくらでも見つかるのでここでは特に説明しない。一例として以下のページなどを参考にするとよい。

    ・XML文書を作ってブラウザで表示する
     http://www.antenna.co.jp/XML/XMLLIST/ITOCHU/DATA/xml_cording.html
    ・XML Tip's集
     http://www.ajo.co.jp/xml/xmlTips/index.html
    ・XMLファイルをWebブラウザで表示する
     http://www.asahi-net.or.jp/~YD8S-HMD/others/bookshelf/xml_and_browser.htm

     自分で実際に XMLを表示できるように以下にサンプルを掲載する。この例は http://www.hellohiro.com/xslt.htm(このページ自体は java の解説ページである)からコピーさせていただいた。m(_ _)m

     ダウンロードした上記の XML と XSL ファイルを同じフォルダ下に置き、ローカルファイルとしてアクセスすれば上の表示サンプルと同じものが表示されるであろう。以上はサーバとは直接関係がなく、表示できないとすればブラウザのバージョンが古いからという理由くらいであろう。

     AN HTTPD上に XML と XSL ファイルを置いて表示させるには AN HTTPD のファイルタイプタブで「Windowsのファイルタイプ/MIMEを使用する」にチェックがあれば他には特に設定するところはない。もしこのチェックを外して使わなければいけない理由が何かあるのであれば、その上の設定欄で
     拡張子: xml,xsl
     MIMEタイプ: text/xml
    を追加する。

     XML は HTMLよりも新しい言語なので表示できる/できないがブラウザのバージョンに依存する。Netscape4.7x などではスタイルシートをサポートしていないので XML にアクセスするとファイルのダウンロードになる。IEなら IE6を使うのがよい。IE5.5 はマイクロソフトの独自仕様準拠なので、XSLファイルの中が
     <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    となっていると IE5.5 では表示できない。
     <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    なら IE5.5 でも表示可能であるが、こちらは Netscape6 や Netscape7 で表示できないという問題があるので今では使われない。

    関連過去ログ:(1)2003年4月26日00:39


  57. AN HTTPDのソースを入手可能か?

    A. ソースは公開されていません。ソースを見て Webサーバの動作を勉強したいのであれば ApacheBlackJumboDocなどがソース公開しているので参考にするといいでしょう。さらに、04WebServer もソースを公開しています。

    関連過去ログ:(1)2003年6月6日01:48、(2)2002年3月29日04:17


  58. 自宅サーバにインターネットからアクセスできない

    A. 上記の 41. は情報として古くなってしまったので(まだ執筆してから3年も経っていないのにインターネットの変化の何とも凄まじいことよ)現状に合った説明を作成しました。「外部から自宅サーバへのアクセステストにおけるチェックポイント」を参考にしてください。


  59. オプションで設定した情報を他のパソコンに移したい、あるいは OS をクリーンインストールした後も同じ設定にしたいなどの理由で設定情報をファイルに保存したい

    A. レジストリエディタ(regedit.exe)で AN HTTPDのレジストリ情報
       HKEY_LOCAL_MACHINE\Software\AnHttpd
    をファイルに書き出し(エクスポート)、ターゲット(コピー先)のPCでそのレジストリファイルを取り込め(インポート)ば設定情報を移すことが可能です。レジストリの操作は自己責任ですので全く分からないという人はそれなりに勉強してください。ただ、そんなに難しいものではありません。

    もし特定の情報だけを抜き出して移したいのであれば特定のキー以下を書き出し、あるいは必要な個所だけを残すように書き出したファイルを編集します。編集するにはオプション設定画面とレジストリの対応関係を読めることが必要です。個別に処理するよりは早い段階でレジストリ全体を移した方が楽かと思います。
    例えば、default では以下のような対応になります。
    ・CGIの実行プログラム
    	HKEY_LOCAL_MACHINE\Software\AnHttpd\default\Progs 以下
    ・エイリアス
    	HKEY_LOCAL_MACHINE\Software\AnHttpd\default\CGI\Alias
    	HKEY_LOCAL_MACHINE\Software\AnHttpd\default\Script\Alias
    	HKEY_LOCAL_MACHINE\Software\AnHttpd\default\Aliases
    	HKEY_LOCAL_MACHINE\Software\AnHttpd\default\Alias
    ・ユーザ認証(アクセス制御も含む)
    	HKEY_LOCAL_MACHINE\Software\AnHttpd\default\ACL 以下
    ・アクセス制御のみ
    	HKEY_LOCAL_MACHINE\Software\AnHttpd\default\ACL\IP 以下
    	(この場合、設定の個数は ACLの Countで設定が必要)
    ・バーチャルホスト
    	HKEY_LOCAL_MACHINE\Software\AnHttpd\default\VirtualHost 以下
    ・ファイルタイプ(追加分)
    	HKEY_LOCAL_MACHINE\Software\AnHttpd\default\MimeTypes
    ・ゲートウェイ
    	HKEY_LOCAL_MACHINE\Software\AnHttpd\default\Gateway 以下
    
    関連過去ログ:(1)2003年7月13日03:33、(2)2003年6月13日14:26


  60. httpd.exeを実行すると Windows2000では「エラーが発生したため、httpd.exe を終了します。プログラムをもう一度開始する必要があります。」、WindowsXPでは「問題が発生したため、httpd for Windows を終了します。ご不便をおかけして申し訳ありません。」と出て起動に失敗する

    A. Win2000/XPなど NT系の OSで初めて AN HTTPDを実行するには「管理者(Administrator)権限」が必要です。権限のないユーザが実行すると上記のようなエラーになります。一度、管理者権限で実行するとレジストリが作成されるので次回からは管理者権限のないユーザでも起動が可能になります。ただし設定変更をするにはレジストリの書き換えが必要なのでやはり管理者権限がないとできません。権限のないユーザが変更しようとすると「オプションを変更するには Administrator 権限が必要です。」というメッセージが出ます。Win2000/XPでは管理者になれないユーザは基本的に AN HTTPDの使用は諦めてください。

    もし、使用しているパソコンの管理者に事情を話してレジストリの HKEY_LOCAL_MACHINE\Software\AnHttpd 以下へのアクセス許可を設定してもらえるなら、管理者権限なしでもレジストリへの書き込みが可能になり実行/設定変更ができるようになります。

    関連過去ログ:(1)2003年8月7日17:29、(2)2003年6月6日18:15


  61. AN HTTPDのホームページからダウンロードしたファイルが解凍できない

    A. 配布されたファイル自体は全く問題はないのに、ダウンロードしたファイルの解凍に失敗するという話がときどきあります。CRCエラーになる場合もあるようです。いくらダウンロードし直しても解決しない原因不明なケースはあるようです。他のプログラムの配布サイトで、ファイアウォールソフトを使っていると起きるという説明を見かけることがありますが、AN HTTPDの場合にもあてはまるのかどうかはよく分かりません。どうしても解凍できないというときには、とりあえず窓の杜からダウンロードすれば問題はないということですのでダウンロード先をそちらに変更して試してみてください。

    関連過去ログ:(1)2004年5月22日09:25、(2)2003年9月8日09:02、(3)2003年8月7日19:48


  62. AN HTTPDの起動時に「ローカルコンピュータの AN HTTP Service サービスを開始できません。エラー2:指定されたファイルが見つかりません。」や「Winsock error 997:AN HTTP サービスは既にインストールされています。コントロールパネルのサービスアイコンを使ってスタートして下さい」という以下のようなエラーが出る。





    A. サービスとして起動中に新バージョンを旧バージョンと異なるパスにインストールし、旧バージョンのプログラムを削除してしまったようなときに起きます。コントロールパネルから「開始」すると旧バージョンがないので「ローカルコンピュータの AN HTTP Service サービスを開始できません。…」となり、新バージョンを実行すると既にサービスとして旧バージョンが登録されているので「AN HTTP サービスは既にインストールされています。…」となるのです。

    新バージョン(旧バージョンでも構いませんが)を旧バージョンのあったパスにインストールし、サービスを開始後にオプション -> サービス でサービスのチェックを外せばサービス登録は解除され、解決します。

    上書きインストールであればこのようなトラブルは起きませんので、特に理由がなければ上書きインストールをするのがいいかと思います。

    関連過去ログ:(1)2003年10月26日04:27、(2)2000年11月22日09:53


  63. ユーザ認証のためのユーザ名/パスワードをテキストファイルから一括登録できないか?

    A. AN HTTPDではできないが、筆者が作成した ユーザ名/パスワード一括登録 Perlスクリプトを使えば可能です。

     グループも一括入力したいなら、上で作成されたレジストリファイルにグループ情報を以下の要領で追加記述すれば可能。
    (例)グループ数=12個の例。メンバーのユーザ名をコンマで区切って書き並べる

    [HKEY_LOCAL_MACHINE\SOFTWARE\AnHttpd\default\ACL\Group]
    "Count"=dword:c (16進数の c は10進の 12)
    "0"="group1:user1, user2, …"
    "1"="group2:user3, user4, …"
    "2"="group3:…"

    "9"="group10:…"
    "10"="group11:…"
    "11"="group12:…"

    関連過去ログ:(1)2004年5月26日13:15、(2)2002年2月21日19:25



作成:いと,mailto:gfh05223@nifty.com