質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

2852閲覧

外部htmlの表示について

rocky2547

総合スコア6

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2014/12/17 08:49

色々と調べてみても設定できなかったので、質問させて頂きます。

tomcatとapacheは連携済みで、
htdocsの直下にAAAというディレクトリがあり
その中のhtmlファイルを表示させたいです。
SSIの設定が必要かと思い、
以下の作業をしましたが、まだ表示されません。

apache側の設定
httpd.confに以下の設定追加
Options +Includes
AddType text/html .shtml
AddHandler server-parsed .shtml

tomcat側の設定
web.xmlの以下のコメント部分を有効化
ssiの<servlet></servlet>
ssiの<servlet-mapping></servlet-mapping>

context.xmlに下記を追加
<context privileged="true">

ちなみにバージョンは以下の通りです。
tomcat7.0.57
apache2.4

問題解決にあたり他に必要な情報がありましたらコメントお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

マッピングというのは、AAA.warファイルを作って…

とありますが、このAAAというのはディレクトリと同じ名前と言う意味で間違いないでしょうか。

ディレクトリと同じ名前という前提で話を進めます。

確認してみたところ、$TOMCAT_HOME/webapps/CCC.warがありました。

質問に対する回答です。

Tomcatは何かアプリを動かしていますか?その名前(Context)がAAAかBBBだったりしませんか?
→他にはアプリは動かしていません。
あとは、Tomcatを外してみてやってみるとどうなりますか?
→503エラーが出ます。
Tomcat側にSSIの設定を入れるのは何故ですか?
→apacheだけの設定だけではうまくいかなかったので、tomcatも設定変更してみたという程度です。

また、こちら側の環境についてですが、tomcatとapacheをmod_jkで連携させてhtmとjspはtomcatで表示させるようにhttpd.confに設定しています。
あとは同じディレクトリ構成で、tomcat5とapache2.0では外部ファイルは表示できていました。

投稿2014/12/30 06:56

編集2015/06/05 01:07
rocky2547

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

$APACHE_HOME/htdocs/AAA/sample.htmlhttp://localhost/AAA/sample.htmlで表示しようとしてる、で合ってますか?
その前提で確認ですが、AAAのファイルとディレクトリのパーミッションは適切でしょうか。
htdocsの下のファイルを表示するならSSIやTomcatとは関係ないと思います。
OSも分かるともう少し詳しく説明できる可能性があります。


(2014/12/26 11:08のコメントの回答)

SSIだけならTomcatは関係ないと思うので、いったんTomcatは無しで考えます。

Windows(8ですが64bitです)に、Apache Loungeというサイトからバイナリー配布版2.4.10を取得してインストールして、書かれている設定と同じことを試してみました。設定内容は書かれているのをそのままコピペしてます。
結果、ちゃんとSSIが動作して/AAA/hoge.htmlがincludeされました。

ということで、SSIの設定は間違っていないっぽいです。
それ以外に何か問題があるのかも。
httpd -tを実行して、httpdのシンタックスチェックを実施してみてください。
・ファイル名が微妙に違ったり、ファイルが無かったりしませんか?

投稿2014/12/20 16:23

genovese

総合スコア93

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rocky2547

2014/12/22 00:49

お返事ありがとうございます。 また、質問が分かり辛くてすいません。 ブラウザからはAAA配下のhoge.htmlが表示されていないため、ブラウザからソースを表示させると<!--#include virtual="/AAA/hoge.html" -->のソースが表示されていませんでした。 これを表示させたいのですが、SSIの設定は関係ないのでしょうか。。 なお、OSはWindows7の64bitです。
genovese

2014/12/23 12:39

SSIでインクルードしたいファイルが/AAA/sample.htmlなんですね。 で、肝心の「どこ」にインクルードしたいのかが書かれていませんが、中身はともかくファイル名と場所くらいは分からないと判断が難しいと思います。 たとえば、設定のところにAddHandler server-parsed .shtml というのが出てきますよね? これはファイルの拡張子が.shtmlの場合にSSIを処理するという意味です。 もし拡張子が.shtmlじゃなかったら処理されないはず。 なぜ.shtmlだけにするかというと、そうしないとセキュリティー的に危険があるからです。
rocky2547

2014/12/26 02:08

返事が遅れて申し訳ありません。 インクルードしたいファイルが「AAA/sample.html」で、 インクルードさせているファイルがBBB/CCC/sample2.htmlです。 ちなみにトップページはhtdocs直下にsample3.htmlがあります。 ✳︎htdocs以下のディレクトリを記載しています。 genoveseさんのアドバイス通りsample2と3の拡張子を.shtmlに変更しましたが表示されませんでした。
genovese

2014/12/26 13:54

長くなるので回答欄に続きを書きました。
rocky2547

2014/12/29 00:45

わざわざ試して頂きありがとうございます。 httpdのシンタックスチェックは行っていますが、オッケーが表示されているのでこちらからは原因がつかめません。 試して頂いた時の内容について下記を確認させて下さい。 ・私が使っているtomcatのバージョンにはssiの設定があるのですが、特に変更してないということでしょうか。 ・拡張子を.shtmlにしたものはありますでしょうか。
genovese

2014/12/29 07:22

確認の件は、 ・tomcatなしです。AAAがtomcatにどう関係するかで変わりますが、関係ないならtomcatなしでも動作するはず。 ・.shtmlでも.htmlでもできました。 です。 もしかして、Tomcatの方で/AAAをmappingしていたりしますか? それか、AAA.warファイルをデプロイしているとか? だとすると、htdocsにあるドキュメントはそれでは参照できないと思います。 Tomcatとはどうやって連携してるかどうかも分からないので、何とも言えませんが。
rocky2547

2014/12/29 07:53

AAAをマッピングしたりデプロイしてはいないと思いますが、念のためマッピングの設定方法をご教授いただいても宜しいでしょうか。 tomcatとapacheの連携方法はmod_jkの1.2.40を使って連携させています。 ちなみに私のやり方だと各htmlファイルのディレクトリが全てバラバラですが、それは関係あるのでしょうか。
genovese

2014/12/29 10:27

マッピングというのは、AAA.warファイルを作って$TOMCAT_HOME/webappsに置くか、servlet.xmlにContextタグで設定する方法のことです。 この辺は検索してもらった方がはやいと思いますけど。 ディレクトリがバラバラでも、正しいやり方ならできるはずです。 ただ、現在、rocky2547さんの環境の全容が把握できていないので、 何が問題なのかつかみ切れていない状況です。 そうですね、逆に聞きますが、 Tomcatは何かアプリを動かしていますか?その名前(Context)がAAAかBBBだったりしませんか? あとは、Tomcatを外してみてやってみるとどうなりますか? Tomcat側にSSIの設定を入れるのは何故ですか?
rocky2547

2014/12/30 06:58

>マッピングというのは、AAA.warファイルを作って… とありますが、このAAAというのはディレクトリと同じ名前と言う意味で間違いないでしょうか。 ディレクトリと同じ名前という前提で話を進めます。 確認してみたところ、$TOMCAT_HOME/webapps/CCC.warがありました。 質問に対する回答です。 Tomcatは何かアプリを動かしていますか?その名前(Context)がAAAかBBBだったりしませんか? →他にはアプリは動かしていません。 あとは、Tomcatを外してみてやってみるとどうなりますか? →503エラーが出ます。 Tomcat側にSSIの設定を入れるのは何故ですか? →apacheだけの設定だけではうまくいかなかったので、tomcatも設定変更してみたという程度です。 また、こちら側の環境についてですが、tomcatとapacheをmod_jkで連携させてhtmとjspはtomcatで表示させるようにhttpd.confに設定しています。 あとは同じディレクトリ構成で、tomcat5とapache2.0では外部ファイルは表示できていました。
genovese

2014/12/30 13:09

Tomcat5とApache2.0では上手くいっていたんですか。ううむ。 ディレクトリ構成が同じなら、あとは設定しかなさそうですね。それともファイルやディレクトリのアクセス件もなくはないかもしれないですが。 Tomcatのエラーログ、特に503が出た時の内容と、 BBB/CCC/sample2.htmlにアクセスしたときにTomcatを通っているかどうかですね。 Tomcatを通っているかどうかはTomcatのアクセスログを見ると分かります。もしTomcatを通っていたら、相対パスの指定はTomcatから見ての位置を指定しないとダメだと思います。 (何らかの設定が違っていて、以前と動作が変わってしまった可能性を考えています。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問