- PR -

画像の表示について

投稿者投稿内容
もも
ベテラン
会議室デビュー日: 2007/07/01
投稿数: 78
投稿日時: 2008-07-25 18:54
jdk1.4.2
Tomcat5.0.28
Apache2.2.3

いつもお世話になっております。
現在上記環境で、別サーバー(Apacheのバージョンのみ異なり2.0.?、以降Aサーバー)で動いているアプリケーションを動かそうとしています。
方法としては、Aサーバーのwebapps配下の動いているアプリをコピーして今回利用するTomcatのwebapps上にコピーして、httpd.confの中に設定を追加したのみです。
状況は、アプリは動いているのですが、gifなどの画像がまったく表示されないようになってしまいました。

フォルダ構成は、以下のとおりです。

/testApl

├ /WEB-INF

├ /hoge_jsp├/img
│ │
│ ├ aaa.gif

├hoge.jsp

jspには以下のようにパスを指定しています。
<image src="../hoge_jsp/img/aaa.gif">

下記サイトを参考にして、WEB-INFと同階層にimgをつくり、JSP上の
パスを<image src="./img/aaa.gif">とすると、動くことが判明しましたが、
原因が、いまいちわからないのと、できれば、jspもimgの階層も変えずに、何か他の方法はないものか?と思っています。
Aサーバーでは、画像も表示されていますので、何かサーバーの設定等の変更で対処できないものかと思っています。
どなたか、ご存じの方がいらっしゃいましたら、ご教示くださいますようよろしくお願いします。

http://sakaguch.com/PastBBS/0025/B0013085.html
もも
ベテラン
会議室デビュー日: 2007/07/01
投稿数: 78
投稿日時: 2008-07-25 19:20
補足として、Apacheのhttpd.confには以下のように設定しました。
<Location /testApl/>
ProxyPass ajp://localhost:8009/testApl/
</Location>
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2008-07-26 09:25
Tomcat 側でアクセスログを有効にして、どのようにリクエストが来ているか確認してみてはいかがでしょうか。
もも
ベテラン
会議室デビュー日: 2007/07/01
投稿数: 78
投稿日時: 2008-07-28 13:59
画像が表示されない原因に、思い当たる節があります。
新しく作成したサーバーでは、
http://XXX.XXX.X.XX/testApl/
でアクセスしますが、
Aサーバでは
http://XXX.XXX.X.XX/
でアクセスするように設定させているようです。
ルートが違うので、画像が表示されないということではないかなあと思います。
そこで、質問なのですが、
現在TomcatとApacheの連携の設定はhttpd.confに以下を追加している状態です。

<Location /nvluweb/>
ProxyPass ajp://localhost:8009/nvluweb/
</Location>

これでは、http://XXX.XXX.X.XX/testApl/でアクセスする必要があると思います。
http://XXX.XXX.X.XX/でアクセスするために、以下の箇所を変更しました。
しかし、Apacheのデフォルトのページが表示されてしまいます。
他に変更すべきところがわかりません。
ご存じの方がいらっしゃいましたらご教示ください。

DocumentRootを以下に変更
DocumentRoot "/var/tomcat5/webapps/testApl/

<Directory "/var/www/html">を<Directory "/var/tomcat5/webapps/nvluweb/">に変更
もも
ベテラン
会議室デビュー日: 2007/07/01
投稿数: 78
投稿日時: 2008-07-28 14:32
現在までにわかったことをご報告します。
Apacheのaccess.logには以下のような怪しいエラーが出ていました。

[client XXX.XXX.X.XX] Directory index forbidden by Options directive

※XXX.XXX.X.XXはアクセスしたPCのIPです。

ちなみに、アクセスしようとしたtestAplの属性は、drwxr-xr-xとなっています。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2008-07-28 22:39
Tomcat 側でアクセスログを有効にして、どのようにリクエストが来ているか確認してみてはいかがでしょうか。
もも
ベテラン
会議室デビュー日: 2007/07/01
投稿数: 78
投稿日時: 2008-07-28 23:23
>インギ様

ご返答ありがとうございます。
Tomcat側のアクセスログを確認したところ、ログが出力されていませんでした。
ということは、Apache側でコケているということでしょうか?
ためしに、
http://XXX.XXX.X.XX/testApl/
でアクセスすると、Tomcatのアクセスログも刻まれます。

http://XXX.XXX.X.XX/でアクセスする際はTomcatまで処理が進んでないようなので、Apache側の設定が悪さをしているのでしょうか??

Apache2.1以上はConnectorの役割を兼ね備えているという記述を拝見したもので、mod_jk2を使用していません。
それが影響しているという可能性はあるでしょうか?

何か良い解決策はないでしょうか?
宜しくお願い致します。

山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2008-07-29 00:56
なるほど、Tomcat までリクエストが飛んでいないのであれば、Apache のログに何か書いてあるのではないでしょうか?

[ メッセージ編集済み 編集者: インギ 編集日時 2008-07-29 01:10 ]

スキルアップ/キャリアアップ(JOB@IT)