nDiki : SSI

SSI - Server Side Includes

HTML ページ中に含まれている SSI ディレクティブを処理して動的にコンテンツを生成する Web サーバの機能。

関連情報

1999年1月31日 (日)

本日誌ページ用 m4 マクロを作成

本日誌を始めて、13日目。やっと本日誌ページ用 m4 マクロを作成した。

私の Web ページ (http://www.j.dendai.ac.jp/~naney/以下) はm4 を利用して作成している。 m4 はマクロプロセッサである。 主に何に利用しているかというと、ヘッダやフッタなどの定型的な部分の生成などである。 ヘッダやフッタなどをマクロ化し、各ページでパラメータを指定して展開させることで、それぞれにあったものを生成する。 利点としては、例えばヘッダの形式を変えたい場合にマクロを書き換えることで、全ページを変更することができることなどがある。 SSI による include では各ページ固有の情報などのパラメータ部分がうまく扱えない。 ちなみに m4 ページの処理は、AutoconfAutomake を利用して、./configure; make; make install; で一発で済むようにしている。

前置きがながくなった。もちろんこのページのヘッダやフッタなどもマクロ展開で行っていたのだが、ナビゲーションの [Prev Day]、 [Next Day] などは毎日手でリンクを張っていた(実際には前日のものをコピーして書き換え)。 これは面倒だし、間違えもおきやすいので、この部分を処理するマクロを本日作成した。 まだあまりチェックしていないので、もしかしたらうまくリンクがつながらないかもしれない。

次はキーワードインデックス部分と、記事別ナビゲーション(似ている内容の記事ごとの、Prev、Next のリンク) の生成を自動化したいが、これは m4 だけではかなり辛いか(できるとは思うが)。

スポンサード リンク
[ 1月31日全て ]

2000年11月5日 (日)

本サイトの Referer 統計復活

以前のサーバでは Apache で combined 形式のアクセスログをとっていて、Referer (リンク元)の統計をとっていたんだけれども、今のサーバでは Referer log が提供されていない (common 形式の提供)。

なもんで、しばらく Referer のない淋しい統計生活だったのであった。 で、今日 SSI でめでたく復活。 とりあえずちょちょっと作って実験中。 ログの出力を Apache の combined 形式と同じ形式にしたので、analog がそのまま使える(統計スクリプトの手間も省けるというもんだ)。 もっとも、combined に必要なフィールドの全ての情報が SSI では取得できない(ような)のでそこら辺は適当(適切)に埋めておいてある。

ついでに cookie による統計も実験してみようかなと思ったがサーバでは mod_usertrack が disable だった。 自前で cookie を焼くとなると、全ページを隠れCGI処理しなきゃならないので面倒だ(昔別のサーバ上でやってたけど)。 IMG でお茶を濁す方法もあるけど、なんなので cookie は見送り。

[ 11月5日全て ]

2001年9月19日 (水)

[ www.naney.org ] 12:30 98019KB

気がついたら、ずいぶん埋まってた。 容量 100MBだから、整理しなくては。

SSI によるアクセスログ

26MBも食ってた。 きちんと rotate するようにしなければ、あかんな。

[ 9月19日全て ]

2001年12月5日 (水)

[ Java ] 22:30 Cocoon2 はどうかな?

最近、本サイトの生成フレームワークを一新すべく模索中(現在は XML + 自作 Perl スクリプト)。 今の最有力候補は XML + Ant + Xalan。 他にいろいろ見ていたら、Cocoon 2 はどうかなと。 XML から XSLT 他を用いて HTML とか WML とかを生成する server application なんだけど、ローカルで立ちあげて Wget とかでローカルに静的なファイルとして落とせば、それをサーバに置けるんじゃないかなぁ。 すぐ思いつく問題は、

  • 「make 的(必要なファイルのみの)更新」(毎回すべて更新されるとサーバへのアップロードで困る)、
  • SSI がちょい面倒?」(Coccoon 2 では処理しないでそのまま出力させる)、

「コンテントネゴシエーションまわり」(en, と ja を別々のファイル名できちんととりだせるか)

等々。ドキュメントだけ静的にアーカイブしたものとかあるから、静的なファイルに落とせるんだろうなとは思いつつ。 とりあえず、インストール。 まず先に Tomcat

 cd /usr/local
 tar zxvf jakarta-tomcat-4.0.1.tar.gz

次 Cocoon 2

 cd /usr/local
 tar zxvf cocoon-2.0-bin.tar.gz
 cp /usr/local/cocoon-2.0/cocoon.war /usr/local/jakarta-tomcat-4.0.1/webapps/

Tomcat がデフォルトで 8080 ポートをつかうのだが WWWOFFLE が既に使っている。 Tomcat の方をずらすより、WWWOFFLE の変更の方が勝手がわかるのでそちらをずらす。 で

 /usr/local/jakarta-tomcat-4.0.1/bin/startup.sh

で起動。http://localhost:8080/cocoon/ に Galeon でアクセス。 一発目は非常に遅い。他のページも一度目は閲覧は遅いがキャッシュが効くので次からはそれほどでもない。

とりあえず、ドキュメントを読んでいろいろ調査。

[ 12月5日全て ]

2003年10月24日 (金)

大学院時代の友人から TEL

久しぶりに、TSUCHIYA君からTEL。 PHP + SSI について。PHP最後に使ったのってもう数年前だな。残念ながらお役に立てず。

メーリングリストで立ち消えになったOFF会のことが話題になった。 やっぱり、年内に1回ぐらいやっておきたいところ。

[ 10月24日全て ]

2003年11月27日 (木)

SpeedyCGI環境変数

アクセスログSSI が使用しているモジュールで REQUEST_URIHTTP_REFERER、 HTTP_USER_AGENT 環境変数がうまく取れていなない事があるのを発見。

ログをみると取れている時と、取れていない時がある。 何だろう。 でよくよく調べてみたら、SSI では問題なくて同じモジュールを Wiki で使っている時に失敗している模様。

よくわからないが、SpeedyCGI 関連の問題かもと思い main スクリプト上での呼び出し位置を修正したら直った。 呼び出し順に依存するのかなぁ。

あっ、そういえばモジュールのバグ混入(同環境変数を取得後のエスケープ処理で誤って空にしてしまうバグ)とその修正を今し方したのだが、SpeedyCGI がそのバグのある時点のモジュールをロードして動き続けていただけかも。 で、main スクリプトを修正したら SpeedyCGI がそれを検知して Wiki を re-execute したため今度は修正後のモジュールがロードされたため正しい挙動になったと(main スクリプトの修正内容は関係なく、touch された事自体が問題を解決した)。

多分。

[ 11月27日全て ]

2004年5月21日 (金)

AWStats 6.0

www.naney.orgアクセスログをローカルにもってきて統計解析をするのに、今回は analog ではなく AWStats を使うことに。

以前 www.naney.org に入れてみた時より、随分使いやすくなった感じ。

セットアップ

Debian パッケージを入れた後、awstats.naney.org というバーチャルドメインをローカルのApacheに用意(/var/www/awstats.naney.org)。

 Alias /icon/ "/usr/share/awstats/icon/"

も設定に追加しておく。

ファイルレイアウト:

 /var/www/awstats.naney.org/
  |
  +-- .htaccess
  |
  +-- awstats.conf  <-- 作成
  |
  +-- awstats.pl    <-- コピーしてきて一部修正
  |
  +-- cache         <-- DNSキャッシュ用 (まだ未使用)
  |
  +-- data          <-- データを保存
  |
  +-- plugins       <-- プラグイン
       |
       +-- wikicker.pm <-- /wiki/(.*).html を $1 で表示するプラグイン(自作)

awstats.pl はパッケージのものをコピー。DecodeEncodedString の中で Jcode.pm を使って文字列を UTF-8 に変換するように修正。

ローカル用なのであまり気にせず DocumentRoot の下にもりっとファイルを置いておく。

awstats.conf はこんな感じ。

 LogFile="/path/to/downloaded-log/access.log"
 LogType=W
 LogFormat=1
 LogSeparator=" "
 DNSLookup=2
 DirData="./data"
 SiteDomain="www.naney.org"
 HostAliases="localhost"
 DNSStaticCacheFile="cache/dnscache.txt"
 DNSLastUpdateCacheFile="cache/dnscachelastupdate.txt"
 URLWithQuery=1
 URLReferrerWithQuery=1
 LevelForWormsDetection=2
 ShowWormsStats=1
 LoadPlugin="wikicker"
 ValidHTTPCodes="200 304 -"

ValidHTTPCodes の '-' というのは、本来不要。自前のSSIで似非 Combined Log を生成する際に '-' を出力する事があるので追加。

日本語もきちんと出るしいい感じ。 指定した月ではなく、指定した日のログを見れるといいのだが設定すればできるようにならないかな。

analog と違ってプラグインが使えるのが良い。 Perlスクリプトだから、その気になれば簡単に awstats.pl 自体を変更する事もできるし。

今回は ShowInfoURL 用プラグインを書いて、/wiki 以下のURLの際は unescape して PageName を表示するようにしてみた。

その他いろいろ遊べそう。

[ 5月21日全て ]

2004年11月10日 (水)

Perl 5.005_03 + Template Toolkit 2.14

www.naney.org の静的(+SSI)ページを、Template Toolkit で動的処理するように改良しようかなと思い立つ。 Apache だと、

 Action tt2 /cgi-bin/t2h
 AddHandler tt2 .html

で .html へのリクエストを全てCGI プログラムに渡す(でそのスクリプトがテンプレート処理をして返す)ようにできる(はず)。

で久しぶりに Template Toolkit をサーバにインストール。 … Makefile.PL が通らない。ちょっと修正して通るようにしても今度は make test が通らない。最新の Template Toolkit だと 5.005_03 じゃ駄目か。ドキュメントには 5.005 で OK と書いてあるんだけどな。 前のバージョンは動いたのに。

ということでいきなり頓挫。 あきらめ。

[ 11月10日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.115015s / load averages: 0.18, 0.52, 0.90
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker