openSUSE 10.3 で mod_rewrite を使う

yastでインストールしようと思ったんだけれど、見つからない。

あれれ?

って事で調べてみたら、なんと・・・最初から入っているっぽw

って事で

/etc/sysconfig/apache2

を編集。

APACHE_MODULES=”rewrite”

という感じ。実際は、もっと沢山の Apache module を使っているだろうから、大量にある中に追加してやる感じ。

mod_pythonの落とし穴

さて、先日お伝えした様に我が家のmod_pythonがたまにRuntimeErrorの例外を出すということだったのだが、原因が判明した。
http://www.python.jp/doc/contrib/modpython/pyapi-interps.html
こちらに書いてある内容から考えるに、Apacheのpreforkを使って複数プロセスで処理をしている場合、それぞれのプロセスが独立したサブインタプリターを生成しているっぽい。そして、その間では名前空間は共有出来ないから
RuntimeError: instance.__dict__ not accessible in restricted mode
という内容の例外が出るに至るわけだ。
解決方法としては

    PythonInterpreter main_interpreter

と、.confファイルに書けば良いだけだ。
http://www.python.org/doc/current/api/initialization.html
ここを見るに、独立したPythonのサブインタープリターを作成する。ってあるんだけれど、それぞれのプロセスが独立しているなら、どうして他のプロセスの持っているインスタンスにアクセスしようとするんだ?
ってことだよ。
どういうPythonコードが原因で、mod_pythonで動かしたとき、そういうエラーが出るのかがまだ謎。
もうちょっと調べないとだなぁ・・・普通に、PythonInterpreter main_interpreter と書けば解決されるのは分かったんだが
どのコードがいけないことしてるんだよ!!って分からないと余り解決になってないような。
今日は眠いのでまた今度ソース見てみよう。
なんか、ルーターか光の回線終端装置がお亡くなりになったみたいで
帰ったらネットにさっぱり繋がらなくなっておりました。
う〜ん、ルーターは三カ月くらいツケっ放しだったんだけれど、やっぱりたまに再起動しないとダメなのかな。
1万以下のやつだからね・・・
ルーターにはアクセスできるけれど、ローカルネットワークも死んでいたんだよね。
う〜ん、インターネットだけなら分かるけれど、イントラネットもってなると、ルーターだよなぁ