- 締切済み
自作HTML表示でエラーが出ています。
こんにちは。 全くの初心者なのですが、WEBサーバーを構築に 挑戦しています。 Apacheの動作を確認し、httpd.confを自分の環境に 合わせて編集して、 はじめてHTMLファイルを 表示させようとしたのですが、 エラーメッセージ「HTTP 404」が返ってきています。 URLは、「http:/local/test.htm」としていました。 HTMLファイルは、「D:/hoome」に保存しています。 自分で解決する方法がわからないので、アドバイスをお願いします。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- mpx
- ベストアンサー率71% (149/209)
ANo.6 “この回答への補足”への回答 >> 「This should be changed to whatever you set DocumentRoot to.」 >> なので、この設定を「"D:/home"」にして再トライしてみました。 この英文コメントを理解した上で変更していますね。 "whatever you set DocumentRoot to." 通りの変更なら問題ありません >> Apacheログは出ていません。 アクセスログにも、エラーログにも何も記録が無いと言うことですね >> この「<Directory "D:/home">」設定は、合っていますか? 起動時にエラーを出していないのなら、間違いとは言えませんが このように、AddHanderのスコープ(適用範囲)を特定ディレクトリに 限定する人は少ないと思います。 >> 新しいエラーメッセージには、どのように対応したらいいでしょうか? apache設定以前の問題です。サーバに接続できていません ・apacheは起動していますか? ・ブラウザでのURL入力ミスは有りませんか? httpd.confを色々といじくってしまい起動しなくなってしまったということは有りませんか?
- mpx
- ベストアンサー率71% (149/209)
ANo.4 “この回答への補足”への回答 >> 次の内容がエラー詳細メッセージです。 御提示頂いたメッセージは、ブラウザに表示されたエラーですね。 これは、当初の質問で書かれた404 だけで十分です。 私がアドバイスとして記載したのは、apacheのエラーログです。 エラーログがどこに有るか分からない場合は、httpd.conf内の ErrorLogディレクティブの設定を確認してください >> test.htmは自分で作成して、D:/homeの中に保存していますし、 >> ファイルの参照がどうして出来ないのかがわからないのです。 それを知るために、apacheのエラーログをまず見ましょう。 >> 全て「"D:/home"」に設定しなければならないのでしょうか。 同じ設定は1箇所だけで十分です。 添付された設定は、<Directory ・・>が入れ子になっていますが、 これは投稿時のコピペ ミスですよね。 >> 以上の情報で、なにかお気づきの点があれば、教えてください。 何らかの他の設定(Alias設定等)と干渉しているかもしれませ んが、開示された情報だけでは分かりません。 しつこいようですが、サーバー設定不備などやエラー発生時は エラーログを確認しましょう。そこには重要な手がかりが記録されています。
補足
コピーミスしてしまい、申し訳ないです。 もう一度、設定を書いてみました。 私が設定変更した1箇所はこのようにしています。 「<Directory "D:/home"> AllowOverride None Options ExecCGI Order allow,deny Allow from all AddHander cgi-script .cgi .pl </Directory>」 教えていただいた通りにエラーログが出ているファイルを探し、 みつけることが出来ました。 次の内容です。 「[Sun Aug 17 19:50:24 2008] [error] [client 127.0.0.1] File does not exist: C:/Program Files/Apache Group/Apache2/htdocs/test.html」 サーバーが読みにいっているディレクトリが、 「C:/Program Files/Apache Group/Apache2/htdocs/test.html」 になっています。 そして、httpd.confの設定を再チェックしたら、 「<Directory "C:/Program Files/Apache Group/Apache2/htdocs">」 となっている箇所があり、英語の注釈は 「This should be changed to whatever you set DocumentRoot to.」 なので、この設定を「"D:/home"」にして再トライしてみました。 ブラウザ側の「404」エラーは消えて、今度は、次のように詳細内容が 表示されています。 「この問題は以下を含む様々な原因により発生します: ・インターネット接続が切断された。 ・Web サイトが一時的に利用できない。 ・ドメイン ネーム サーバー (DNS) に到達できない。 ・ドメイン ネーム サーバー (DNS) に、この Web サイトのドメイン名の一覧がない。 ・これが HTTPS (安全な) アドレスである場合、 [ツール]、[インターネット オプション]、[詳細設定] の順に クリックして、[セキュリティ] の項目の下にある、SSL と TLS の プロトコルが有効になっていることを確認してください。」 インターネットオプションの設定は確認OKでした。 Apacheログは出ていません。 先走って、試してみたのですが、 この「<Directory "D:/home">」設定は、合っていますか? 新しいエラーメッセージには、どのように対応したらいいでしょうか? 新しい質問をしてしまって、恐縮です。 お分かりでしたら、教えてください。
- yambejp
- ベストアンサー率51% (3827/7415)
apacheのアクセスログとエラーログどこにあるかわかります? まずそこら辺から理解していない気がしますが・・・
補足
初心者なので、確認方法はわかりません。 本当のご面倒をお掛けしています。
- mpx
- ベストアンサー率71% (149/209)
>> 全くの初心者なのですが、WEBサーバーを構築に 挑戦しています。 今後のアドバイスも含めて、 WEBサーバでエラー発生や期待通りの動作にならないときは、 エラーログを確認する習慣を付けましょう。 今回の場合は 404 なので、エラーログに File does not exist: /hoge/hoge/test.htm のように、どこのフォルダーをWEBサーバが探しに行ったのに 見つからなかったのかが記録されているはずです。 サーバー設定やスクリプトの質問をするときもエラーログを 一緒に明示すると適切な回答を受けやすくなります。
補足
ご指摘ありがとうございます。 次の内容がエラー詳細メッセージです。 「このエラー (HTTP 404 未検出) は、Web サーバーに接続されました が、指定のページが見つからなかったことを意味します。Web ページが 一時的に利用できない可能性があります。他には、Web サイトが変更さ れた、または Web ページが削除された可能性があります。」 test.htmは自分で作成して、D:/homeの中に保存していますし、 ファイルの参照がどうして出来ないのかがわからないのです。 その他に、自分で設定したものは、やはりhttpd.confなのですが、 「<Directory "D:/home"> AllowOverride None <Directory "D:/home"> AllowOverride None Options ExecCGI Order allow,deny Allow from all AddHander cgi-script .cgi .pl </Directory> Order allow,deny Allow from all AddHander cgi-script .cgi .pl </Directory>」 という具合に、ディレクトリ設定以外に、「Options ExecCGI」と 「AddHander cgi-script .cgi .pl」部分をperl用に変更をしています。 また、このファイルの中に<Directory ~>という設定が 何箇所か出てくるのですが、全て「"D:/home"」に設定しなければなら ないのでしょうか。今のところ、上記の部分しか、ディレクトリを直し ていません。 以上の情報で、なにかお気づきの点があれば、教えてください。
- masaki34
- ベストアンサー率48% (19/39)
エラーが出ているのだから、設定も書かないと正解が出るのに時間が掛かると思いますよ。 DocumentRootはD:/homeになっていますか? ファイルはtest.htmで保存されていますか?(test.htmlとかになっていませんか?) まぁ、一番の問題はhttp://local/だと思います。 http://localhost/では?
補足
もう一度、URLを「http://localhost/~」にして、 試してみましたが、やはり同じエラーが表示されました。 DocumentRootも「"D:/home"」に設定してあります。 私も自分で調べていて、httpd.confでScriptAliasの設定を デフォルトのまま 「ScriptAlias /cgi-bin/ "C:/program Files/Apache Group/Apache2/cgi-bin"」 にしていることに気がつきました。 設定変更すれば、表示できるでしょうか? ゆくゆくはCGIを使おうと思って、Perlもインストールしています。 もう一度、教えてください。 よろしくお願いします。
- まこと(@st_guusuke)
- ベストアンサー率31% (19/61)
http://ではなくローカルアドレス(192.168...)で参照してみてはどうでしょう? 同じLAN内でWEBサーバーを構築する場合、ルーターが危険なアクセスと判断してしまう事があるようです。 httpは一度インターネット(外側に)出てからアクセスしようとします。 同じアドレスに戻ってくる要求を危険と判断するようです。 他の場所からアクセスする場合はhttpでいいと思います。 解決するかは分かりませんが参考までに。
補足
教えていただいた通り、IPアドレスのURLで表示を 試みたのですが、同じエラーでした。 基本的な部分でどこかおかしいような気はするんですけれど、 URL入力も疑っています。 Dドライブはディレクトリ設定可能ですよね? 「http://ローカルアドレス or localhost/home/test.htm」でも 試してみたのですが、ダメでした。 またなにか疑わしい設定などがあったら教えてください。
- gekkouya
- ベストアンサー率15% (3/19)
しらんがな(´・ω・`) としか言いようがないんですけど… ファイルの中身とかが全く分からないので これ以上アドバイスのしようが 404はnot foundですが 一応
お礼
自力でWEBサーバー構築はあまり自信ないので、 相談相手をしてくださる方がいると心強いです。 Apacheログが出ていなかったは、やはりApacheが動いていなかった みたいです;。設定修正後、確実にApache起動を確認しましたよ。 これからWEBを作成する予定ですが、 また、つまづいた時には、助けを求めて投稿するつもりです。 ありがとうございました。
補足
色々なご指摘をいただいてありがとうございます。 #apache設定以前の問題です。サーバに接続できていません #・apacheは起動していますか? #httpd.confを色々といじくってしまい起動しなくなってしまったということは有りませんか? 私も不安に思いました。エラーが発生しなくても、よく考えてみたら、 成功のログも出てないなんて...。自分でやった設定をジッと 見てみたら、単純な入力ミスを1箇所発見しました! <Directory~>~</Directory>で囲まれている部分です。 (誤) AddHander cgi-script .cgi .pl (正) AddHandler cgi-script .cgi .pl 昨日、設定した修正した内容はそのままの状態で、念を入れて、 ApacheをRestartさせて、もう一度、「http://localhost/test.htm」で 開いてみましたら、無事、表示させることができました。 解決にここまでお付き合いいただいて、ありがとうございました。