GEEKy Script Writer [perl and more!]
You should permit the JavaScript!!
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[Apacheメモ]mod_layoutまとめ
Apache1xのmod_layoutには様々な不具合や問題があって、
レンタルwebスペースでユーザーのページに広告を自動
挿入する目的で使うにはデフォルトだと辛いです。
サーバの管理をしているときにかなり苦労しました。

なので、mod_layoutの様々な問題の対処法をメモしておきます。

(1) v3.2.1だと、正常に動作しないことがある 3.2を推奨


(2) 動的コンテンツのContent-typeを認識させる


CGIやPHPで出力する画像が正しく表示されない問題です。http://module.jp/blog/support_to_dynamic_content_type_in_mod_layout.html
ここに詳しい説明やパッチがあるので参照してください

(3) 画像が正しく出力されない


上記ページのコメント欄に報告されている問題で、

ちなみにmod_layout.cのlayout_handler()内でis_ignore()が真の時、バッファ済みのコンテンツをクライアントに送信する箇所があるのですが、そこではコンテンツを
 ap_rputs()
で送信しようとしています。
# ap_rputs()は名前から判るとおり文字列(null terminated string)
# を出力する為の関数なので、データに\0が現れた時点で出力を止めます。

とのことです。

mod_layout.c mod_layout.c 387行目付近で
ap_rputs(body, r);
という関数呼び出しをしていますが、これが問題の関数です。

これの回避方法は上記ページもあるように、

//ap_send_mmap(map_data->file, r, 0, map_data->size);

ap_send_mmap(map_data->file, r, 0, map_data->size);
こいつのコメントアウトを外して、
ap_rputs(body, r);

//ap_rputs(body, r);
これをコメントアウトしてやれば、バイナリデータとして出力されるので、
動的コンテンツが出力する画像も正しく送信されるはずです。

(4) LayoutIgnoreHeaderURIをファイル名で指定できると便利


LayoutIgnoreHeaderURIディレクティブはその名の通りURIで指定するものですが、
サブドメインを使用すると、特定のサブドメインに挿入しない設定にすることが
できません。なのでこれを、対応するファイルのパスで指定できれば便利という
ことで、その改造方法もメモしておきます。

utility.c(オリジナル) 81行目
if (table_find(cfg->uris_ignore_header, r->uri))

のr->uriをRecrest_rec構造対のリクエストされたページに対応するファイル名に
したいので、r->filenameにしてやります。

変更前
if (table_find(cfg->uris_ignore_header, r->uri))

変更後
if (table_find(cfg->uris_ignore_header, r->filename))

まぁこの(4)はサブドメイン形式でサーバーを運用する方
向けのハックですね。モジュールをがりがり書いている人
から見ると、乱暴なやり方なのかもしれませんが、
一応これで動くので、これらの改造をしたい人はあくまで
自己責任でやってみてください。
コメント
この記事へのコメント
>(2) 動的コンテンツのContent-typeを認識させる
これはXREAクラスの無料鯖でもありますね…自分はLayoutIgnoreURIでこっそり対処してますが。
やっぱ商業鯖だと、下手にハックして穴が開いちゃうのとかが怖いでしょうし、難しいところですね
2006/10/12 (木) 21:43:49 | URL | coq #-[ 編集]
>自分はLayoutIgnoreURIでこっそり対処してますが
勝手にLayoutIgnoreURI使うと鯖管さんに怒られそうだけど、画像とかだけならこっそりOKなんでしょうかね?

>商業鯖だと、下手にハックして穴が開いちゃうのとかが怖いでしょうし
ですねえ、金貰っている以上は迂闊なことできませんもんね
つか、無料鯖でも広告つけてたら商業鯖と同じようにセキュリティに気を配るべきだと思います、ね
2006/10/12 (木) 22:20:04 | URL | 中の人 #SBK/iQec[ 編集]
管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
2012/03/22 (木) 19:22:16 | | #[ 編集]
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2005 GEEKy Script Writer [perl and more!] all rights reserved.
Powered by FC2ブログ.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。