1 名前:nobodyさん [2006/06/05(月) 20:01:09 ID:+YcYjDiD] mod_perl perl.apache.org/ SpeedyCGI perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod 前スレ mod_perlを使おう! pc8.2ch.net/test/read.cgi/php/1005122528/ ー二三ヘ( ゚∀゚)ノ
633 名前:nobodyさん mailto:sage [2007/05/29(火) 06:59:20 ID:???] 1background毎だと思っていたが…違うのか?
634 名前:nobodyさん mailto:sage [2007/06/01(金) 20:02:10 ID:???] すみませんがが、お知恵を拝借。 Apache2+mod_perl2 で、 my %List; $List{$key} = { a=>1,b=>2,c=>1} ... なんて連想配列作って、 sub listsort { my $r = $List{$a}{a} <=> $List{$a}{b}; if ($r == 0) { $r = $a cmp $b; } return $r; } foreach my $k (sort listsort keys(%List)) { # codes } のようにソート関数かませて、配列の中身でソートする様にしたんだけど、 ソースを変更して、1回目の実行ではリファレンスが正しくソート関数に届くのに、 2回目以降は届かなくなります。 これって、使い方が間違ってるんでしょうか? Reload の設定ミス? RHEL ES4 + Apache2.0.52 + mod_perl 2.0.3(tar install) openSUSE 10.0 + Apache 2.0.54 + mod_perl 2.0.1(rpm) どちらも同じ現象なので、プログラムじゃないかと思うんだけど、改善できなくって。
635 名前:nobodyさん mailto:sage [2007/06/04(月) 12:03:46 ID:???] listsort() がどの名前空間に宣言されているのか不明だし それが原因かどうかは分からんけど… その程度のソート内容なら for my $k (sort { $List{$a}{'a'} <=> $List{$b}{'b'} || $a cmp $b } keys %List) { でよくね?
636 名前:634 mailto:sage [2007/06/05(火) 05:13:19 ID:???] >635 listsort の中には、3段位の比較を入れる予定。 listsortの宣言は、関数内です。 sub func { sub listsort { } } ちょっと長いけどインラインにしてみるっす。
637 名前:nobodyさん mailto:sage [2007/06/28(木) 02:38:24 ID:???] 通常のPerlとSpeedyCGIを箱庭諸島R.A JSを使って比べてみた (島の数は0) トップページの表示しか載せないが 普通のPerlだとCPU時間が0.09〜 SpeedyだとCPU時間が最短0.01(大体0.03以上) になってワロタ
638 名前:nobodyさん mailto:sage [2007/07/06(金) 23:07:39 ID:???] >>637 普通普通
639 名前:nobodyさん mailto:sage [2007/07/12(木) 06:21:48 ID:???] mod_perlを導入したのですがカレントディレクトリがApacheのディレクトリになってしまい スクリプトのあるディレクトリがカレントディレクトリであると想定して書かれてるプログラムが動かなくなりました。 カレントディレクトリをスクリプトのディレクトリに変更する方法はありませんか? 環境はWindowsXP+Apache2.2.4です。
640 名前:nobodyさん mailto:sage [2007/07/12(木) 10:31:57 ID:???] >>639 adiary.blog.abk.nu/07
641 名前:nobodyさん mailto:sage [2007/07/12(木) 19:02:43 ID:???] >>640 どもども やってみます
642 名前:nobodyさん mailto:sage [2007/07/29(日) 22:25:25 ID:???] FC6でSpeedyCGI-2.22をソースインストールしようとしたら mod_speedycgi2などでエラーがでて失敗しました。 FC1ではうまくいったんですが・・・。FC6で何か足りないものが あるのでしょうか?
643 名前:nobodyさん mailto:sage [2007/07/30(月) 17:48:02 ID:???] >>642 ttp://dries.ulyssis.org/apt/packages/perl-CGI-SpeedyCGI/info.html これはどう?
644 名前:nobodyさん mailto:sage [2007/07/30(月) 22:09:00 ID:???] >>643 ありがとうございます。やってみたら、そのようなグループ、ユーザーは いません、rootを使います〜と言うのが出て、その後、パッケージごとに すでにインストールされているファイルと競合するので終了するような メッセージがでて完了出来ませんでした。 rpmの、競合するファイルを無視してインストールするオプションというの があればと思うのですがスイッチがわからないのでまだ試して無いです。
645 名前:nobodyさん mailto:sage [2007/08/01(水) 23:29:07 ID:???] >>642 FC6では試してないが、CentOS5では、 rt.cpan.org/Public/Dist/Display.html?Name=CGI-SpeedyCGI にあるpatchを一通り当てたら問題なくcompile出来た。
646 名前:nobodyさん mailto:sage [2007/09/13(木) 01:31:18 ID:???] >>639 さんじゃないんですが、mod_perl2でカレントディレクトリの 設定を変更後、DBI::SQliteのdbnameだけは絶対パスを 入れなきゃ動きません…そういうもんなんでしょうか? Apache 2.2.4+ActivePerl 5.8.8+mod_perl2
647 名前:nobodyさん mailto:sage [2007/09/13(木) 04:52:15 ID:???] mod_perl2はカレントディレクトリがスクリプトのあるディレクトリにならないから preforkならchdirしたりCGIのエミュ代わりならModPerl::RegistryPreforkやModPerl::PerlRunPreforkを 使うとカレントディレクトリがそのスクリプトのディレクトリになるから相対パスで書けない事もない workerの場合chdirが使えないというか使えるけど他のスレッドにも影響がでてしまうので危険 というわけでどちらにしても絶対パスで書いておくのが無難
648 名前:nobodyさん mailto:sage [2007/09/14(金) 13:55:09 ID:???] >>642 >>645 FCやCent使ってるなら RPMforgeを入れて yum -y perl-CGI-SpeedyCGI で入れたほうが簡単じゃない?
649 名前:nobodyさん mailto:sage [2007/09/14(金) 14:03:52 ID:???] >>648 yum -y install perl-CGI-SpeedyCGI ^^^^^^ でした。
650 名前:nobodyさん mailto:sage [2007/09/14(金) 18:42:10 ID:???] やあみんな、FastでSpeedyでmodなperlライフをおくってるかい? ところで、最近UpdateしたApache2.2.6と2.0.61でちゃんとmod_perl動いてる?
651 名前:nobodyさん mailto:sage [2007/09/14(金) 20:17:24 ID:???] >>650 試して報告してくれよん
652 名前:650 mailto:sage [2007/09/15(土) 03:58:09 ID:???] やあやあ、 実はWin32環境で2.2.6、2.0.61ともに自前でビルドしたやつに、 これまたCPANよりGetsして来た2.0.3tarボールから自前コンパイルしてみたんだが、 ちゃんと動かねえんだよ。 具体的にゆうと、Loadmodlueでmod_perl.soしてやったとき、通常にStartUpした様に見える。 で、普通のHTMLとCGIPerlとPHPはちゃんと動くんだけど、Locationでmod_perlってるディレクトリの ファイルをリクエストしたら、急にApacheがハングしてしまう。 ブラウザの画面に 「Internet Explorer ではこのページは表示できません 可能性のある原因: インターネットに接続されていない。 Web サイトに問題が発生している。 アドレスに入力の間違いがある可能性がある。」 が表示される。(Apacheをkillした時にlocalhost/ 叩いた時と同じ表示) ちなみにこの時、他のmod_perlでないページは正常に表示される。
653 名前:650 mailto:sage [2007/09/15(土) 03:58:47 ID:???] つづき この時のerror_logの表示は Error in my_thread_global_end(): 252 threads didn't exit [Sat Sep 15 02:47:35 2007] [notice] Parent: child process exited with status 9 -- Restarting. [Sat Sep 15 02:47:35 2007] [notice] Apache/2.0.61 (Win32) PHP/5.2.1 mod_perl/2.0.3 Perl/v5.8.8 configured -- resuming normal operations こんな感じ。 これみると、どおやらmod_perlなファイルにリクエストした時、なぜかApacheが再起動掛かってる模様。 ちなみにこの状態のままでも他のファイル(staticHTML,PHP,PerlCGI)は通常どおり表示される。 (access_logに記録もされてる。mod_perlなリクエストだけが欠落。) あと、標準module(mod_auth,mod_alias,mod_rewrite等)の機能もちゃんと動作する。 さらにこの状態の時にStop(コンソールからCtrl+C)かけると,一旦通常に終了処理が終わったように見えるけど、 タスクマネージャ見ると、Apacheのプロセスが起動したままの状態。 この時のerror_logの内容は Error in my_thread_global_end(): 1 threads didn't exit ocess is running 上のエラーと同じ内容だけど、thread1なとこを見ると親プロセスか?? その下に多分"Process"だとおもわれるメッセージの断片が・・・。
654 名前:650 mailto:sage [2007/09/15(土) 03:59:18 ID:???] つづき2 そんなこんなで何回か起動、再起動等を繰り返してると Winの強制終了のポップアップが出て終了。 そのときのerror_logには、 [Sat Sep 15 02:54:21 2007] [notice] Apache/2.0.61 (Win32) PHP/5.2.1 mod_perl/2.0.3 Perl/v5.8.8 configured -- resuming normal operations [Sat Sep 15 02:54:21 2007] [notice] Server built: Sep 15 2007 02:27:44 [Sat Sep 15 02:54:21 2007] [notice] Parent: Created child process 3412 [Sat Sep 15 02:54:23 2007] [crit] master_main: create child process failed. Exiting. [Sat Sep 15 02:54:23 2007] [error] (OS 6)ハンドルが無効です。 : Parent: SetEvent for child process 0 failed これ。 今までで[crit]なんかはじめて拝んだ。 前のレスのエラーは100%再現する。こっちのエラーはいまいち再現性がない(5回〜10回に一回くらい) ちなみに上のは、2.0.61だけど、2.2.6でも全く同じエラーが出る。(当然そのときは、mod_perlを2.2用にrebuild) theory58Sのコンパイル済みppmでも、エラー内容同じ。(2.0,2.2両方) 逆に、2.2.6と2.0.61のincludeとLibsでコンパイルしたmod_perl.soとライブラリ一式は、 2.2.4、2.0.59で両方正常に動く。(公式msiバイナリと自前ビルド両方とも試した。どっちも問題なし。)
655 名前:650 mailto:sage [2007/09/15(土) 03:59:51 ID:???] つづき3 公式とかによると、APRとAPR-utilのバージョンがあがってるようなんで、 これのせいかとかも思うけど、公式のML等ではこの話題でず。 (なんか違うバグ出たみたいで、早くも2.2.7かって話も出てる) perl.apache.orgのほうもこれに関する話題なし。 ちなみに”Loadmodule mod_perl.so”をコメントアウトすると何事もなかったかのように動いてる。 環境は WinNT 5.1 VC2005 sp1 + nmake (Ver 8.00.50727.762) Active perl 5.8.8-build822 あと、コンパイルオプションは無し(Makefile.winそのまま) 上にも書いたけど、全く同じコマンドで2.2.4と2.0.59は特に問題なくビルド出来た。 そのときの警告とかは、2.2.6or2.0.61のときと全く同じ(型変換うんぬんと、無効なオプションです。無視しますってやつ) 何度コンパイルし直してもこんな状況なんで、ここの猛者どもはどうなんかいの〜?って思って聞いてみた。
656 名前:nobodyさん mailto:sage [2007/09/15(土) 11:11:36 ID:???] colinux + CentOS で静的に入れてみたけど ログ見ても今のところは問題ないように見える
657 名前:650 mailto:sage [2007/09/15(土) 17:59:20 ID:???] >>656 そうですか。 実はうちも本番環境はFC or CentOSで組もうかと思ってる。 (今それ用のマシンを自作中。パーツがまだ揃ってない。今稼働中のマシンは2.2.4で動いてるけど止められない。) で、とりあえずWinでテスト環境作ろうと思ってやってみた訳なんだが、つまずいてしまった。 for Unixだと問題ないのかな? とりあえずもう一台組みあがったらfor Unixのソースでもう一回試してみる。
658 名前:nobodyさん mailto:sage [2007/09/15(土) 21:00:36 ID:???] 開発やテスト環境ならvmwareなりcolinux入れておけばいいじゃない
659 名前:nobodyさん mailto:sage [2007/09/19(水) 11:10:07 ID:???] どうもmod_perlのプログラミングについて今一わからないんですが、 要は、while(1){}の中でコーディングしてlastで終了するような プログラム書けばOKってことでしょうか?
660 名前:nobodyさん mailto:sage [2007/09/19(水) 16:11:40 ID:???] でんでんちがう
661 名前:nobodyさん [2007/10/10(水) 15:18:22 ID:/zGydDSw] mod_perlの弱点つーか いまいちperlがphpより普及しない理由として 常駐することがあると思うんだけど、 mod_phpみたいに常駐しないバージョンを開発するつもりないのかねー てかmod_phpっぽい動作にする方法あったら教えて えろい人
662 名前:nobodyさん mailto:sage [2007/10/10(水) 15:30:16 ID:???] >>661 >>660
663 名前:nobodyさん mailto:sage [2007/10/10(水) 19:03:11 ID:???] 日本語でおk
664 名前:nobodyさん mailto:sage [2007/10/11(木) 03:09:21 ID:???] で常駐しない方法ってあるん?
665 名前:nobodyさん mailto:sage [2007/10/11(木) 03:43:39 ID:???] mod_の意味わかってる?mod_だよ。 逆にmod_でない(常駐しない)phpなんか・・・・。
666 名前:nobodyさん mailto:sage [2007/10/11(木) 03:59:24 ID:???] mod_の意味ってわからないけど、プロセス常駐とApacheのモジュールとは関係ないと思うけど。fastcgiなんかだと外部プロセスに出来るわけだし。 ま、ウェブアプリと言ってもさまざまだけど、mod_phpで十分というかちょうどいいという感じはする。 リクエストごとに消えてくれるからメモリリークを心配せずによく、運用が簡単。 もっともPHP(mod_php)もバージョンが上がる度にリソース消費が激しくなってるけど。 何でPHP4をディスコンティニューするのか。PHPの開発者のすることは分からんね。
667 名前:nobodyさん mailto:sage [2007/10/11(木) 05:11:31 ID:???] う〜ん君が言ってるのは、常駐うんぬんのことではなくて、要はメモリ消費のことでしょ? mod_phpだってapacheプロセスとして常駐してるんだが・・・。 確かにmod_perlはそれに比べてメモリ消費が激しいのと、並列度を高めるとパフォーマンスダウンが著しい(特にpreforkなんかは) それはここの上のほうでも散々言われてることだから、Fastやspeedyなんかが話題になってるわけだし。 でもそれは>>661 で言ってるみたいにプロセスに常駐するかどうかが問題なわけではなくて、 そのリソース消費とパフォーマンスとの兼ね合いであって、まるでmod_phpが常駐しないみたいな言い方してるから >>660 だって言われてるんでしょ。
668 名前:nobodyさん mailto:sage [2007/10/11(木) 15:19:36 ID:???] >>667 >>666 いや常駐ってmod_なら常駐するってのはわかってるってよ スクリプトとかライブラリの常駐の話 mod_phpは実行してもスクリプトは常駐されないでしょ perlrunでもuseとかrequireされたライブラリは常駐するよね? その辺の話 自分専用サーバで使う分にはいいけど、mod_phpみたいにレンサバでも利用できるようにならないと 実質レンサバとかだとphpはperl(cgi)より速いって事になってるんじゃねって事
669 名前:nobodyさん mailto:sage [2007/10/11(木) 15:33:05 ID:???] 常駐ってか永続化 persistentだな すまん 言いたいことは >>666 のリクエスト以降の話でっす
670 名前:nobodyさん mailto:sage [2007/10/11(木) 17:38:08 ID:???] persisitence ではなくて cache だから、 単にキャッシュでいいんじゃなかろうか。
671 名前:nobodyさん mailto:sage [2007/10/11(木) 18:19:21 ID:???] mod_phpみたいにインタープリタのオーバヘッドだけ解消できるモードがあれば Perlもそこそこシェア守ってたかもね。権限なんかは利便性の二の次なのかな。
672 名前:nobodyさん mailto:sage [2007/10/11(木) 18:46:42 ID:???] とりあえずPerlを馬鹿にしとけば自尊心が保たれるみたいな
673 名前:nobodyさん mailto:sage [2007/10/11(木) 20:21:51 ID:???] >>668 > スクリプトとかライブラリの常駐の話 > mod_phpは実行してもスクリプトは常駐されないでしょ > perlrunでもuseとかrequireされたライブラリは常駐するよね? その辺の話 そういう方面の話か。だったら常駐とかプロセスとか紛らわしい言い方するなよ… で、mod_perl が使いにくいのはその通りで、 だから FastCGI や SpeedyCGI が話題になってるんだろ > てかmod_phpっぽい動作にする方法あったら教えて えろい人 SpeedyCGI 使え SpeedyCGI
674 名前:nobodyさん mailto:sage [2007/10/12(金) 00:42:05 ID:???] みんなどうもです 結局FastCGIかSpeedyCGIって事か… Catalystが動くかしらべてみっかな
675 名前:nobodyさん mailto:sage [2007/10/13(土) 16:39:43 ID:???] mod_perlならデフォで付けられる程安定/サポ有りモジュールだから間違いはない。 ビジネスするとこならまず選ぶ選択股であるのは当たり前。 amazon, mixi, hatena, livedoor, accessup ... 2chの話よりまず事例に従った方がミスはないと思うけどね。
676 名前:nobodyさん mailto:sage [2007/10/13(土) 19:36:24 ID:???] mod_perlは重い。HTMLやCSS,画像用に別にウェブサーバを用意しないといけない。一部の巨大なウェブサイトならリソースがふんだんにあるだろうけど、多くはそうじゃない。
677 名前:nobodyさん mailto:sage [2007/10/13(土) 20:51:37 ID:???] なんでそこまでして大規模サイトに スクリプト言語を使いたくなるのだろうねえ
678 名前:nobodyさん mailto:sage [2007/10/13(土) 21:03:55 ID:???] mod_perlって高負荷時に安定はしないんじゃね? mixiはDBの方がネックだったらしいから大丈夫だったっぽいけど。
679 名前:nobodyさん mailto:sage [2007/10/14(日) 14:39:13 ID:???] 別にサーバー用意しなきゃいけないは伝説。 超余裕環境が最高効率を目指すだけの技。 立ち上がるhttpdを3つ位までにしてworkerで動かせばメモリーの消費は抑えられて十分だよ。 preforkで立ち上げるからメモリーを馬鹿みたいに使って高負荷時にメモリーが無いと騒ぐことになる。 そもそもそこにボトルネックは ・プログラムをいかにhtmlにするか ・ファイルをいかにメモリーにおくか ・そしてmixiのようにdbをどうするか のようなCPU/IO/ネットワークまわりの基本レベルの選択が問題。 スクリプト言語といっても実行している時にはスクリプトの状態ではないのだから、 開発効率を考えればスクリプトを選ぶのは当たり前。 速度が必要な時にApache Moduleの世界に一部入る(greeとか)という選択肢があれば良い。
680 名前:nobodyさん mailto:sage [2007/10/14(日) 14:42:58 ID:???] x: そもそもそこにボトルネックは o: そもそもそこよりボトルネックは
681 名前:nobodyさん mailto:sage [2007/10/14(日) 19:32:01 ID:???] 事例多い → mod_perl mod_perl より速い → FastCGI さらに速い → mod_speedycgi root いらずで手軽 → SpeedyCGI 要は使い分けじゃね? 俺は手軽さが魅力だったので SpeedyCGI を選んだ。
682 名前:nobodyさん mailto:sage [2007/10/14(日) 21:00:07 ID:???] root権限、Apache 管理者権限なしでSpeedyCGIを導入する方法がわからん。 助けてえろい人。
683 名前:nobodyさん mailto:sage [2007/10/14(日) 21:05:14 ID:???] >>682 Apache管理者権限って何? つ、普通に入れられないのか?
684 名前:nobodyさん mailto:sage [2007/10/15(月) 12:38:49 ID:???] サーバにシェルログインする。 SpeedyCGI をユーザホームディレクトリ配下にインスコする。 以上
685 名前:nobodyさん mailto:sage [2007/10/15(月) 15:54:12 ID:???] >>681 mod_perl で効果的に ithread 使うのが一番速い。 FastCGI だとスレッドの恩恵が少ない。 レンタルサーバだと一定時間を越えて動作するプロセス 情け容赦なく kill されるので SpeedyCGI は利用できないと思った方が無難。 (SpeedyCGI に限らないが。)
686 名前:nobodyさん mailto:sage [2007/10/15(月) 16:30:46 ID:???] use threadは使い物にならなかったけどuse ithreadは使いものになるのか。 今度試してみよう。 この板見て初めての収穫。
687 名前:nobodyさん mailto:sage [2007/10/15(月) 16:32:14 ID:???] x: use thread / o:use threads
688 名前:nobodyさん mailto:sage [2007/10/15(月) 16:51:46 ID:???] せめて試してから収穫かどうか判断しろよ
689 名前:nobodyさん mailto:sage [2007/10/15(月) 18:07:12 ID:???] Apache が worker 動作してるなら試してみる価値はある。 一方で lighttpd + fastcgi で十分じゃないかと言う話も。
690 名前:nobodyさん mailto:sage [2007/10/15(月) 22:42:23 ID:???] >>684 >SpeedyCGI をユーザホームディレクトリ配下にインスコする。 わからん。。。。。。。 普通にmakeしてもダメだろ?
691 名前:nobodyさん mailto:sage [2007/10/16(火) 00:58:26 ID:???] >>686 Perl で ithread を使うための宣言が use threads だろ。 同じ物だよ。 >>690 「CPAN ホームディレクトリ」でググれ。 cpan コマンド使わずに手動でインスコするなら perl Makefile.PL PREFIX=$HOME とか
692 名前:nobodyさん mailto:sage [2007/10/16(火) 10:52:05 ID:???] まじ? それだったら期待できないな。 過去の経験からいえばperlのthreadsはメモリーの扱い下手過ぎ(過消費)。 スワップまでの寿命がかなり短くなる。
693 名前:nobodyさん mailto:sage [2007/10/16(火) 12:36:40 ID:???] スクリプト言語は開発効率が高いって本当なの? 企業としては開発効率以外にも見るべき所があるでしょ
694 名前:nobodyさん mailto:sage [2007/10/16(火) 12:47:07 ID:???] >>692 5.005 の thread (use Thread;) と 5.6 以降の ithreads (use threads;) は違う。 後者の場合も注意して作らないとメモリをジャブジャブ使うのは変わらないが。 >>683 場合によりけりだろう。 一般的には規模が大きくなればかえって効率下がることになってる。 個人的には規模が小さくても型付けの弱い言語は開発効率が低いと感じる。
695 名前:nobodyさん mailto:sage [2007/10/16(火) 16:20:31 ID:???] そういう意味だったら試したのはithreadの方だったと思う。 でも、多分 Interpreter threads are different from "5005threads" (the thread model of Perl 5.005) by creating a new perl interpreter per thread and not sharing any data or state between threads by default. とあるとおり、スレッド毎にinterpreter分のメモリーをガンって増やすから、凄いことになっちゃったのかな。 mod_perlだともしかしてこのinterpreter分が節約できるのか? 自分はコマンド用途で試してたから増え方にビックリしたんだけど。
696 名前:nobodyさん mailto:sage [2007/10/16(火) 16:50:51 ID:???] ごめん。685 の文からしておかしかった。 mod_perl (2.x) は ithread を内部的に使ってる、だった。 で、プロセス毎に上限の設定されたスレッドプールで使いまわしてる。
697 名前:nobodyさん mailto:sage [2007/10/17(水) 16:52:12 ID:???] mod_perl重いって話けっこうあるし、画像用の別サーバとか 普通ってかあたりまえな気はする。 別サーバといっても同じマシンに別のApache立ち上げるだけでいいわけだし mod_phpにしてもメモリ食いだし、静的ファイル用に別サーバ用意するのは当たり前だとおもってたけどな・・ それで重いといわれても〜
698 名前:nobodyさん mailto:sage [2007/10/17(水) 16:54:27 ID:???] あと開発効率はめちゃ高いと思うぞ 大規模なサイトでも機能ごとにちゃんと分けてあげたり普通につくれば普通に便利。 てか体が慣れてるので俺の中ではウェブ系はPerl以外ありえない
699 名前:nobodyさん mailto:sage [2007/10/17(水) 16:56:24 ID:???] あとまったくすれ違いだけどphpってphp.iniで文字コード制御とかありえねーなといつも思う と独り言
700 名前:nobodyさん mailto:sage [2007/10/17(水) 17:16:43 ID:???] 静的ファイルの話するには100番くらいレス戻さないとダメだが。 静的ファイルで速度出したいなら lighttpd も良い選択だと思われ。
701 名前:nobodyさん mailto:sage [2007/10/17(水) 19:51:25 ID:???] それをいったら、実行はじめたスクリプト中で ini_set('mbstring.internal_encoding', 'EUC-JP'); とか
702 名前:nobodyさん [2007/10/22(月) 16:25:52 ID:YWIr8Jbq] 専用ならHTTP::Daemonで まるごと組んじゃうとか、どうなの?
703 名前:nobodyさん mailto:sage [2007/10/23(火) 13:31:51 ID:???] 細かい処理考えるのめんどいからmod_jk + Net::AJP13に期待
704 名前:nobodyさん mailto:sage [2007/10/29(月) 01:19:53 ID:???] ねえねえ、ひょっとして 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系で動かしてる人いませんか?
705 名前:nobodyさん mailto:sage [2007/10/29(月) 08:39:55 ID:???] 上のレスでさんざん既出のこれじゃないかな rt.cpan.org/Public/Bug/Display.html?id=23920
706 名前:nobodyさん mailto:sage [2007/10/29(月) 22:49:20 ID:???] >>705 やった〜。makeできたよママン。 ありがトン。
707 名前:nobodyさん [2007/10/30(火) 04:25:29 ID: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系で動かしてる人いませんか?
708 名前:nobodyさん [2007/11/14(水) 00:27:32 ID: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系で動かしてる人いませんか?
709 名前:nobodyさん [2007/11/14(水) 06:43:19 ID: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系で動かしてる人いませんか?
710 名前:nobodyさん mailto:sage [2007/11/17(土) 13:53:14 ID:???] ねえねえ、ひょっとして 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系で動かしてる人いませんか?
711 名前:nobodyさん mailto:sage [2007/11/17(土) 18:28:52 ID:???] いい加減うぜえよwww
712 名前:nobodyさん mailto:sage [2007/11/24(土) 02:37:09 ID:???] ちょっと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
713 名前:nobodyさん mailto:sage [2007/11/24(土) 09:23:53 ID:???] Blog (笑 どんなエラーかも書いてないし…これは酷い。
714 名前:712 mailto:sage [2007/11/25(日) 19:11:55 ID:???] こりゃあきまへん。これこの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通らないのがデフォかなって思って、書き込みしたわけなんだが・・・。笑うところか? まあいいわ。原因はつかんだ。
715 名前:つづき mailto:sage [2007/11/25(日) 19:12:31 ID:???] で、ちょっと長くなるけど、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;
716 名前:つづき2 mailto:sage [2007/11/25(日) 19:13:06 ID:???] この 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下にはいない)
717 名前:たぶん終わり mailto:sage [2007/11/25(日) 19:13:42 ID:???] 激しく無理やりな解決方法としては、 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 が追加されるんで、「お、出来たか」と思ったけど、 だめなんだよ。
718 名前:ほんとに終わり mailto:sage [2007/11/25(日) 19:14:17 ID:???] ウチの環境(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 する以上、絶対コケるようにしか思えないんだが・・・)
719 名前:nobodyさん mailto:sage [2007/11/25(日) 20:48:10 ID:???] 今日吉野家行ったんだけどさ まで読んだ
720 名前:nobodyさん mailto:sage [2007/11/26(月) 12:58:45 ID:???] このスレってみんなが libapreq2 を試すようなスレじゃないと思うよ
721 名前:nobodyさん mailto:sage [2007/11/26(月) 13:24:06 ID:???] さあ検証内容とpatchをbugリポートに送ってみんなを幸せにするんだ
722 名前:nobodyさん [2007/12/02(日) 08:44:17 ID:1DkmgRhY] 今北産業
723 名前:nobodyさん mailto:sage [2007/12/10(月) 11:46:51 ID:???] これについてわかる方いますか? pc11.2ch.net/test/read.cgi/php/1018333172/580-581 環境は、 OS:centos5 httpd-2.2.3-11.el5.centos mod_perl-2.0.2-6.3.el5 になります。
724 名前:nobodyさん mailto:sage [2007/12/10(月) 20:27:41 ID:??? BE:284169964-2BP(1520)] add-handler あたりかな?
725 名前:723 mailto:sage [2007/12/10(月) 21:05:41 ID:???] >>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ディレクティブは削除
726 名前:nobodyさん [2008/02/18(月) 21:32:41 ID:aEv1JCZt] Apache2.2.8、PHP5.2.5、mod_fastcgi2.4.6使用。 100MBとかの大きなファイルをPHPにアップロードしている最中、 startDelayごとに新しいプロセスが起動されてしまう。 maxClassProcessesかmaxProcessesに到達するまで続く。 どうにかならないでしょうか?
727 名前:726 [2008/02/19(火) 18:33:58 ID:3qklWUbG] mod_fastcgiのソース見たら納得。 WebサーバーからFastCGIサーバーへの、CGIでいうところの標準入力は すぐ完了するという仮定でコードが書かれてて、 時間がかかる⇒FastCGiサーバーがハング という想定なのね。 ちょこっとパッチ当てるだけじゃ解決できないっぽい…? 参ったなあ
728 名前:nobodyさん mailto:sage [2008/02/19(火) 21:41:50 ID:???] あー、俺も FastCGI 経由で応答に5秒以上かかる検索クエリ動かしたら異常終了したことがあったんだが、原因は>>727 と同じか?
729 名前:726 mailto:sage [2008/02/19(火) 22:41:08 ID:???] mod_fcgidはリクエストを全部いったんモジュール内でバッファリングしやがる。 おかげでhttpdが150MBメモリ使ってしまった。 メーリングリストを見ると、MaxRequestInMemディレクティブを使えとのことだが、 症状は変わらない。例え動くとしても、 fastcgi.coremail.cn/download.htm >If the length of http request longer than "MaxRequestInMem", it will store in tmp file. 結局ファイルにバッファリングするだけみたいだし。 Apacheが異常終了したのか、それともFastCGIサーバーが異常終了したのか
730 名前:726 mailto:sage [2008/02/19(火) 22:41:27 ID:???] 最後の1行は>>728 当て
731 名前:728 mailto:sage [2008/02/19(火) 23:57:15 ID:???] >>730 もう1年以上前の話なんでうろ覚えだが、 Internal Server Error か似たような状態になった希ガス
732 名前:nobodyさん mailto:sage [2008/02/22(金) 07:02:49 ID:???] mod_perlなんすけど、sudoで動かないのはなぜに? ちゃんとApache権限で呼び出してるんだけど、CGIとして動いてる。 他のも一緒?
733 名前:732 [2008/02/24(日) 01:02:41 ID:9eLfTMt1] うう;; 誰か教えておくれ。 あと、mod_perlって標準出力も違う? Image::Magickで標準出力しようとして、 $image->Write('jpeg:-'); の部分でエラー。ファイル場所がおかしいって。 指定方法を変えれば標準出力できる?