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/ ー二三ヘ( ゚∀゚)ノ
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:-'); の部分でエラー。ファイル場所がおかしいって。 指定方法を変えれば標準出力できる?
734 名前:nobodyさん mailto:sage [2008/02/24(日) 02:11:15 ID:???] とりあえずもちついて状況を説明汁
735 名前:nobodyさん mailto:sage [2008/02/24(日) 02:43:34 ID:???] Perlのアクセラレーター rintaro.dip.jp/program/apbench/index.html このページ繋がらなくなっちゃってるなー このスレの人のベンチがあったからたまに見てたんだが 自宅鯖だったんだろな
736 名前:nobodyさん mailto:sage [2008/02/24(日) 16:59:49 ID:???] >>733 mod_perlだとforkするわけじゃなくevalされるからsudoの入り込む余地は無いんじゃないか。 >ファイル場所がおかしいって。 標準出力はSTDOUTで同じ。カレントディレクトリがルートになってるよ多分。 print `pwd`;とかで調べて絶対パスで指定するか始めにchdir。
737 名前:nobodyさん mailto:sage [2008/02/24(日) 17:06:50 ID:???] 回答がちょっとずれてたごめん。 STDOUTに出力してるのに「ファイル場所がおかしいって」ってエラーが出るのか 私もわからんです。
738 名前:732 [2008/02/24(日) 18:56:01 ID:9eLfTMt1] >>734 sudo -u apache /var/www/hoge.cgi で動かしたいんだけど、permissionエラーになるの。 当然って言えば当然なんだけど、mod_perlならパーミッション関係なく動くよね? これはapacheが予めコンパイルしてるからだろうけど、そのコンパイル済みのperlとして呼び出したいんだけどなぁ。 つまり、cronをはじめ、外部から呼び出す時にはmod_perlで動かす事は不可能って事でよいのかな? url叩けばmod_perlとして動くのかな? それと他のspeedyとかでも挙動は同じなのかなって質問です。 標準出力についての質問は、 普通"-"で標準出力を指すよね?mod_perlではこれを標準出力として認識しないようなんですが。
739 名前:732 [2008/02/24(日) 19:12:29 ID:9eLfTMt1] >>736 あ。ありがとうございます。 標準出力についてですが、そもそも標準出力ってオンメモリーみたいなものだと思ってたのですが、 俺の勘違いでしょうか? フルパスでどこを指定すればよいのでしょうか?
740 名前:736 mailto:sage [2008/02/24(日) 19:43:44 ID:???] >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〜エラーが発生していると思われます。
741 名前:732 [2008/02/24(日) 21:05:56 ID:9eLfTMt1] >>740 詳しい説明ありがとうございました。 なるほど。やはりmod_perlですとcronからはURLとして叩く(Apacheを通す)しかないのですね。 speedycgiは挙動が違うというのも非常に知りたい情報でした。ありがとうございます。 標準出力についてですが、 $image->Read('フルパス'); としています。その時点ではエラーは吐いておらず、 $image->Write('フルパス'); としてファイルに書き込む場合は同じく問題ないのですが、 $image->Write('jpeg:-'); と標準出力に出力しようとした場合にエラーとなります。
742 名前:732 [2008/02/24(日) 21:10:29 ID:9eLfTMt1] >>740 お詳しいようなのでもう一点質問して良いですか? mod_perlだとDBとの接続も維持したままになると思いますが、それはspeedyCGIでも同じでしょうか? なぜcronでmod_perlとして動かしたいかというと、そこにあるので。
743 名前:nobodyさん mailto:sage [2008/02/24(日) 21:59:41 ID:???] > $image->Write('jpeg:-'); > と標準出力に出力しようとした場合にエラーとなります。 それはWrite時に初めてリード時のエラーを指摘されているだけだと思います。 $image->Read('フルパス') or die $!; とすればRead時にエラーが発生しているのが分かるかと思います。 >mod_perlだとDBとの接続も維持したままになると思いますが、それはspeedyCGIでも同じでしょうか? speedyCGIでもコネクションプーリングする事は可能です。 但しmod_perlのApache::DBIのようにトランスペアレントではありませんから 自分でDBハンドルを再利用するようにロジックを組む必要があります。 もしかするとspeedyCGIからでもApache::DBIが利用できるかもしれませんが試したことが無いので分かりません。
744 名前:732 [2008/02/24(日) 22:49:11 ID:9eLfTMt1] >>743 ありがとうございます。 ご指摘の通り、Readの時点でこけます。 フルパスで指定しているのに、なぜNo suchが出るのでしょうか? それとファイルに書き込む時は(or dieをつけなければ)そのままエラー無く処理が完了します。 試しに標準出力ではなくファイル書き込み時ではReadの時点でInappropriate ioctl for deviceというエラーになります。 なぜエラー内容が変わってくるのでしょうか? pwdの結果は/でしたのでフルパスの指定は間違いないと思うのですが。
745 名前:732 [2008/02/24(日) 22:52:20 ID:9eLfTMt1] ちなみに標準出力時に出るエラーとは以下のものです。 Exception 450: Output file write error --- out of disk space? `-'
746 名前:732 [2008/02/24(日) 23:14:44 ID:9eLfTMt1] うそでした。 すいません。どちらの場合もReadの時点で以下のエラーが出ています。 Inappropriate ioctl for device DBとのコネクションプーリングの件は私には敷居が高そうなのでmod_perlでやってみようと思います。
747 名前:nobodyさん mailto:sage [2008/02/24(日) 23:24:44 ID:???] ヴォケの>>732 に根気よくつきあってやる>>740 に感動下 とりあえず>>732 はこれでも読んどけ www.google.co.jp/search?q=%83R%83l%83N%83V%83%87%83%93%83v%81[%83%8A%83%93%83O%93s%8Es%93%60%90%E0
748 名前:736 mailto:sage [2008/02/25(月) 00:37:18 ID:???] 実際試して状況を把握しました ・Readは如何なる場合でも真を返さない ・今回の件はmod_perl時に起こる問題 XSなimageMagickがレイヤー飛び越えて標準出力してるのでIOエラーが出ている模様 標準出力とメモリ展開を混同されているっぽいですがオンメモリでやりたいという事であれば $image->Write('jpeg:-'); を print $image->ImageToBlob; とすれば良いと思います。 なまじっかスキルがあると自分の解釈で勝手に理解してこういう当を得ない質問になるんだよなと 生暖かく見てたがそれは俺でした/(^o^)\
749 名前:732 [2008/02/25(月) 01:01:47 ID:r7CiXV4j] >>748 わざわざ試してまでもらって恐縮です。 ImageMagickは標準出力がmod_perlでは出来ないんですね。 ImageToBlobでやってみます。 長々と素人にお付き合いありがとうございました。m(__)m
750 名前:nobodyさん mailto:sage [2008/03/30(日) 17:36:33 ID:???] 保守
751 名前:nobodyさん mailto:sage [2008/04/19(土) 04:55:36 ID:???] おお、2.0.4がきてるじゃないか!!?
752 名前:nobodyさん mailto:sage [2008/06/04(水) 04:11:40 ID:???] ほっほっ
753 名前:nobodyさん [2008/06/10(火) 16:29:09 ID: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が古い? 教えてください。
754 名前:nobodyさん mailto:sage [2008/06/11(水) 01:21:57 ID:???] AddModule?
755 名前:nobodyさん mailto:sage [2008/06/11(水) 11:26:09 ID:???] AddModule はLoadModuleの後に設定するはずですから・・・。
756 名前:nobodyさん [2008/06/26(木) 03:55:41 ID:LMAVX0ml] mod_fast_cgiのインストールに関してググると、 apache2.2のためにはパッチをあてるってあるけど 2.4.6の今もパッチは必要なの?
757 名前:nobodyさん [2008/06/29(日) 00:22:02 ID:M9i4VA+K] FastCGIは、apache1.3と組み合わせるのが 一番安定するという話をネットで目にしたのですが これは今でもそうですか? 一昔前ならともかく、1.3系はもう古いという印象があるんですが
758 名前:nobodyさん mailto:sage [2008/06/29(日) 00:39:11 ID:???] > 一昔前ならともかく、1.3系はもう古いという印象があるんですが あなたの基準で「古い」と何か問題?
759 名前:nobodyさん [2008/06/29(日) 00:43:03 ID:M9i4VA+K] なぜ煽り気味? 目にしたブログの記事が少し古いものばかりなので 今の状況は少し変わってるのではないかと思ったのです
760 名前:nobodyさん mailto:sage [2008/06/29(日) 02:14:29 ID:???] 1.3.41のリリース日みた? 状況も解らずに「古い印象」とかなんとかヌかしてるから言われるんでしょ
761 名前:nobodyさん mailto:sage [2008/06/29(日) 06:14:16 ID:???] >>760 757 ではないが、お前が「古い」の意味を混同してるよ。 日本語が読めればわかると思うが、>>759 で書かれてるのは、 「FastCGIは、apache1.3と組み合わせるのが一番安定するという話」 が書かれた記事が 「少し古いものばかりなので今の状況は少し変わってるのではないかと」 ってことだろ。 Apache 1.3 系が古いか否かや、メンテナンスが続いているか否かとは別次元の話。 で、 > あなたの基準で「古い」と何か問題? を俺なりに勝手に考えると、 ・今時のディストリビューションには標準で付属していないことが多いので 1.3 の導入やメンテが面倒、できればやりたくない ・今はメンテが続いているけどいつかは終わるだろう、当然ながら 2.0 系より早い時期に ってとこじゃね?
762 名前:nobodyさん mailto:sage [2008/06/29(日) 09:19:02 ID:???] > ・今時のディストリビューションには標準で付属していないことが多いので 1.3 の導入やメンテが面倒、できればやりたくない debian stable 使えばいいと思うよ。今のところ全部そろってるよ。
763 名前:nobodyさん mailto:sage [2008/06/29(日) 19:16:17 ID:???] >>762 Debian でも ・少なくとも静的なファイル配信は Apache2 の方が優れてるからできれば Apache2 に一本化したい ってのはあると思うよ。
764 名前:nobodyさん mailto:sage [2008/06/29(日) 20:57:20 ID:???] > Debian でも > ・少なくとも静的なファイル配信は Apache2 の方が優れてるからできれば Apache2 に一本化したい > ってのはあると思うよ。 何おっしゃりたいのか、さっぱりいみわかんなーい。 持論はブログで展開してくれよ。
765 名前:763 mailto:sage [2008/06/29(日) 23:45:25 ID:???] >>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 の質問でしょう。
766 名前:nobodyさん mailto:sage [2008/06/30(月) 00:09:35 ID:???] Lighttpdに乗り換えちゃおうぜ!
767 名前:nobodyさん mailto:sage [2008/06/30(月) 00:52:55 ID:???] 1.3のほうがいいってのは何が根拠なの? まあ、2.x用のmod_fastcgiもmod_fcgiもしょーもないとは思うけど
768 名前:nobodyさん mailto:sage [2008/07/01(火) 01:32:06 ID:???] 一応俺の Debian 鯖の各種 Apache で ab -c 10 -n 100000 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 から空のコンテンツを取るベンチだから実利用環境ではこんな大きな差は出ないと思うが、参考まで。
769 名前:nobodyさん mailto:sage [2008/07/01(火) 01:38:53 ID:???] 1.3おせええええ パフォーマンスをとるか安定度をとるかってことか
770 名前:nobodyさん mailto:sage [2008/07/01(火) 18:39:39 ID:???] fastcgiって昔からあって、積極的な開発はされてないし、1.3の方が安定してるっていうのは何となくそういう感じはする。
771 名前:nobodyさん mailto:sage [2008/07/01(火) 18:41:18 ID:???] オカルトスレはここですか?
772 名前:nobodyさん [2008/07/01(火) 20:25:22 ID:1MihmXWA] 開発時、プログラム書き換えるたびにapache再起動するのが激しく面倒くさいんだが なんとかならない?
773 名前:nobodyさん mailto:sage [2008/07/01(火) 21:02:49 ID:???] mod_perlの話?Apacheの設定を変えるのでも再起動しなきゃいけないんだから しょうがないでしょ
774 名前:nobodyさん mailto:sage [2008/07/01(火) 22:13:25 ID:???] fastcgiって、ろくにメンテナンスされてないだろ。
775 名前:nobodyさん mailto:sage [2008/07/02(水) 01:13:34 ID:???] 最終更新去年の4月だから メンテされてないってことはないんじゃね? 枯れてるだけじゃないの
776 名前:nobodyさん [2008/07/02(水) 02:33:20 ID:f6IA2zpT] 〜 時間がありません!協力をお願いします!!広めてください。 〜 【緊急】 7・2(水) 毎日新聞本社前抗議活動 ___ / \ / \ , , /\ / (●) (●) \ 行動は起こさないと、何にも始まらない! | (__人__) | 数は圧力です! その場にいるだけでいい! \ ` ⌒ ´ ,/ . /⌒〜" ̄, ̄ ̄〆⌒,ニつ | ,___゙___、rヾイソ⊃ | `l ̄ 「毎日新聞本社前抗議活動」 でググってください!!! 「毎日新聞本社前抗議活動」 でググってください!!! jp.youtube.com/watch?v=XnVCDtGRhFU 【緊急】 7・2(水) 毎日新聞本社前抗議活動 〜 時間がありません!協力をお願いします!!広めてください。 〜
777 名前:nobodyさん mailto:sage [2008/07/03(木) 14:43:11 ID:???] FastCGIってapache再起動しなくても .fcgiファイルをtouchしたら再読み込みされるらしいね! これ常識なん?
778 名前:nobodyさん mailto:sage [2008/07/03(木) 21:50:04 ID:???] そりゃApacheとはプロセスが別だからね。 mod_perlとか系に対するアドバンテージかもね
779 名前:nobodyさん mailto:sage [2008/07/04(金) 00:01:14 ID:???] >>777 そりゃ mod_fastcgi の設定次第だろ。
780 名前:nobodyさん mailto:sage [2008/07/04(金) 00:15:26 ID:???] どんな設定したらできんの? そもそもtouchするなんていうハック的な方法じゃなくて 正式にapiを提供したらいいのにな・・・
781 名前:nobodyさん mailto:sage [2008/07/04(金) 01:38:38 ID:???] ドキュメントくらい読めよ www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html d.tir.jp/pw?mod_fastcgi
782 名前:nobodyさん mailto:sage [2008/07/04(金) 10:18:25 ID:???] > mod_perlとか系に対するアドバンテージかもね なるのかなー? fastcgi つかうと、FCGI::ProcManager アプリ側と front 両方いじらないと アプリを再起動できなくね。 メモリ共有せずにプロセスの数分メモリ使っていいなら別だけど。
783 名前:nobodyさん mailto:sage [2008/07/04(金) 19:04:30 ID:???] mod_perlにもApache::Reloadあるし%INCからdeleteすれば 再読み込みしてくれるから更新を検知してリロードするロジックやプログラムを 自分で書くことも出来るよ。
784 名前:nobodyさん mailto:sage [2008/07/04(金) 20:22:20 ID:???] > mod_perlにもApache::Reloadあるし つかったことある?