X



【激速】mod_perl SpeedyCGI FastCGI【激速】
■ このスレッドは過去ログ倉庫に格納されています
0702nobodyさん
垢版 |
2007/10/22(月) 16:25:52ID:YWIr8Jbq
専用ならHTTP::Daemonで
まるごと組んじゃうとか、どうなの?
0703nobodyさん
垢版 |
2007/10/23(火) 13:31:51ID:???
細かい処理考えるのめんどいからmod_jk + Net::AJP13に期待
0704nobodyさん
垢版 |
2007/10/29(月) 01:19:53ID:???
ねえねえ、ひょっとして mod_speedycgi2 ってアパッチョ2.2系じゃコンパイル不可?

うち、Cent4で、自前makeしたAp2.2.6を/usr/local/apache2/にインスコして、
そのapxsを読み込ませるようにしてmakeしてみたんだけど、mod_speedycgi2.cでエラー100個くらい出て止まってしまう。
内容はなんかsyntaxErrorだとか、previous definition(定義済みの再定義?)がでまくるんだけど・・・。

ちなみにrpmからの2.0.59では一応makeは通る(でもtestでmod_系は全スキップしてしまう)。

どなたか2.2系で動かしてる人いませんか?
0706nobodyさん
垢版 |
2007/10/29(月) 22:49:20ID:???
>>705
やった〜。makeできたよママン。
ありがトン。
0707nobodyさん
垢版 |
2007/10/30(火) 04:25:29ID:OsAJPMJ7
ねえねえ、ひょっとして mod_speedycgi2 ってアパッチョ2.2系じゃコンパイル不可?

うち、Cent4で、自前makeしたAp2.2.6を/usr/local/apache2/にインスコして、
そのapxsを読み込ませるようにしてmakeしてみたんだけど、mod_speedycgi2.cでエラー100個くらい出て止まってしまう。
内容はなんかsyntaxErrorだとか、previous definition(定義済みの再定義?)がでまくるんだけど・・・。

ちなみにrpmからの2.0.59では一応makeは通る(でもtestでmod_系は全スキップしてしまう)。

どなたか2.2系で動かしてる人いませんか?
0708nobodyさん
垢版 |
2007/11/14(水) 00:27:32ID:MPH8wi6G
ねえねえ、ひょっとして mod_speedycgi2 ってアパッチョ2.2系じゃコンパイル不可?

うち、Cent4で、自前makeしたAp2.2.6を/usr/local/apache2/にインスコして、
そのapxsを読み込ませるようにしてmakeしてみたんだけど、mod_speedycgi2.cでエラー100個くらい出て止まってしまう。
内容はなんかsyntaxErrorだとか、previous definition(定義済みの再定義?)がでまくるんだけど・・・。

ちなみにrpmからの2.0.59では一応makeは通る(でもtestでmod_系は全スキップしてしまう)。

どなたか2.2系で動かしてる人いませんか?
0709nobodyさん
垢版 |
2007/11/14(水) 06:43:19ID:vnJkUfbw
ねえねえ、ひょっとして mod_speedycgi2 ってアパッチョ2.2系じゃコンパイル不可?

うち、Cent4で、自前makeしたAp2.2.6を/usr/local/apache2/にインスコして、
そのapxsを読み込ませるようにしてmakeしてみたんだけど、mod_speedycgi2.cでエラー100個くらい出て止まってしまう。
内容はなんかsyntaxErrorだとか、previous definition(定義済みの再定義?)がでまくるんだけど・・・。

ちなみにrpmからの2.0.59では一応makeは通る(でもtestでmod_系は全スキップしてしまう)。

どなたか2.2系で動かしてる人いませんか?
0710nobodyさん
垢版 |
2007/11/17(土) 13:53:14ID:???
ねえねえ、ひょっとして mod_speedycgi2 ってアパッチョ2.2系じゃコンパイル不可?

うち、Cent4で、自前makeしたAp2.2.6を/usr/local/apache2/にインスコして、
そのapxsを読み込ませるようにしてmakeしてみたんだけど、mod_speedycgi2.cでエラー100個くらい出て止まってしまう。
内容はなんかsyntaxErrorだとか、previous definition(定義済みの再定義?)がでまくるんだけど・・・。

ちなみにrpmからの2.0.59では一応makeは通る(でもtestでmod_系は全スキップしてしまう)。

どなたか2.2系で動かしてる人いませんか?
0711nobodyさん
垢版 |
2007/11/17(土) 18:28:52ID:???
いい加減うぜえよwww
0712nobodyさん
垢版 |
2007/11/24(土) 02:37:09ID:???
ちょっとlibapreq2について質問なんだけど、

make test した時の、
t/apreq/cgi テストは失敗するもん?

CPANから取って来た2.08と、FedoraのRepoから引っ張ってきた2.09-rcのsrc.rpm
からやってみたんだけど、両方これがエラーになる。

ググってみても、いくつかのBlogとかで
「make test いくつか失敗するけど無視する」
みたいなこと書いてあるし、ほんとにこれでいいんかい??

CentOS4.5,Apache2.2,mod_perl2.0.3
0713nobodyさん
垢版 |
2007/11/24(土) 09:23:53ID:???
Blog (笑

どんなエラーかも書いてないし…これは酷い。
0714712
垢版 |
2007/11/25(日) 19:11:55ID:???
こりゃあきまへん。これこのTestでコケるようになってるわ、packageの構造的に。

>>713
エラーの内容ってこれ?
t/apreq/big_input....ok
t/apreq/cgi..........# Failed test 1 in t/apreq/cgi.t at line 62
t/apreq/cgi..........NOK 1# Failed test 2 in t/apreq/cgi.t at line 62 fail #2
t/apreq/cgi..........NOK 2# Failed test 3 in t/apreq/cgi.t at line 62 fail #3
t/apreq/cgi..........NOK 3# Failed test 4 in t/apreq/cgi.t at line 62 fail #4
 ・
 ・
こんなのが40行ほど続いて、
t/apreq/cgi..........FAILED tests 1-41
Failed 41/41 tests, 0.00% okay
t/apreq/cookie.......ok
これ。つまりt/apreq2/cgi_tファイル全滅。全てのテストが失敗してる。これ以外は全てOKとなる。
このエラー見たところでline**で、コケてるのはわかるんだが、どうゆうエラーかは分からないと思った。
確かに上のスレでは内容書かなかった。すまん。

でも、当然だけどCPANやらで一通りBugReportは斜め読みしてみて、似たようなErrorの報告があったけど明確な解決になってなかったし、
patchも出てなかったから、「libapreq2」とか「libapreq2 インストール」でググってみて、上位のほうにあったいくつかの
インストール手順を紹介したサイト(Blog)の内容に、「make test 通らない」とか、「make test 飛ばす」みたいなこと書いてあったし、
Fedora6,7,8のSRPMの.specも make セクションの後に、test せずに install セクションに入ってたから、
test通らないのがデフォかなって思って、書き込みしたわけなんだが・・・。笑うところか?

まあいいわ。原因はつかんだ。
0715つづき
垢版 |
2007/11/25(日) 19:12:31ID:???

で、ちょっと長くなるけど、specに従い
./buildconf
CC=gcc CFLAGS="-O2 -g" ./configure --with-apache2=/usr/local/apache2 --enable-perl-glue

とやるわけなんだが、最後の”--enable-perl-glue”がくせもの。
このオプションは、通常libapreq2のコンパイル、Library(libapreq2.so)とmodule(mod_libapreq2.so)に加えて、
perl-libapreq2モジュール郡のコンパイルも同時に行う。でまあ、
make
make test

と進むわけだが、この全滅する glue/perl/t/apreq/cgi_t は、三つ目(perl-module)のビルドセクション
(Lib、mod、perlとテスト郡が3ステップある。実際makeしてみたらわかる。)に含まれるテストなんだけど、
Library、moduleはなんなくPass(じつはこれも落とし穴あり)して、このperlのテストセクションに入ってから、
問題のerrorが発生する。

で、Test中の動作を追っかけていたんだが、この t/apreq/cgi テストの時は、一時的に
t/の下位dirにcgi-bin/test_cgi.plってファイルが生成されて、それが実際に走ってる(httpd上で)。
で、このファイルはt/apreq/cgiテスト中にしか生存しなくて、次のテストに移ったら消えてしまう。(その間約2秒、その隙に捕獲する)

このtest_cgi.plファイル自体が諸悪の根源。以下中身(の上位行)
use strict;
use File::Basename;
use warnings FATAL => 'all';
use blib;
use APR;
use APR::Pool;
use APR::Request::Param;
use APR::Request::Cookie;
use APR::Request::CGI;
0716つづき2
垢版 |
2007/11/25(日) 19:13:06ID:???
この use 郡で、APR関係のmoduleをロードできずに失敗していた。
特に自分の環境では、Apache2.2系(mod_perlも)を/usr/local/apache2/にインストールしてたんで、
コンソールで、perl -e ’use APR’ とかしただけで、
Can't load ・・・・ libaprutil-1.so.0がロードできません。そんなファイルはありません DynaLoader.pm line230 みたいなErrorになる。

確かlibaprな.soファイル一式は、/usr/local/apache2/lib以下に格納されていて、どうやらここはperlのLIBPATHには含まれていない。
ちなみにperlのLIBPATHは、
perl -e 'use DynaLoader; print join("\n",@di_library_path) . "\n";' で確認できるんだけど、これの結果は
/usr/lib
/lib
/usr/local/lib
となっていて、(perl-5.8.8-4.el4si.i386.rpm)、/usr/local/apache2/等は読み込んでくれない。

仕方がないので、一時的に/usr/local/apache2/lib/以下を、/usr/lib/にコピーして、コンソールで再度 perl -e 'use APR'とやってエラー無し。

しかししかし、これで問題解決にはならないんだこれが・・。

この状態で再び make test としても、やっぱりt/apreq/cgiで全コケは変わらない。
今度は、
use APR::Request::Param;
use APR::Request::Cookie;
use APR::Request::CGI;
この三つ、実は今ビルドしようとしてるlibapreq2-perlに含まれるmodule郡で、しかも内部でlibapreq2.so.3にリンクしてる。で、こいつらが、
Can't load ...APR/Request/Request.so' for module APR::Request: libapreq2.so.3: cannot open shared object file: No such file or directory
なエラーを吐いて、正常に走ってくれないってわけ。
(このlibapreq2.so.file郡は、今まさにビルドしたばっかりのファイルで、libapreq2-2.09/library/.lib/にいて、当然perlのLIBPATH下にはいない)
0717たぶん終わり
垢版 |
2007/11/25(日) 19:13:42ID:???
激しく無理やりな解決方法としては、
make test せずに
make install してしまい、LIBPATH(/usr/lib/以下)に、いったんlibapreq2.soファイル郡を掘り込んでしまい、
(ApacheがRPMなら、ここに入るはず。でなければ、INSTDIRからここにコピー)その上でもっかい、libapreq2をmakeしたDirにcdして、
make test とすれば、みごと全てのテストに合格する。
(Cent4.5 Apache2.2を/usr/local/apache2/にinstall と、CentOS5.0 Apache2.2-rpmの両環境で確認)

でも、これじゃあなんだか手順が逆じゃない??
testでCompileコケてないの確認してからinstallじゃん、普通は・・・。

で、なんとかならないかと色々調べてみてんだが、
一時的にperl の DynaLoaderが検索するLIBPATHは、スクリプトの中からなら操作できるようなんだが、
外からやる方法が見つからない。(オプションとかスイッチとかで・・・。)

例えば、
LD_LIBRARRY_PATH=/usr/local/apache2/lib perl -e 'use DynaLoader; print join("\n",@dl_library_path) . "\n";'
とかやれば、@dl_library_pathに /usr/local/apache2/lib が追加されるんで、「お、出来たか」と思ったけど、
だめなんだよ。
0718ほんとに終わり
垢版 |
2007/11/25(日) 19:14:17ID:???
ウチの環境(Cent4、Cent5共に)だと、$LD_LIBRARY_PATH変数が、環境変数ではなくて、SHELL変数扱いになる。
前もって、exportしといても、引き継いでくれない。
上の例みたいにワンライナーなり、直接perlを呼べば変数が生きたままになるんだけど、
対象がmakeだと、makeのなかで、何段にもbashを呼び出す(子プロセス扱い)もんで、この$LD_LIBRARY_PATHを継承してくれないようだ。
Fedoraでもこうなるみたい。(Fedora.jpにLD_LIBRARY_PATHがらみのスレにあった。)

ここらへん、自分もあんまり理解がないのと、WebProg板っぽくないので、ム板の方にちょっと出張してきたんだけど、
まだよくわからない。(コレ関係はこれから調べるつもり)

LIBPATHを制御できたら、make test する時にちょこっとコマンド足せばいけそうだけど、出来ないとなったら、
Makefileなり、TESP.PLがらみを書き換えないといけない。(ちょっとで済みそうにない。)
あるいは、/etc/ld.so.confとかあたりかな?

ぶっちゃけ一番簡単な方法は、testしないか、
本末転倒になっちゃうけど、/usr/libなりにso一式をコピー(インストール)してから、testかけるかのどっちかだね。

でも、みんな躓かなかったのか?
2.07以前は試してないからわからんけど、2.08,2.09両方とも、いきなりやって一発目でうまくいかんだろこれじゃあ。
(ってか、make test する以上、絶対コケるようにしか思えないんだが・・・)
0719nobodyさん
垢版 |
2007/11/25(日) 20:48:10ID:???
今日吉野家行ったんだけどさ
まで読んだ
0720nobodyさん
垢版 |
2007/11/26(月) 12:58:45ID:???
このスレってみんなが libapreq2 を試すようなスレじゃないと思うよ
0721nobodyさん
垢版 |
2007/11/26(月) 13:24:06ID:???
さあ検証内容とpatchをbugリポートに送ってみんなを幸せにするんだ
0722nobodyさん
垢版 |
2007/12/02(日) 08:44:17ID:1DkmgRhY
今北産業
0725723
垢版 |
2007/12/10(月) 21:05:41ID:???
>>724
ありがとうございます。
早速試してみたところ、無事解決しました!うおおお!

■変更前
<DirectoryMatch "/home/aaa/cgi-bin/(.*.cgi)">
  SetHandler perl-script
  PerlResponseHandler ModPerl::Registry
  PerlOptions +ParseHeaders
  Options ExecCGI +MultiViews
</DirectoryMatch>

■変更後
<Directory "/home/aaa/cgi-bin/">
  AddHandler perl-script .cgi
  PerlResponseHandler ModPerl::Registry
  PerlOptions +ParseHeaders
  Options ExecCGI +MultiViews
</Directory>

■設定3で追記した通常のCGIで動作させるDirecitoryディレクティブは削除
0726nobodyさん
垢版 |
2008/02/18(月) 21:32:41ID:aEv1JCZt
Apache2.2.8、PHP5.2.5、mod_fastcgi2.4.6使用。
100MBとかの大きなファイルをPHPにアップロードしている最中、
startDelayごとに新しいプロセスが起動されてしまう。
maxClassProcessesかmaxProcessesに到達するまで続く。
どうにかならないでしょうか?
0727726
垢版 |
2008/02/19(火) 18:33:58ID:3qklWUbG
mod_fastcgiのソース見たら納得。
WebサーバーからFastCGIサーバーへの、CGIでいうところの標準入力は
すぐ完了するという仮定でコードが書かれてて、
時間がかかる⇒FastCGiサーバーがハング という想定なのね。
ちょこっとパッチ当てるだけじゃ解決できないっぽい…?
参ったなあ
0728nobodyさん
垢版 |
2008/02/19(火) 21:41:50ID:???
あー、俺も FastCGI 経由で応答に5秒以上かかる検索クエリ動かしたら異常終了したことがあったんだが、原因は>>727と同じか?
0729726
垢版 |
2008/02/19(火) 22:41:08ID:???
mod_fcgidはリクエストを全部いったんモジュール内でバッファリングしやがる。
おかげでhttpdが150MBメモリ使ってしまった。
メーリングリストを見ると、MaxRequestInMemディレクティブを使えとのことだが、
症状は変わらない。例え動くとしても、
http://fastcgi.coremail.cn/download.htm
>If the length of http request longer than "MaxRequestInMem", it will store in tmp file.
結局ファイルにバッファリングするだけみたいだし。

Apacheが異常終了したのか、それともFastCGIサーバーが異常終了したのか
0730726
垢版 |
2008/02/19(火) 22:41:27ID:???
最後の1行は>>728当て
0731728
垢版 |
2008/02/19(火) 23:57:15ID:???
>>730
もう1年以上前の話なんでうろ覚えだが、
Internal Server Error か似たような状態になった希ガス
0732nobodyさん
垢版 |
2008/02/22(金) 07:02:49ID:???
mod_perlなんすけど、sudoで動かないのはなぜに?

ちゃんとApache権限で呼び出してるんだけど、CGIとして動いてる。
他のも一緒?
0733732
垢版 |
2008/02/24(日) 01:02:41ID:9eLfTMt1
うう;;
誰か教えておくれ。

あと、mod_perlって標準出力も違う?
Image::Magickで標準出力しようとして、
$image->Write('jpeg:-');
の部分でエラー。ファイル場所がおかしいって。

指定方法を変えれば標準出力できる?
0734nobodyさん
垢版 |
2008/02/24(日) 02:11:15ID:???
とりあえずもちついて状況を説明汁
0736nobodyさん
垢版 |
2008/02/24(日) 16:59:49ID:???
>>733
mod_perlだとforkするわけじゃなくevalされるからsudoの入り込む余地は無いんじゃないか。

>ファイル場所がおかしいって。
標準出力はSTDOUTで同じ。カレントディレクトリがルートになってるよ多分。
print `pwd`;とかで調べて絶対パスで指定するか始めにchdir。
0737nobodyさん
垢版 |
2008/02/24(日) 17:06:50ID:???
回答がちょっとずれてたごめん。
STDOUTに出力してるのに「ファイル場所がおかしいって」ってエラーが出るのか
私もわからんです。
0738732
垢版 |
2008/02/24(日) 18:56:01ID:9eLfTMt1
>>734
sudo -u apache /var/www/hoge.cgi
で動かしたいんだけど、permissionエラーになるの。
当然って言えば当然なんだけど、mod_perlならパーミッション関係なく動くよね?
これはapacheが予めコンパイルしてるからだろうけど、そのコンパイル済みのperlとして呼び出したいんだけどなぁ。

つまり、cronをはじめ、外部から呼び出す時にはmod_perlで動かす事は不可能って事でよいのかな?
url叩けばmod_perlとして動くのかな?
それと他のspeedyとかでも挙動は同じなのかなって質問です。


標準出力についての質問は、
普通"-"で標準出力を指すよね?mod_perlではこれを標準出力として認識しないようなんですが。
0739732
垢版 |
2008/02/24(日) 19:12:29ID:9eLfTMt1
>>736
あ。ありがとうございます。

標準出力についてですが、そもそも標準出力ってオンメモリーみたいなものだと思ってたのですが、
俺の勘違いでしょうか?
フルパスでどこを指定すればよいのでしょうか?
0740736
垢版 |
2008/02/24(日) 19:43:44ID:???
>sudo -u apache /var/www/hoge.cgi
>で動かしたいんだけど、permissionエラーになるの。
>当然って言えば当然なんだけど、mod_perlならパーミッション関係なく動くよね?
mod_perlは独自にapache権限で実行権限があるか調べています。

>これはapacheが予めコンパイルしてるからだろうけど、そのコンパイル済みのperlとして呼び出したいんだけどなぁ。
>つまり、cronをはじめ、外部から呼び出す時にはmod_perlで動かす事は不可能って事でよいのかな?
>url叩けばmod_perlとして動くのかな?
mod_perlは初回プログラム実行時に実行状態のままapacheプロセスの中で待機します。
なのでcronやコンソールから呼び出すときには必ずapacheを通さなければいけません。

>それと他のspeedyとかでも挙動は同じなのかなって質問です。
speedycgiではお望みの動作をします。独自にプロセスを立ち上げるのでapacheには依存しません。
cronやコンソールからの実行でも高速に動作することが可能です。面倒なsocketの管理も勝手にやってくれます。

>普通"-"で標準出力を指すよね?mod_perlではこれを標準出力として認識しないようなんですが。
エラーの原因は標準出力部分ではないと推測します。
出力以前に
$Image->Read('./hoge.jpg');
等をしていませんか?
mod_perl2から標準ではカレントディレクトリの位置がスクリプトを置いたディレクトリ
にならないためno such〜エラーが発生していると思われます。
0741732
垢版 |
2008/02/24(日) 21:05:56ID:9eLfTMt1
>>740
詳しい説明ありがとうございました。
なるほど。やはりmod_perlですとcronからはURLとして叩く(Apacheを通す)しかないのですね。
speedycgiは挙動が違うというのも非常に知りたい情報でした。ありがとうございます。

標準出力についてですが、
$image->Read('フルパス');
としています。その時点ではエラーは吐いておらず、
$image->Write('フルパス');
としてファイルに書き込む場合は同じく問題ないのですが、

$image->Write('jpeg:-');
と標準出力に出力しようとした場合にエラーとなります。
0742732
垢版 |
2008/02/24(日) 21:10:29ID:9eLfTMt1
>>740
お詳しいようなのでもう一点質問して良いですか?
mod_perlだとDBとの接続も維持したままになると思いますが、それはspeedyCGIでも同じでしょうか?

なぜcronでmod_perlとして動かしたいかというと、そこにあるので。
0743nobodyさん
垢版 |
2008/02/24(日) 21:59:41ID:???
> $image->Write('jpeg:-');
> と標準出力に出力しようとした場合にエラーとなります。
それはWrite時に初めてリード時のエラーを指摘されているだけだと思います。
$image->Read('フルパス') or die $!;
とすればRead時にエラーが発生しているのが分かるかと思います。

>mod_perlだとDBとの接続も維持したままになると思いますが、それはspeedyCGIでも同じでしょうか?
speedyCGIでもコネクションプーリングする事は可能です。
但しmod_perlのApache::DBIのようにトランスペアレントではありませんから
自分でDBハンドルを再利用するようにロジックを組む必要があります。
もしかするとspeedyCGIからでもApache::DBIが利用できるかもしれませんが試したことが無いので分かりません。
0744732
垢版 |
2008/02/24(日) 22:49:11ID:9eLfTMt1
>>743

ありがとうございます。
ご指摘の通り、Readの時点でこけます。
フルパスで指定しているのに、なぜNo suchが出るのでしょうか?
それとファイルに書き込む時は(or dieをつけなければ)そのままエラー無く処理が完了します。

試しに標準出力ではなくファイル書き込み時ではReadの時点でInappropriate ioctl for deviceというエラーになります。
なぜエラー内容が変わってくるのでしょうか?

pwdの結果は/でしたのでフルパスの指定は間違いないと思うのですが。
0745732
垢版 |
2008/02/24(日) 22:52:20ID:9eLfTMt1
ちなみに標準出力時に出るエラーとは以下のものです。

Exception 450: Output file write error --- out of disk space? `-'
0746732
垢版 |
2008/02/24(日) 23:14:44ID:9eLfTMt1
うそでした。
すいません。どちらの場合もReadの時点で以下のエラーが出ています。
Inappropriate ioctl for device

DBとのコネクションプーリングの件は私には敷居が高そうなのでmod_perlでやってみようと思います。
0748736
垢版 |
2008/02/25(月) 00:37:18ID:???
実際試して状況を把握しました
・Readは如何なる場合でも真を返さない
・今回の件はmod_perl時に起こる問題
XSなimageMagickがレイヤー飛び越えて標準出力してるのでIOエラーが出ている模様

標準出力とメモリ展開を混同されているっぽいですがオンメモリでやりたいという事であれば
$image->Write('jpeg:-'); を
print $image->ImageToBlob;

とすれば良いと思います。

なまじっかスキルがあると自分の解釈で勝手に理解してこういう当を得ない質問になるんだよなと
生暖かく見てたがそれは俺でした/(^o^)\
0749732
垢版 |
2008/02/25(月) 01:01:47ID:r7CiXV4j
>>748
わざわざ試してまでもらって恐縮です。
ImageMagickは標準出力がmod_perlでは出来ないんですね。

ImageToBlobでやってみます。
長々と素人にお付き合いありがとうございました。m(__)m
0751nobodyさん
垢版 |
2008/04/19(土) 04:55:36ID:???
おお、2.0.4がきてるじゃないか!!?
0753nobodyさん
垢版 |
2008/06/10(火) 16:29:09ID:m3z0B2Hm
WindowsのInstantRails(Apache1.3.33)でFCGIを動かそうと
RubyForApache-1.3.1.exe をダウンロードしてきて
LoadModule fastcgi_module modules/mod_fastcgi.so
するんですが、そんなモジュールは無いとapacheがMSGを出します。
その他mod_fastcgi-2.4.6-AP22.dll等も入れてみてるのですが、
そんなモジュールは無いといわれるのですが、そもそも LoadModule
する前になにかする必要があるのでしょうか?apacheが古い?
教えてください。
0755nobodyさん
垢版 |
2008/06/11(水) 11:26:09ID:???
AddModule はLoadModuleの後に設定するはずですから・・・。
0756nobodyさん
垢版 |
2008/06/26(木) 03:55:41ID:LMAVX0ml
mod_fast_cgiのインストールに関してググると、
apache2.2のためにはパッチをあてるってあるけど
2.4.6の今もパッチは必要なの?
0757nobodyさん
垢版 |
2008/06/29(日) 00:22:02ID:M9i4VA+K
FastCGIは、apache1.3と組み合わせるのが
一番安定するという話をネットで目にしたのですが
これは今でもそうですか?
一昔前ならともかく、1.3系はもう古いという印象があるんですが
0758nobodyさん
垢版 |
2008/06/29(日) 00:39:11ID:???
> 一昔前ならともかく、1.3系はもう古いという印象があるんですが

あなたの基準で「古い」と何か問題?
0759nobodyさん
垢版 |
2008/06/29(日) 00:43:03ID:M9i4VA+K
なぜ煽り気味?
目にしたブログの記事が少し古いものばかりなので
今の状況は少し変わってるのではないかと思ったのです
0760nobodyさん
垢版 |
2008/06/29(日) 02:14:29ID:???
1.3.41のリリース日みた?
状況も解らずに「古い印象」とかなんとかヌかしてるから言われるんでしょ
0761nobodyさん
垢版 |
2008/06/29(日) 06:14:16ID:???
>>760
757 ではないが、お前が「古い」の意味を混同してるよ。

日本語が読めればわかると思うが、>>759 で書かれてるのは、
「FastCGIは、apache1.3と組み合わせるのが一番安定するという話」
が書かれた記事が
「少し古いものばかりなので今の状況は少し変わってるのではないかと」
ってことだろ。

Apache 1.3 系が古いか否かや、メンテナンスが続いているか否かとは別次元の話。

で、
> あなたの基準で「古い」と何か問題?
を俺なりに勝手に考えると、
・今時のディストリビューションには標準で付属していないことが多いので 1.3 の導入やメンテが面倒、できればやりたくない
・今はメンテが続いているけどいつかは終わるだろう、当然ながら 2.0 系より早い時期に
ってとこじゃね?
0762nobodyさん
垢版 |
2008/06/29(日) 09:19:02ID:???
> ・今時のディストリビューションには標準で付属していないことが多いので 1.3 の導入やメンテが面倒、できればやりたくない

debian stable 使えばいいと思うよ。今のところ全部そろってるよ。
0763nobodyさん
垢版 |
2008/06/29(日) 19:16:17ID:???
>>762
Debian でも
・少なくとも静的なファイル配信は Apache2 の方が優れてるからできれば Apache2 に一本化したい
ってのはあると思うよ。
0764nobodyさん
垢版 |
2008/06/29(日) 20:57:20ID:???
> Debian でも
> ・少なくとも静的なファイル配信は Apache2 の方が優れてるからできれば Apache2 に一本化したい
> ってのはあると思うよ。

何おっしゃりたいのか、さっぱりいみわかんなーい。
持論はブログで展開してくれよ。
0765763
垢版 |
2008/06/29(日) 23:45:25ID:???
>>764
一応マジレスしておくと、
仮に「FastCGI を Apache 1.3 で動かすべき」という前提が今日も変わらないとした場合、
FastCGI を使う Web サイトを運営するには
・Apache 2.x で静的なファイルを配信しつつ、動的な部分だけ Apache 1.3 に橋渡しする
・静的なファイルも動的なコンテンツも Apache 1.3 で配信する
の2択になるわけだ。

前者は明らかに面倒だわな。避けたい。
後者はまあ Apache 2.x だけで運営する場合と手間的には大差ないが
静的コンテンツの配信パフォーマンスはやや落ちる。
Apache 1.3 がいつまでメンテされ続けるかも不安がある。

しかしもし「FastCGI を Apache 1.3 で動かすべき」という前提がもう過去の話になっていて
現在は別に Apache 2.x でも全然信頼性変わらんよという状態なのであれば
静的なファイルも動的なコンテンツも Apache 2.x に一本化できるわけだ。

どちらの方向で行くかはこの「FastCGI を Apache 1.3 で動かすべき」という伝説が
現在も正しいかどうかにかかってるから、どうなの? というのが>>757の質問でしょう。
0766nobodyさん
垢版 |
2008/06/30(月) 00:09:35ID:???
Lighttpdに乗り換えちゃおうぜ!
0767nobodyさん
垢版 |
2008/06/30(月) 00:52:55ID:???
1.3のほうがいいってのは何が根拠なの?
まあ、2.x用のmod_fastcgiもmod_fcgiもしょーもないとは思うけど
0768nobodyさん
垢版 |
2008/07/01(火) 01:32:06ID:???
一応俺の Debian 鯖の各種 Apache で ab -c 10 -n 100000 http://localhost/ した結果置いとく。

■apache (1.3.34)
Time taken for tests: 87.821402 seconds
(略)
Requests per second: 1138.67 [#/sec] (mean)
Time per request: 8.782 [ms] (mean)
Time per request: 0.878 [ms] (mean, across all concurrent requests)
Transfer rate: 1279.89 [Kbytes/sec] received

■apache2 (2.2.3 mpm-prefork)
Time taken for tests: 28.611753 seconds
(略)
Requests per second: 3495.07 [#/sec] (mean)
Time per request: 2.861 [ms] (mean)
Time per request: 0.286 [ms] (mean, across all concurrent requests)
Transfer rate: 1744.21 [Kbytes/sec] received

■apache2 (2.2.3 mpm-worker)
Time taken for tests: 32.149481 seconds
(略)
Requests per second: 3110.47 [#/sec] (mean)
Time per request: 3.215 [ms] (mean)
Time per request: 0.321 [ms] (mean, across all concurrent requests)
Transfer rate: 1552.25 [Kbytes/sec] received

localhost から空のコンテンツを取るベンチだから実利用環境ではこんな大きな差は出ないと思うが、参考まで。
0769nobodyさん
垢版 |
2008/07/01(火) 01:38:53ID:???
1.3おせええええ
パフォーマンスをとるか安定度をとるかってことか
0770nobodyさん
垢版 |
2008/07/01(火) 18:39:39ID:???
fastcgiって昔からあって、積極的な開発はされてないし、1.3の方が安定してるっていうのは何となくそういう感じはする。
0771nobodyさん
垢版 |
2008/07/01(火) 18:41:18ID:???
オカルトスレはここですか?
0772nobodyさん
垢版 |
2008/07/01(火) 20:25:22ID:1MihmXWA
開発時、プログラム書き換えるたびにapache再起動するのが激しく面倒くさいんだが
なんとかならない?
0773nobodyさん
垢版 |
2008/07/01(火) 21:02:49ID:???
mod_perlの話?Apacheの設定を変えるのでも再起動しなきゃいけないんだから
しょうがないでしょ
0774nobodyさん
垢版 |
2008/07/01(火) 22:13:25ID:???
fastcgiって、ろくにメンテナンスされてないだろ。
0775nobodyさん
垢版 |
2008/07/02(水) 01:13:34ID:???
最終更新去年の4月だから
メンテされてないってことはないんじゃね?
枯れてるだけじゃないの
0776nobodyさん
垢版 |
2008/07/02(水) 02:33:20ID:f6IA2zpT
〜 時間がありません!協力をお願いします!!広めてください。 〜

【緊急】 7・2(水) 毎日新聞本社前抗議活動


         ___
       /     \
      /   \ , , /\
    /    (●)  (●) \ 行動は起こさないと、何にも始まらない!
     |       (__人__)   |  数は圧力です! その場にいるだけでいい!
      \      ` ⌒ ´  ,/ 
.      /⌒〜" ̄, ̄ ̄〆⌒,ニつ 
      |  ,___゙___、rヾイソ⊃ 
     |            `l ̄


「毎日新聞本社前抗議活動」 でググってください!!!
「毎日新聞本社前抗議活動」 でググってください!!!

http://jp.youtube.com/watch?v=XnVCDtGRhFU

【緊急】 7・2(水) 毎日新聞本社前抗議活動

〜 時間がありません!協力をお願いします!!広めてください。 〜


0777nobodyさん
垢版 |
2008/07/03(木) 14:43:11ID:???
FastCGIってapache再起動しなくても
.fcgiファイルをtouchしたら再読み込みされるらしいね!
これ常識なん?
0778nobodyさん
垢版 |
2008/07/03(木) 21:50:04ID:???
そりゃApacheとはプロセスが別だからね。
mod_perlとか系に対するアドバンテージかもね
0779nobodyさん
垢版 |
2008/07/04(金) 00:01:14ID:???
>>777
そりゃ mod_fastcgi の設定次第だろ。
0780nobodyさん
垢版 |
2008/07/04(金) 00:15:26ID:???
どんな設定したらできんの?
そもそもtouchするなんていうハック的な方法じゃなくて
正式にapiを提供したらいいのにな・・・
0782nobodyさん
垢版 |
2008/07/04(金) 10:18:25ID:???
> mod_perlとか系に対するアドバンテージかもね

なるのかなー?
fastcgi つかうと、FCGI::ProcManager アプリ側と front 両方いじらないと
アプリを再起動できなくね。
メモリ共有せずにプロセスの数分メモリ使っていいなら別だけど。
0783nobodyさん
垢版 |
2008/07/04(金) 19:04:30ID:???
mod_perlにもApache::Reloadあるし%INCからdeleteすれば
再読み込みしてくれるから更新を検知してリロードするロジックやプログラムを
自分で書くことも出来るよ。
0784nobodyさん
垢版 |
2008/07/04(金) 20:22:20ID:???
> mod_perlにもApache::Reloadあるし

つかったことある?
0785nobodyさん
垢版 |
2008/07/04(金) 20:32:39ID:???
>>784
自分は783ではないけれど、Apache::Reload使ったことある。
なんつーか、これ入れると(httpd.confで有効に設定)、全てのアクセスが激しく重くなる。
それも、mod_perl絡みだけでなくて、phpからstaticなhtmlからして全て。
(自前Benchで、有効時と無効時で、2倍近く差がでる。)

なので自分は、開発時はApache::Reload有効にする時もあるけど、
実運用では有効にはしないなぁ。
0786nobodyさん
垢版 |
2008/07/23(水) 22:12:11ID:???
Linux 2.6.22.5-49.fc6
Apache 2.2.3
SpeedyCGI 2.22
上記環境で mod_speedycgi2 を検証中です。
スクリプトの先頭に以下のように書いてます。
#!/usr/bin/speedy -- -t300 -r100

mod を経由して同スクリプトを実行すると、ps で確認した際のプロセス名が
/usr/bin/speedy_backend /path/to/script のようになるのですが、
この場合に -t300 や -r100 は効いてないと思って良いのでしょうか?
効かせたい場合にはどうしたら良いのでしょうか?
0787786
垢版 |
2008/07/23(水) 22:16:52ID:???
perldoc CGI::SpeedyCGI に書いてあった・・・orz 試してみます。

Apache
If you are using the optional Apache module, SpeedyCGI options can be set in the httpd.conf file. The
name of the apache directive will always be Speedy followed by the option name. For example to set the
Timeout option, use the apache directive SpeedyTimeout.
0788786
垢版 |
2008/07/23(水) 22:43:47ID:???
度々ですみません。一応、完了報告まで。
SpeedyTimeout 300
SpeedyMaxRuns 100
0789nobodyさん
垢版 |
2008/08/26(火) 14:39:14ID:???
Windowsで
http://perl.apache.org/docs/2.0/user/handlers/filters.html#Output_Filters
にあるサンプル
#file:MyApache2/FilterReverse1.pm
#----------------------------
package MyApache2::FilterReverse1;

use strict;
use warnings;

use base qw(Apache2::Filter);

use Apache2::Const -compile => qw(OK);

use constant BUFF_LEN => 1024;

sub handler : FilterRequestHandler {
my $f = shift;

while ($f->read(my $buffer, BUFF_LEN)) {
for (split "\n", $buffer) {
$f->print(scalar reverse $_);
$f->print("\n");
}
}

return Apache2::Const::OK;
}
1;
を実行しようとすると
Can't load 'C:/Perl/site/lib/auto/Apache2/Filter/Filter.dll' for module Apache2::Filter: 。。。。。
としかられるんだけどなぜ?
0790nobodyさん
垢版 |
2008/08/26(火) 21:14:39ID:???
そもそもmod_perlがはいってないとか?
0792nobodyさん
垢版 |
2008/08/29(金) 19:26:47ID:???
windowsでSpeedyCGI使えないかなぁ。
0793nobodyさん
垢版 |
2008/10/19(日) 06:49:00ID:Jn428c6F
CGI.pmとmod_perlの不具合みたいなのですが、uploadInfoが取得できません。

use CGI;
my %FORM;
my $cgi = new CGI;
foreach my $key ( $cgi->param() ){
$FORM{$key} = $cgi->param($key);
}
my $info = $cgi->uploadInfo($FORM{file});
unless (ref $info eq 'HASH') { print "error";}


これ試してみてください。$FORM{file}にはしっかりとファイル名が渡っているにも関わらず、undefが返ってきます。
ファイルのみをフォームにする場合には問題ないのですが、textareaなどもフォームに含めると取得できません。
0794nobodyさん
垢版 |
2008/10/20(月) 01:40:18ID:???
該当コードより前の処理でmy $cgi = new CGI;をしている所はありませんか。
use CGI;
use Data::Dumper;
my $cgi = new CGI;
my $fh = $cgi->upload('file');
print Dumper $fh, $cgi->tmpFileName($fh), $cgi->uploadInfo($fh);
これを最小構成のコードで実行するとどのような出力が得られますか。
0795nobodyさん
垢版 |
2008/10/20(月) 06:45:48ID:D0RbQ2Z9
>>794
最小構成で再現しませんでした。
グローバル変数が使いたくてvars.pmを使っていたのですが、それが悪さをしていたようです。
局所変数を使うと問題ないようです。

レスありがとうございました。
0796nobodyさん
垢版 |
2008/10/20(月) 13:36:16ID:???
これはヒドい JAROに通報していいレベル
0797nobodyさん
垢版 |
2008/11/08(土) 16:58:34ID:???
FastCGIをWindows環境に導入したみたんですが、Internal Server Error
が毎回発生してしまってうまくいきません。
error.logに「(OS 109)パイプは終了しました。」のメッセージが出るんですが
FastCGIが通信出来ていないって事なんでしょうか?
何か解れば、教えて下さい。

エラー内容
Internal Server Error

perlスクリプト test.fcgi
#!c:/perl/bin/perl
print "Content-type: text/html\n\n";
print "Hello world.";

環境
OS : WindowsXP Pro SP2
http : Apache/2.2.10 (Win32)
FastCGI : mod_fastcgi-2.4.6-AP22.dll

httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule fastcgi_module modules/mod_fastcgi-2.4.6-AP22.dll

<IfModule mod_fastcgi.c>
FastCGIConfig -initial-env PERL5LIB=C:/Perl/lib;C:/Perl/site/lib -autoUpdate -idle-timeout 120 -killInterval 3600 -maxClassProcesses 3-maxProcesses 15 -startDelay 30
AddHandler fastcgi-script .fcgi
</IfModule>
0798nobodyさん
垢版 |
2008/11/08(土) 16:59:57ID:???
>>797の続き
logs/error.log
[Thu Nov dd hh:mm:ss yyyy] [warn] FastCGI: (dynamic) server "C:/cgi-bin/test.fcgi" started (pid 388)
[Thu Nov dd hh:mm:ss yyyy] [warn] FastCGI: (dynamic) server "C:/cgi-bin/test.fcgi" (pid 388) terminated
 with exit with status '0'
[Thu Nov dd hh:mm:ss yyyy] [warn] FastCGI: (dynamic) server "C:/cgi-bin/test.fcgi" restarted (pid 2516)
[Thu Nov dd hh:mm:ss yyyy] [error] [client 127.0.0.1] (OS 109)パイプは終了しました。 : FastCGI: comm with
server "C:/cgi-bin/test.fcgi" aborted:GetOverlappedResult() failed
[Thu Nov dd hh:mm:ss yyyy] [error] [client 127.0.0.1] FastCGI: incompleteheaders (0 bytes) received from
server "C:/cgi-bin/test.fcgi" [Thu Nov dd hh:mm:ss yyyy] [warn] FastCGI: (dynamic) server
"C:/cgi-bin/test.fcgi" (pid 2516) terminated with exit with status '0'
0799nobodyさん
垢版 |
2008/12/05(金) 21:45:48ID:???
>>797
fastcgi の使い方がおかしい。
cpan でいろいろ探してみてみるといいよ。
0800nobodyさん
垢版 |
2008/12/21(日) 15:01:42ID:rToLegsW
今かりているレンタル鯖でmod_perl使えると知って、せっせと勉強始してたのはいいんだけど
htaccessしか使えないレンタルユーザーが使えるのってやっぱCGIの高速化だけですよね?
mod_perlのプログラミング、なんかしっくりくるから続けたいけど・・・
どうにかしたら使えるんじゃないかってまだ判断しかねてます。
実際どうなんでしょ?
0801nobodyさん
垢版 |
2008/12/21(日) 15:21:26ID:???
mod_perl は、その下にぶら下げておく perl の子が常駐することによって、
いろんな恩恵を受けれる。

ちなみにどこの鯖よ?
0802nobodyさん
垢版 |
2008/12/21(日) 16:16:34ID:5iT7SRyD
>>801
鯖はJust-Sizeってとこ。mod_perlとmod_pythonがロードされてて
問い合わせたらサポ外だけど使っていいと言われた(宣伝はしてない)

実際htaccessの記述でCGIならmod_perlでの動作を確認できてるんだけど
mod_perlスクリプトはユーザのディレクトリが@INCに入ってないから
当然自作モジュールは読み込めないです。
それであきらめかけてるんだけど・・変にテスト繰り返してメモリ食いなど迷惑かけたくないので
こちらに書き込みました。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況