[Fswiki-dev] mod_perl

Back to archive index

Naoki Takezoe ADS28****@nifty*****
2003年 6月 26日 (木) 10:24:27 JST


竹添です。

mod_perlへの対応をすすめています。かなり大改造になって
しまっていますが、以下のような方針で行っています。

・$main::のグローバル変数は使用せず、設定は$wikiに持たせる。
  そのために$wiki->configメソッドを追加した。また、setup.pl
  を廃止し、setup.datというファイルからsetup.pl相当の設定を
  読み込むようにした。
・mod_perlで動かす場合はdata_dirなどは絶対パスで設定する
  という前提にする
・mod_perlで動作時はexit関数をApache::exitで上書きする。
・エラー時はdieを使用せず、独自のエラー報告用関数を用意し、
  それを使用する。

1つだけ問題があって、FarmのPATH_INFOなんですが、mod_perl
で動かしている場合、以下のような挙動を示します。

1.親Wikiにアクセス→$ENV{'PATH_INFO'}=undef
2.子Wikiにアクセス→$ENV{'PATH_INFO'}='hoge'
3.親Wikiにアクセス→$ENV{'PATH_INFO'}='hoge'

どうやら$ENVが共用されているようです。で、ルートのWikiの
場合はPATH_INFOが未定義のため、一度子Wikiにアクセスしてから
ルートWikiにアクセスしてもPATH_INFOが上書きされていないよう
なのです。

結局wiki.cgiの最後で

$ENV{'PATH_INFO'} = undef;

とすることで一応正常に動くことは動いています。

なお、試したのはWindows版Apache1.3.27+mod_perl1です。
なにか情報をお持ちの方はいらっしゃるでしょうか?

----
Naoki Takezoe <ADS28****@nifty*****>



Fswiki-dev メーリングリストの案内
Back to archive index