«前の日記(2004年8月8日(日)) 最新 次の日記(2004年8月10日(火))» 編集

徒然日記


2004年8月9日(月) [長年日記]

[linux] mod_rubyが変?

LL weekendで前田さんにお会いしまして、かずひこさんと「今朝mod?ruby-1.2.1リリースしましたよ〜」と話していたのを聞いて、初めて前田さんがmod_rubyの作者様だと知った俺。(ぉぃ

いい機会だったのだ(どんな機会だよ)家に帰ってmod_rubyを入れてみました

が、いくつかおかしな点が。

ちなみに環境はMomonga Linux 1をベースに

httpd-2.0.50

ruby-1.8.2 preview2

mod_ruby-1.2.1+前田さんによるpatch

mod_rewrite

まずはmod_rewrite

httpd.confの中でmod_rewriteを使う分には何も問題がないのだけど

.htaccessの中で使おうとすると403エラーになってしまう。そのときのエラーログは以下の通り

[Sun Aug 08 21:18:56 2004] [error] [client 192.168.1.2] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /home/mitsuru/public_html/diary/index.rb, referer: http://smbd.jp/diary/

httpd.confでuserdirは

Options Multviews all
AllowOvverride all

しているのにこんなエラーが…

一応.htaccessの中で"Options +FollowSykLinks"してみたけど、同じでした

ここの2002/10/05によるとmod_perlでも同じような問題があるそうで

これはapache側の問題なのかもしれないけど…

でもphpじゃ発生しないよねぇ。うーん

死なない

mod_rubyを組み込むと/etc/init.d/httpd stopしてもプロセスが残ります

keepaliveを有効にしてるので、死ぬのが遅くなってるのかと思って

netstat -taして眺めていたのですが

なぜか新規接続が…

で、自分で繋いでみたら確かにESTABLISHEDになります

ブラウザ側はページが表示されるわけではなく、かといってhttpdが上がっていないときの様に即エラーとなるわけではなく

コネクションタイムアウトになるまで放置されると言った感じですね

で、いつまで経っても終了しなく

/etc/init.d/httpd startすると

Starting httpd: (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

no listening sockets available, shutting down

Unable to open logs

と言われてしまう。

ここでもう一度/etc/init.d/httpd stopすると全部死んでくれて、/etc/init.d/httpd startするとちゃんと上がってきます

つまり2回stopしないと、完全に死んでくれないで中途半端になります

httpd -k stopでも状況は同じような感じで

1回目は同じなのですが2回目は

httpd (no pid file) not running

と言われてしまって、殺すことが出来ません

ここで/etc/init.d/httpd stopすれば完全に殺せますけどね

前田さんはdebian使いだそうで、fedora系の/etc/init.dの構造は知らないかもしれないので

一応見れる様にしておきますねhttpd_init, functions

(16:56)




«前の日記(2004年8月8日(日)) 最新 次の日記(2004年8月10日(火))»