投稿日:2007年02月21日 作成鷹の巣

No.21359 mod_layoutとCGI



mod_layoutとCGI

No.21359 投稿時間:2007年02月21日(Wed) 20:46 投稿者名:AI URL:

こんにちは
Apache2.0.55 と mod_layout4.0.2aを使用して
全ページにCGIでコンテンツを埋め込もうと考えていますが

<Directory /home/*/public_html>
AddOutputFilter LAYOUT html
LayoutFooter /home/web/adget.cgi
</Directory>

と記述すると、ソースがそのまま埋め込まれてしまいます
直接アクセスするときちんと実行できます

http://mm.apache.or.jp/pipermail/newbie/2003-May/003734.html

の例を見る限り、Perlも同じような感じだとは思うのですが
全ユーザーディレクトリに対して同じ事を行いたい場合
全てのディレクトリにadget.cgiを用意するしかないのでしょうか


Re: mod_layoutとCGI

No.21363 投稿時間:2007年02月22日(Thu) 15:15 投稿者名:わらび URL:

> こんにちは
> Apache2.0.55 と mod_layout4.0.2aを使用して
> 全ページにCGIでコンテンツを埋め込もうと考えていますが
>
> <Directory /home/*/public_html>
> AddOutputFilter LAYOUT html
> LayoutFooter /home/web/adget.cgi
> </Directory>
>
> と記述すると、ソースがそのまま埋め込まれてしまいます
> 直接アクセスするときちんと実行できます
LayoutFooter /~web/adget.cgi
でいけると思います。

>
> http://mm.apache.or.jp/pipermail/newbie/2003-May/003734.html
>
> の例を見る限り、Perlも同じような感じだとは思うのですが
> 全ユーザーディレクトリに対して同じ事を行いたい場合
> 全てのディレクトリにadget.cgiを用意するしかないのでしょうか
/home/webだけで、OKです。上の設定がそうなっています。


Re^2: mod_layoutとCGI

No.21365 投稿時間:2007年02月22日(Thu) 19:34 投稿者名:AI URL:

> LayoutFooter /~web/adget.cgi
> でいけると思います。

何も表示されませんでした
ユーザーディレクトリ関連の設定はしていないので、そのためかもしれません
CGIはひとつ置けばいいのなら、どこに置いても構わないので
他の表現方法はありませんでしょうか
お手数をお掛けして申し訳ありません


Re^3: mod_layoutとCGI

No.21367 投稿時間:2007年02月22日(Thu) 23:11 投稿者名:わらび URL:

> 何も表示されませんでした
> ユーザーディレクトリ関連の設定はしていないので、そのためかもしれません
> CGIはひとつ置けばいいのなら、どこに置いても構わないので
> 他の表現方法はありませんでしょうか
> お手数をお掛けして申し訳ありません
あ、すみません。間違えました。
LayoutFooter ~/web/adget.cgi
の設定だったので、
/home/web/public_html/adget.cgi
に置けばよかったと思います。

LayoutFooter等の設定で記載するパスは
システムディレクトリではなく、
Apache上のディレクトリです。

なので
LayoutFooter /adget.cgi
なら、DocumentRootで設定している
/var/www/htmlなどになります。
システム上の「/」には、ならないはずです。

なので、管理しやすい場所で
いいかと思います。

また、エラー等出た場合には、
エラーログを参照すれば、なんらか手がかりが
みつかると思います。


Re^4: mod_layoutとCGI

No.21371 投稿時間:2007年02月23日(Fri) 23:06 投稿者名:AI URL:

読み込みはされましたが、実行はできませんでした
やはり、CGIのソースがそのまま表示されてしまいます

ログを見てもエラーではないので厳しいですね・・・


Re^5: mod_layoutとCGI

No.21372 投稿時間:2007年02月24日(Sat) 01:50 投稿者名:わらび URL:

>読み込みはされましたが、実行はできませんでした
>やはり、CGIのソースがそのまま表示されてしまいます
設定は、LayoutFooter ~/web/adget.cgiですか?
実ファイルは/home/web/public_html/adgetですか?

ソースがそのまま表示されてしまうというのは
CGIの設定に問題があるように見えます。
ユーザディレクトリに設置したなら、
OptionsはデフォルトでCGIはOFFになっています。
結果、ソースが表示されます。

一度、LayoutFooterで設定した値で
直接アクセスできるか確認してみて下さい。

ちなみに、debian sarge + apache 1.3.33 + layout 3.2.1-2
で問題無く表示できました。


Re^6: mod_layoutとCGI

No.21374 投稿時間:2007年02月25日(Sun) 01:31 投稿者名:AI URL:

> ソースがそのまま表示されてしまうというのは
> CGIの設定に問題があるように見えます。
> ユーザディレクトリに設置したなら、
> OptionsはデフォルトでCGIはOFFになっています。
> 結果、ソースが表示されます。
承知しています

> 一度、LayoutFooterで設定した値で
> 直接アクセスできるか確認してみて下さい。
ブラウザから直接CGIのURLを指定すれば
問題なく実行できます

> ちなみに、debian sarge + apache 1.3.33 + layout 3.2.1-2
> で問題無く表示できました。
探してても全然こういう事例がないんですよね・・・
全部やり直すわけにもいかないのが辛いところです


本当に困っているので、設定ファイルをUPしてみました
(一部記述は変えてあります)
http://ai.srv7.biz/conf.txt

インストールはVine Linux 3.2からapt-getでしました
ちなみにApache1.3で同じ問題が起きて
望みをかけて2.0にアップデートしても同じ問題にハマるという状況に陥っています


Re^7: mod_layoutとCGI

No.21376 投稿時間:2007年02月25日(Sun) 20:36 投稿者名:わらび URL:

> 本当に困っているので、設定ファイルをUPしてみました
> (一部記述は変えてあります)
> http://ai.srv7.biz/conf.txt
設定みました。
現設定だと「/home/app/public_html」配下しか
Layoutモジュールが有効になりませんが、よろしいですか?
ユーザディレクトリ配下を有効にするのだと思っていたので。

Virtualhostの設定がされていて、rewriteもかかっている為、
どこが原因なのかわからないので、一度Virtualhostの設定を外して
Layoutだけで確認してみてください。
単純にLayoutだけで、稼動するのか試してみたいので。

具体的には、
・Virtualhostのディレクティブをすべてコメントアウト
・DocumentRootである/home/ai/html/hoge/wwwに、CGIを置いて直接アクセスしてOKであること。
・/home/ai/html/hoge/wwwディレクティブにLayoutの設定を入れる。
 「LayoutFooter /elle.cgi」こんな感じで。
・アクセスして確認。

それと、
/etc/apache2/conf.d/*.confが読み込まれているので
余計な物が無いか確認してください。


Re^8: mod_layoutとCGI

No.21383 投稿時間:2007年02月26日(Mon) 18:34 投稿者名:AI URL:

> Virtualhostの設定がされていて、rewriteもかかっている為、
> どこが原因なのかわからないので、一度Virtualhostの設定を外して
> Layoutだけで確認してみてください。
> 単純にLayoutだけで、稼動するのか試してみたいので。
>
> 具体的には、
> ・Virtualhostのディレクティブをすべてコメントアウト
> ・DocumentRootである/home/ai/html/hoge/wwwに、CGIを置いて直接アクセスしてOKであること。
> ・/home/ai/html/hoge/wwwディレクティブにLayoutの設定を入れる。
>  「LayoutFooter /elle.cgi」こんな感じで。
> ・アクセスして確認。
>
> それと、
> /etc/apache2/conf.d/*.confが読み込まれているので
> 余計な物が無いか確認してください。

外して見たところ、うまく動いたので
rewriteを使わずに全部Virtualhostで記述したらちゃんと動きました
確かにrewriteはDocumentRoot等の値がおかしくなるので
大変ですが全部記述することにします
ありがとうございました


Re^9: mod_layoutとCGI

No.21386 投稿時間:2007年02月27日(Tue) 01:33 投稿者名:わらび URL:

ごめんなさい、うそついちゃいました。

>LayoutFooter等の設定で記載するパスは
>システムディレクトリではなく、
>Apache上のディレクトリです。

以前、この様なことを書いたのですが・・・
以下のテストをした結果、違うことがわかりました。

DocumentRoot /tmp/
LayoutHeader /a.html
/a.html
/tmp/a.html
↑両方を設定してみた。
結果、/a.htmlが優先されました。
もちろん/a.htmlがなければ、
/tmp/a.htmlを読みにいきます。

ですが、システム上の場合(上の例だと/a.html)には、
キャッシュHTMLとなってしまって、CGIなどのスクリプトは
無効になってしまうそうです(ソースが表示される)。

>rewriteを使わずに全部Virtualhostで記述したらちゃんと動きました
自分でもいろいろやったのですが、ちょっといけてない形になってしまいました
具体的に、どのように設定しましたか?

>大変ですが全部記述することにします
・A.foge.net → foge.net/~A/ (ユーザのホームディレクトリ)にする。
・Layoutを使う
これをやるんですよね?

rewrite_moduleかvhost_alias_moduleで、できますが、
スクリプトを全ディレクトリに配置するか、
ScriptAliasのように、cgi-binをマップする
といった形になるため、あまりいけてません。

こちらが、参考になります。
http://httpd.apache.org/docs/2.0/ja/vhosts/mass.html

解決策としては、素直にfoge.net/~A/でアクセスさせるか、
layout_module以外のモジュールを探すってところですかね。


目次掲示板過去ログ目次▲頁先頭