先日はお世話になりました。
早速なのですが、タイトル通りで、gifの画像が表示されません。
LAN内の別のPCから、サーバー機のIPアドレス(ローカルIP?)や、サーバー機自体からlocalhostで表示させると、
表示されるのですが、全くの外部のPCや、サーバーテストサイトから表示させようとすると表示できません。
画像があるページで、文字(テキスト)しか表示されずIE6でいうと、左下に、
「残り画像○○枚」というような表示になったままになってしまいます。
何処の設定が悪いのか、多少の可能性でも構いませんので、ご指摘いただけないでしょうか。
httpd.confの記述は一通り確認したのですが、私には問題が発見できませんでした・・・
よろしくお願いします。
os:win2000
webサーバー:Apache 2.0.48
です。
特にGIF画像等の制限はないはずです。Windowsであればctrl+F5キーを押して
再読み込みさせた状態はいかがですか?
> 先日はお世話になりました。
>
> 早速なのですが、タイトル通りで、gifの画像が表示されません。
>
> LAN内の別のPCから、サーバー機のIPアドレス(ローカルIP?)や、サーバー機自体からlocalhostで表示させると、
> 表示されるのですが、全くの外部のPCや、サーバーテストサイトから表示させようとすると表示できません。
>
> 画像があるページで、文字(テキスト)しか表示されずIE6でいうと、左下に、
> 「残り画像○○枚」というような表示になったままになってしまいます。
>
> 何処の設定が悪いのか、多少の可能性でも構いませんので、ご指摘いただけないでしょうか。
>
> httpd.confの記述は一通り確認したのですが、私には問題が発見できませんでした・・・
>
> よろしくお願いします。
>
> os:win2000
> webサーバー:Apache 2.0.48
>
> です。
> 特にGIF画像等の制限はないはずです。Windowsであればctrl+F5キーを押して
> 再読み込みさせた状態はいかがですか?
同じ状態で表示できません・・・
gifの置いてある場所は、httpで見れる場所にありますか?
IEのURLにgifのURLをたたいて、ログを見てください。
こんばんは。
> LAN内の別のPCから、サーバー機のIPアドレス(ローカルIP?)や、サーバー機自体からlocalhostで表示させると、
> 表示されるのですが、全くの外部のPCや、サーバーテストサイトから表示させようとすると表示できません。
>
> 画像があるページで、文字(テキスト)しか表示されずIE6でいうと、左下に、
> 「残り画像○○枚」というような表示になったままになってしまいます。
まず、おやじがわかる範囲ですが、上記のサーバーテストサイトというのが、おやじのWWWサーバテストを利用された場合なら、30KByteを越える画像は要求元へ返送しない(無視)のでこういう状態になります。サイズを小さくすれば表示できるならこの問題です。
ただ、他のPCで外部から駄目となると、これが原因とも思えません。ローカルでは見えて、外部から見えないとなるとApacheの問題とは思えません。そこで思いつくのが、コンテンツの書き方で、全て、相対アドレスでgif画像を参照していますか? これが原因なら、Apacheのログを見れば、アクセスしている場所が期待しているところを参照しておらず、404エラーコードが出ているはずです。いずれにしても、どういうエラーが出ているかだと思います。
CGIでの話ではないですよね。CGIをcgi-binで動かしていると、FAQにある問題がありますので。
エラーログは、
notice Child process is running
notice Acquired the start mutex
notice Starting 250 worker threads
と、なっておりました。
これで原因がわかりますでしょうか?
> エラーログは、
>
> notice Child process is running
> notice Acquired the start mutex
> notice Starting 250 worker threads
これは、noticeで正常でもでるものです。今回の件はエラーログではなく
access_logのほうです。後ろから2番目がコードで、404になっているなら、
GET /xxxx/yyyy/zzz.gif
等、想定している場所以外を指してませんか?
申し訳ありません。
只今確認したら、404になっているところがありました。
GET /default.ida?×××××××××××××××××××××××××××××××××
となっていました。
「×」が何十個も続いています。
こんばんは。
> 只今確認したら、404になっているところがありました。
> GET /default.ida?×××××××××××××××××××××××××××××××××
> となっていました。
> 「×」が何十個も続いています。
これは、有名なワームであるCodeRed関係のアタックですから、IIS以外には無関係ですから気にすることはありません。未だに、亜種が俳諧しています。そもそも、このログの頭にアクセス元のアドレスもしくはホスト名があるので、今回のgif画像が見えないことに関連するログではないことは一目瞭然だと思います。
まずは、おやじのWWWサーバテストの件はどうなったのでしょうか? WWWサーバテストの結果は、何が起きているかを切り分ける一つの大きな判断材料であり、Apacheのログとおやじのテストのログを付け合せれば、ほぼサーバ側とクライアント側の動きがわかるので、原因究明が簡単になります。
rieさんは、Webアクセスの仕組みとそれがログ上にどう見えるのかを理解できていないのでは、と思います。
gifは、通常HTML本文内から参照されている形態が多いと思いますが、最初にクライアントからHTML本文のGET要求がサーバ(Apache)にあると、Apacheはそれに対して指定された場所からHTML本文を探してクライアントに送ります。このとき、access_logに
xxx.xxx.xxx.xxx - - [01/Apr/2004:12:15:12 +0900] "GET /~oyaji/ HTTP/1.1" 200 -
というようなログが残ります。xxx.xxx.xxx.xxx が要求元で、GET で/~oyaji/(index.htm)というドキュメントを送るよう要求があり、コードが200ということで正常に送ったということになります。
その後、クライアントは受信したHTML本文の中を解析し、gif画像へのリンクを見つけるので、再度、この画像を取得すべく、HTML本文と同様にgif画像のGET要求を出します。サーバ側ではこれもHTMLと同様の処理をしますが、正常なら、
xxx.xxx.xxx.xxx - - [01/Apr/2004:12:15:12 +0900] "GET /~oyaji/gif/xxx.gif HTTP/1.1" 200 -
のようなgif画像へのアクセスログが残るはずです。問題は、このときに画像が見えないということですから、一つは、このログそのものがあるかどうかです。なければ、サーバにアクセスに来てませんから、考えられるのは、先にも言ったようにHTMLの書き方が悪く、クライアントがサーバとは違うところにアクセスしている可能性があります。これは、クライアントの画面でソースを見てみればすぐにわかることです。インターネット側からアクセスしているにも関わらず、プライベートアドレスになっている等が考えられます。もう一つ考えたのがブラウザで画像表示を止めていないかですが、これは、画像の受信待ちにはならず、正常終了してしまうので対象外と判断しました。あとは、ファイヤウォールで画像表示が止められているというのがありますが、いずれも、そのクライアントで他のサイトで問題がでないなら、これらの問題ではありませんから区別できますし、その場合はサーバ側(コンテンツを含む)問題と切り分けられます。
ログがあるが、画像までのパスがおかしい場合も当然表示できません。その場合は、コードが404になりますし、パーミッションがおかしい場合(644等になっていない)は403になります。
ただ、この場合もエラーメッセージがクライアントに帰るので画像受信待ちにはならないはず。従って、ログには404がどうも見つかっていないようであり、受信待ちになっていることから、おやじはコンテンツの書き方の問題とにらんでいるのですが、いかがでしょうか?
おやじのWWWサーバテストログとそれに対応するApacheのログを付け合せれば、上記ぐらいの切り分けは一発でわかるはずです。おやじのWWWサーバテストは単なるプロキシーと違い、ユーザが見ることができるログを残すことにより動作解析を容易にするためのツールですから、有効に使ってやってください。
おやじ様
ご丁寧な回答ありがとうございます。
理解できてきました。
ここ、数日間色々設定を確認したりしていたら、サーバーテストのページからの表示は出来るようになりました。
ですが、外部のPCからの表示はまだ試していないので確認後に再度、ご報告させていただきます。
※HTMLの記述は触っていませんので、サーバーテストページから表示できた理由が解明できていませんが・・・