AN HTTPDエラーメッセージ集
2002.10.05 改版
2000.04.02 初版
AN HTTPDでよく出るエラーとその対応方法を説明する。ただし全ての場合を網羅しているわけではない(Error 500関連など。プロクシ/キャッシュ関連は完全に手抜きである)。
エラーの意味が分からないときに(特に初心者)、多少は役立つと思います。
Error番号 400、401、403、404、500、501、503、プロクシ関連 の説明にジャンプします。
(注) IE をデフォルトの設定のまま使っている人は必ずここを読んで設定を変更してください。
- Error 400
(IEでは設定によって上に「ページが見つかりません」、下に「HTTP 400 - 正しくない要求」と出る場合がある)
- [メッセージ内容]
◆ブラウザ上
Error 400
不正リクエスト - パスに予約デバイス名を含んでいます。
[状況]
アクセスしたURLに、prn, con, nul, lpt1, com1 などのデバイス名が含まれる。
URLに /../../../ のように一つ上のディレクトリへの移動が連続するときに出ることもある。
[対応]
⇒予約デバイス名を含むパスにアクセスしない。
(注)Windows上では、予約デバイス名と同じ名称のフォルダ/ファイルは作成できない。
- [メッセージ内容]
◆ブラウザ上
Error 400
不正リクエスト - CGIパスに予約デバイス名を含んでいます。
[状況]
バージョンが 1.42e〜1.42h でドキュメントルートをネットワークドライブを含むパスに設定すると全ての CGIがこのエラーで実行できなくなる。
[対応]
⇒1.43 で対応の予定(参考)。
ドキュメントルートをネットワークドライブにはせず、エイリアスでネットワークドライブを設定すれば CGIはエラーにはならないので、エイリアスを使えば一応やりたいことはできるであろう。
- Error 401
- [メッセージ内容]
◆ブラウザ上
Error 401
認証情報が必要です。 -- 指定されたドキュメントへのアクセス権があることを確認できませんでした。 あるいはユー
ザ名/パスワードが間違っています。
[状況]
ユーザ認証のあるURLパスにアクセスし、認証に失敗した。
[対応]
⇒ユーザ名/パスワードが正しく入力されなかったときに出る。サーバの動作は正常である。ブラウザから正しいユーザ名/パスワードを入力しなおせば出ない。
⇒IE5の場合には、標準設定では認証ダイアログが出ないので、セキュリティ設定のユーザ認証-ログオンのところを「ユーザ名とパスワードを入力してログオン」にする。
⇒ユーザ名/パスワードが正しいにも関わらずこのメッセージが出たのなら、「ユーザ認証」タブの設定内容を見直す。
- Error 403
(IEでは設定によって上に「このページの表示が認められていません」、下に「HTTP エラー 403 - アクセス不可」と出る場合がある)
- [メッセージ内容]
◆ブラウザ上
Error 403
ドキュメントにアクセスする権限がありません
[状況]
アクセス制限のあるパスにアクセスして拒否された。
[対応]
⇒拒否IPのホストからアクセスしてこのメッセージが出るのなら、正常に動作している。
⇒本来許可すべきIPのホストでこのメッセージが出たのなら、「アクセス制御」タブの設定内容を見直す。
(注)拒否IPのホストなのにアクセス制限が効いていないという状況は把握が難しいので(httpd.logで応答コードが 403 になっているかどうかを調べれば確認は可能)、可能であれば設定直後に必ず確認した方がよい(インターネット上では難しいであろうが)。
- [メッセージ内容]
◆ブラウザ上
Error 403
このディレクトリのインデックスリストは見られません。
[状況]
「表示/インデックス」タブの中で以下のように設定されていて、
[v]インデックスリスト(ディレクトリリスト)を表示
[v].www_browsableがあるディレクトリのみ表示
index.htmlなどのデフォルトインデックスが存在しないURLパスにアクセスしたときに出る。
[対応]
⇒URLでファイル名を省略してindex.htmlを表示させたいのにこのエラーが出るときは、ファイル名が間違いなくindex.htmlになっているかどうかを確認する。
⇒インデックスリスト表示を禁止しているのであれば対応は不要である。もし、このエラーメッセージを表示させたくないのなら、例えばそのパスに空白ページを表示する index.htmlを置く。
⇒インデックスリストを表示させたいなら、以下のチェックを外すか、
[v].www_browsableがあるディレクトリのみ表示
上のチェックはしたままで .www_browsableファイルをそのディレクトリに置く。.www_browsableファイルはhttpd.exeがあるフォルダの中のhttpd-docsフォルダの中にあるものをコピーするのが簡単である。
(注)少し特殊なケースではあるが、# で始まるファイルにアクセスした場合にもこのエラーになる。URLの中で # はページ内で名前をつけた場所(<A NAME=xxx>)にジャンプするために使用するので、# を含むファイル名は使用しない方がいい。# を %23 で置き換えるとアクセス可能となる。
- [メッセージ内容]
◆ブラウザ上
Error 403
アクセス禁止 - パスに ".." を含んでいます。
[状況]
URLに /../ が含まれ、ドキュメントルートより上位にアクセスしようとして拒否された。
[対応]
⇒URLに http://ホストアドレス/../… という書き方をしない。
- [メッセージ内容]
◆ブラウザ上
Error 403
サーバエラー: 要求に応答できません
[状況]
例えば URL に http:://ホストアドレス/ のように書いている、http://プロクシサーバ:8080/ のようにプロクシにアクセスしているなど。
- [メッセージ内容]
◆ブラウザ上
Error 403
サーバエラー: 指定のプロトコルは使えません : xxxx
[状況]
例えば URL に http://ホストアドレス/abc:/ のように ":" を含んでいる。
- Error 404
(IEでは設定によって上に「ページが見つかりません」、下に「HTTP 404 - ファイル未検出」と出る場合がある)
- [メッセージ内容]
◆ブラウザ上
Error 404
みつかりません - ドキュメントがないか、読み込みができません。
[状況]
URLで指定されたディレクトリ/ファイルが存在しない。URLでファイル名が省略された場合には、デフォルトインデックス(index.htmlなど)が存在しないとこのメッセージが出ることがある。
[対応]
⇒ファイル名/パス名/仮想パス名(エイリアス)などを確認する。半角全角文字違いという単純ミスの可能性もある。エイリアスでは大文字と小文字は区別されるので要注意。
⇒IE5の詳細設定で「いつもUTF-8としてURLを送信する」にチェックが入っていると、日本語を含むURLにアクセスするとこのエラーが出るようである。
⇒ファイル名に半角空白が含まれていないかどうかにも注意する。IEではURLのファイル名の半角空白は %20 に置き換えられるが、NetscapeではError 404になる。半角空白を含むファイル名を使用しないか、あるいはリンクする場合には半角空白を %20 で置き換える。例えば "abc xyz.html" へのリンクは <A HREF="abc%20xyz.html"> のように書く。
⇒http://127.0.0.1/~user_name/ にアクセスしてこのエラーが出るときには、以下の手順1〜3で確実にチェックすることをお勧めする(フォルダ名 www, yito, public_htmlなどは一例)。
- まず、http://127.0.0.1/index.html に正常にアクセスできるようにする。
これは、ドキュメントルート下(例えば c:\www とする)に簡単なindex.htmlを置き(c:\www\index.htmlを作成)、「一般」タブのドキュメントルートを c:\www に設定するだけ。
- 次に、/~user_name を使わずにユーザページのホームにアクセスできるようにする。
ドキュメントルートを c:\www、ユーザホームを c:\www\yito\public_html とすると、上と同様にc:\www\yito\public_html\index.html を作成し、http://127.0.0.1/yito/public_html/index.html にアクセスできることを確認する。
もしこれでエラーするようなら、それはAN HTTPDの設定以外の単純ミスである。
- 最後に、以下の設定をし、http://127.0.0.1/~yito/ にアクセスする。
ドキュメントルート:[ c:\www ]
^^^^^^ ← A
[v] [/~yito] -> ドキュメントルート\[ yito\public_html ]
^^^^^^^^^^^^^^^^ ← B
もしこれでエラーするなら、ほとんど上記の設定ミスが原因である。/~yito の後ろに空白が入っていないかにも注意が必要。
(注)Aの部分の記述とBの部分の記述をつなげると、ユーザホームのパスになるようにすること。
- [メッセージ内容]
◆ブラウザ上
Error 404
見つかりません。 - CGIスクリプトまたはプログラムがありません : xxxxxx
[状況]
xxxxxxで示されるCGIスクリプト(.pl, .cgi, .exe, .batなど)が存在しない。
[対応]
⇒URLのファイル名/パス名/仮想パス名(エイリアス)などを確認する。ファイルが本当に存在するかどうかもチェックする。
- Error 500
(IEでは設定によって上に「ページを表示できません」、下に「HTTP 500 - 内部サーバ エラー」と出る場合がある)
このエラーはほとんどCGIに起因する。エラー内容以前にまず次の点に問題がないことをチェックしておく。
IEで上に「ページを表示できません」、下に「サーバが見つからないか、DNS エラーです。」と表示される場合、Netscapeで「ドキュメントにデータが含まれていません。あとでやり直すか、サーバ管理者にお尋ねください。」と表示される場合には、AN HTTPDのオプション/一般タブの「CGI出力を検査」にチェックするとエラー内容が表示されるようになる。
- [メッセージ内容]
◆ブラウザ上
(Win9x)
Error 500
CGI エラー - 以下のコマンドラインを実行できません : "yyyyyy zzzzzz"
(1.42e以降では、以下の表示に変更になりました)
Error 500
CGI エラー - CGIを実行できません :
(WinNT系)
Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:
'yyyyyy' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません
Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:
指定されたパスが見つかりません。
[状況]
yyyyyy が「perl」の時は、perl がインストールされていないか、perl.exeにパスが通っていない。yyyyyy が「c:\perl\bin\perl.exe」のようにフルパスの時は、「.pl,.cgiの実行プログラム」で指定されたファイル名に誤りがある(パスは合っているがファイルが存在しない)。
「指定されたパスが見つかりません」が出るのは存在しないパスを指定している。
これらのエラーは CGIスクリプトを実行する以前のPerlの設定に関わる問題なので、CGIスクリプトが正しいかどうかは無関係である。
Win9xで1.42e以降では yyyyyy は出力されなくなってしまいました。perl の実行プログラムのパスとファイル名を確認してください。
[対応]
⇒上記 Error 500の確認事項を参考に修正する。
⇒FAQ2#15を参考にする。
⇒過去ログの「以下のコマンドラインを実行できません」あるいは「内部コマンドまたは外部コマンド 操作可能なプログラム」を参考にする。
- [メッセージ内容]
◆ブラウザ上
Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:
…
[状況]
「CGI 出力メッセージ:」の内容が上記の 1. 以外のときは、文法的な誤りなどが原因であることが多い。例えばContent-Type ヘッダがない(自作でない限りこれが原因ということはほとんどないだろうが)、インクルードしているファイルがみつからない、symlink/flockなどWindowsでは使用できない関数を使用しているなどなど。
[対応]
⇒CGI 出力メッセージ: に続く行にエラーの原因が記述されるのでメッセージに従って該当個所を修正する。
「#!の行を調べる」をチェックした場合にもこのエラーが出るので、チェックしていれば外す。
⇒過去ログの「Content-Type ヘッダが正しくありません」を参考にする。
- [メッセージ内容]
◆ブラウザ上
Error 500
CGI エラー - 標準出力に何も出力されていません。
標準エラー出力の内容:
…
[状況]
文字通りCGIが何も出力していない状況です。
[対応]
⇒CGIの改行コードを調べてみる。
⇒UNIX専用に作られたCGIの可能性がある。
⇒WinMeからWin2000にアップグレードしたPCで出るときは、COMSPECがcmd.exeになっていないことが考えられる。
⇒過去ログの「標準出力に何も出力されていません」を参考にする。
- [メッセージ内容]
◆ブラウザ上
Error 500
CGI エラー - 標準出力一時ファイル 1.x を stdout.xにリネームできません。
[状況]
あるCGIがおかしな動作をして、それ以降のCGIの実行でこのエラーが出る場合が多い。まずWindowsを再起動し、CGIを順に試してこのエラーを再現させる。
[対応]
⇒このエラーの前に実行したCGIが怪しいと見当をつけて調べます。
⇒過去ログの「標準出力一時ファイル 1.x を stdout.xにリネームできません」を参考にする。
- [メッセージ内容]
◆ブラウザ上
Error 500
CGI エラー - ヘッダとボディの区切りの空行 が見つかりません。
CGI 出力メッセージ:
Content-type: text/html
…
[状況]
CGIスクリプトで作成される Content-type 行とそれに続くhtml文の間に空行がない。例えば、print "Content-type: text/html\n\n"; とすべきところを、最後の \n が一つしかないなど。初心者が自作したときに起きる。CGI配布サイトからダウンロードしたCGIで起きることはまずない。
[対応]
⇒CGIスクリプトを正しく修正する。
⇒過去ログに「ヘッダとボディの区切りの空行 が見つかりません」の特殊な場合があります。
- [メッセージ内容]
◆ブラウザ上
Error 500
CGI エラー - Content-Type ヘッダが正しくありません。
CGI 出力メッセージ:
デバイスの準備ができていません。
[状況]
フロッピードライブや CD-ROMドライブにアクセスして媒体が入っていないことなどが考えられます。
[対応]
⇒PerlのパスなどがフロッピードライブやCD-ROMドライブになっていないかどうかを確認する。
- [メッセージ内容]
◆ブラウザ上
Error 500
CGI エラー - CGIを実行できません :
[状況]
Win9xで 1.42e以降のときは上記の 1. の可能性大である。その他の可能性としては、CGIスクリプトに長い引数を付けてサーバにリクエストするなどの不正な攻撃を行ったときなどに表示される。
[対応]
⇒不正なアタックをしない。
- Error 501(IEでは設定によって上に「ページを表示できません」、下に「エラー 501/505 - 未実装または未サポート」と出る場合がある)
- [メッセージ内容]
◆ブラウザ上
Error 501
このファイルにはPOSTメソッドが使えません。ファイル名:/xxx/yyy.zzz
[状況]
FORM で METHOD="POST" のときに ACTION でCGIファイルではなく HTMLファイル(yyy.htmlなど)を設定している。
[対応]
⇒ <FORM METHOD="POST" ACTION="yyy.cgi"> のようにCGIファイルを設定する(exe, bat, php 等のCGIは可)。
- Error 503
- [メッセージ内容]
◆ブラウザ上
Error 503
サーバビジー - サーバの負荷のためリクエストに応答できません。後でアクセスし直してください。
[状況]
同時アクセス制限の最大数を越えた。
[対応]
⇒ユーザは大量の同時アクセスが発生しないように設定を見直す。
⇒サーバ管理者は何もしないか、最大数が適当かどうか見直す。
- プロクシ関連エラー
- Error 403
・プロクシサーバエラー: プロトコル http は使用できません
[原因] プロクシタブの「プロトコル: http」にチェックがなく、http://〜 にアクセスした。
・プロクシサーバエラー: ftp プロトコルは使えません。
[原因] プロクシタブの「プロトコル: ftp」にチェックがなく、ftp://〜 にアクセスした。
・Proxy Server Error: Can't respond to the request
[原因] プロクシタブの「プロトコル: Security」にチェックがなく、https://〜 にアクセスした。
・Your access to the document not allowed
[原因] https://〜 で許可されていないポートにアクセスした。
・プロクシサーバエラー: 要求に応答できません
・ドキュメントにアクセスする権限がありません。
[原因] キャッシュのみのモードでアクセスしたがアクセス拒否IPになっている。
- Error 404
・プロクシサーバエラー: キャッシュのみのモードですが ドキュメントがキャッシュにありません。
[原因] キャッシュのみのモードでアクセスした URL がキャッシュされていない。
- Error 500
・プロクシサーバエラー: CONNECT を正常に処理できません
・プロクシサーバエラー: 要求されたサーバのDNSエントリがみつかりません。
[原因] プロクシ使用時に存在しないホストにアクセスしようとした。ホスト名を間違えているか、ホストがダウンしているのかもしれません。
・プロクシサーバエラー: 要求されたサーバに接続できません。
- Error 501
・プロクシサーバエラー: 要求に応答できません
作成:いと,mailto:gfh05223@nifty.com