【激速】mod_perl SpeedyCGI FastCGI【激速】
1 :nobodyさん :2006/06/05(月) 20:01:09 ID:+YcYjDiD.net mod_perl http://perl.apache.org/ SpeedyCGI http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod 前スレ mod_perlを使おう! http://pc8.2ch.net/test/read.cgi/php/1005122528/ ー二三ヘ( ゚∀゚)ノ
805 :802 :2008/12/21(日) 20:46:58 ID:???.net すいません、今、思いついてCGIのプロセスIDを調べてみたら やっぱりブラウザのリロードごと、毎回IDが新しくなっていました。 >>804 の件、鯖の方に問い合わせてみます。 話がずれてしまったけど、非CGIのmod_perlスクリプトの方は レン鯖ではあきらめるふんぎりがつきました。ありがとうございました〜!
806 :nobodyさん :2009/01/28(水) 14:35:27 ID:???.net すみません、教えてください。 RHEL4上で、Apache2+ModPerl2 の環境があります。 1つの仮想ホスト上に複数(現状4つ)のシステムを同居させてます。 つまり、DocumentRootには、4つのログインページがあり、ログインに成功するとそれぞれ サブディレクトリに移動します。 それぞれのシステムのセッション管理をCGI::Sessionにやらせています。 セッションIDは、それぞれのシステムでCookie名を変えて発行しています。 セッション情報を取得するために、 my $cgi = new CGI; CGI::Session->name('SYS1SESSID'); my $session = new CGI::Session("driver:hoge",$cgi,{Handle=>$dbh}); といった感じで使いまわしていたんですが、「ModPerl環境だと、CGI::Session::NAMEがモジュールローカル なので、new CGI::Session()で他のIDを使おうとしてしまうかもしれない」 という理解は正しいでしょうか? 結構頻繁にアクセスされているシステムです。 ログイン対象システムのセッションIDを正確に取るには、 my $cgi = new CGI; my $sid = $cgi->cookie('SYS1SESSID'); my $session = new CGI::Session("driver:hoge" ,$sid, {Handle=>$dbh}); の様に、使うべきセッションIDを指定しなければならない という理解で合っているでしょうか? CGI::Session は、現状、4.20 です。
807 :nobodyさん :2009/01/30(金) 17:46:30 ID:FjWtrZEq.net 代理age
808 :nobodyさん :2009/01/31(土) 16:58:46 ID:8MtMaIxA.net ちょっと通りますが、 Windows XPで、Apahc2+mod_perl2で、下のエラーが出るときの対処方法って知ってますか? failed to resolve handler `MyHandler': Can't load 'C:/Perl/site/lib/auto/APR/Pool/Pool.dll' 〜
809 :nobodyさん :2009/01/31(土) 18:12:00 ID:???.net dllがないんじゃねーの?
810 :nobodyさん :2009/01/31(土) 18:57:57 ID:8MtMaIxA.net いや、普通にあるんだけどね。
811 :nobodyさん :2009/01/31(土) 19:07:11 ID:???.net >>810 あるならエラー出ない気もするんだが。。。 今出してる情報だけだとあとはそのエラー出てるファイルまでの ディレクトリ(パス)が違うか、権限(実行権か読み取り権)が無いかだと思う。
812 :nobodyさん :2009/01/31(土) 19:12:38 ID:???.net Windowsだし単純にあぱっちとぱーるのインストールドライブが違うんじゃね? ドライブが同じでもあぱっちのほうのぱす検索部分修正してないとか 初期設定をきちんとできてない素人質問な気はする
813 :nobodyさん :2009/01/31(土) 19:32:31 ID:8MtMaIxA.net >>811 ぐぐってもそんな感じで解決してたな。 でもパスとかちゃんと合ってるんだよな。
814 :nobodyさん :2009/01/31(土) 19:35:53 ID:???.net >>813 ドライブ跨ってない? >>812 も言ってるがWinのドライブは越せないよ
815 :nobodyさん :2009/01/31(土) 19:39:02 ID:8MtMaIxA.net ドライブはCドライブ一個しかないからそこは大丈夫だな。
816 :nobodyさん :2009/01/31(土) 19:47:00 ID:???.net >>815 ※mod_perl2からはPerlSetEnv PERL5LIB じゃなくて PerlSwitches -Iに変わった これは試した? てか何を試したか書かないと一からこっちが聞いて回答して やった、大丈夫とかの返事になりムダが多い 情報の小出しはどこに行っても嫌われるぞ、エスパースレかどっかいけよ
817 :nobodyさん :2009/01/31(土) 19:50:58 ID:???.net もう一度Apache2.2+mod_perl2か、バージョン確認かな。
818 :nobodyさん :2009/01/31(土) 19:58:11 ID:8MtMaIxA.net Win32 Binary including OpenSSL 0.9.8i (MSI Installer): apache_2.2.11-win32-x86-openssl-0.9.8i.msi OpenSSL入りだと何か違うのかな?なしで一回入れなおしてみようかな。
819 :nobodyさん :2009/01/31(土) 19:58:55 ID:???.net 無敵の再インストールという道もある
820 :nobodyさん :2009/01/31(土) 20:00:18 ID:8MtMaIxA.net ここって、普通ひっかからないとこだよね
821 :nobodyさん :2009/01/31(土) 21:48:22 ID:???.net 普通の定義が広すぎて返答が難しい。 人それぞれだからね、「普通」なんて。
822 :nobodyさん :2009/02/01(日) 04:37:11 ID:???.net perl-status は使えないのかい? EnvironmentでPathチェックは出来ると思うが
823 :808 :2009/02/01(日) 15:15:23 ID:XdqdLFq+.net >>808 です。 問題解決しました。 perl 5.8.8をつかってたんだけど、perl 5.8.9にしたら直りました。 mod_perlの.pmファイルにperl -cでチェックかけてたら、なんか「perl58.dll になんとかていうエントリポイントなんてないよ」 っていうエラーがでたんで、調べたら perl 5.8.9から新しく追加されたエントリポイントなんだって。
824 :nobodyさん :2009/02/01(日) 15:25:42 ID:???.net >>823 解決おめ。
825 :_ :2009/04/01(水) 14:59:15 ID:???.net http://modperlite.org/ どうよ
826 :nobodyさん :2009/07/16(木) 22:14:00 ID:Gas3E2EY.net mod_perlのオライリー本「Apache拡張ガイド」の上325P、 requiresメソッドは「カレントディレクトリとその親ディレクトリに存在するすべてのrequireディレクティブ…」を取り出すって書いてあるけど、間違いじゃないか? 継承はするけど追加じゃなくて上書きするから、すべてじゃないよね。
827 :nobodyさん :2009/07/25(土) 21:10:58 ID:0I94bAC0.net FastCGIについて質問です 環境:debian+lighttpd+fcgi(C) FCGI_printfで Cntent-Length: xxxxとかConnection: closeとか 付けてるつもりなんですけど、 実際にクライアントと通信させると送られてきません。 (勝手にチャンク転送になったりします) あとFCGIでプロキシみたいなものを作ろうとしていて while(1){ r_ret = recv(socket, buf, sizeof(buf), 0); FCGI_fwrite(buf, r_ret, 1, FCGI_stdout); } みたいなコードを書いてますがFCGI_fwriteで書き込んだ データ全てが送られないのですが、 (recv終了時点ではnバイトのデータを持ってても、 クライアントにnバイト送られなかったり) コードで指定してるとおりに動作させたいんですが lighttpd.conf等の設定が悪いんでしょうか?
828 :nobodyさん :2009/07/25(土) 21:19:56 ID:???.net lighttpdかーそっちはわからんけど 例えばApacheの場合は、Content-LengthとかConnectionとか そういうのを取り扱うのはHTTPサーバーの役割だって考えだから、 CGIがそういうヘッダを付けてもApacheの都合で勝手にkeepaliveになったりチャンク転送になったりする Apacheだろうとlightyだろうと、そういう思想が正しいと思う。 CGIはコンテントの中身だけ出してればいい。 そんなHTTPの範囲まで口を出すな、と。
829 :nobodyさん :2009/07/25(土) 23:13:36 ID:???.net 自分も前にApache+perlでCGI作った時とか そのときも勝手にチャンクになったりしてたのは確認してました。 CGI系共通の動作なんですかね。 (Content-Length教えたのに削除するってのは微妙ですけど) 2番目の方はBODY部が変わるって致命的な動作なんで なんかいい解決方法があればいいのですが
830 :nobodyさん :2009/07/25(土) 23:17:20 ID:???.net HTTP1.1的にはチャンク転送はきちんとした転送方法で、 それは「BODYが変わった」とは言わないと思う。 チャンク転送がいやならHTTP1.0でリクエストすればいいのでは?
831 :nobodyさん :2009/07/26(日) 00:40:26 ID:???.net すいません、2番目っていうのは >あとFCGIでプロキシみたいなものを作ろうとしていて >while(1){ >r_ret = recv(socket, buf, sizeof(buf), 0); >FCGI_fwrite(buf, r_ret, 1, FCGI_stdout); >} ってほうの話です チャンクとか抜きにしても明らかに不完全なデータしか 送られないって動作になるんです 追加情報ですが 1回あたりのFCGI_fwriteで書き込むサイズは256kBくらいです
832 :nobodyさん :2009/07/26(日) 08:57:56 ID:???.net 自己解決しました FastCGI応答処理にて Content-LengthなどCGIで削除される情報を消してContent-Typeだけにしたら BODYの情報が書き換わるということはなくなりました
833 :nobodyさん :2009/10/12(月) 09:35:39 ID:Ndxd3B+x.net apache1.3.41 + mod_speedycgiで動かしてるんですが、 通常のCGI(perlです)でSTDERRに向かって出力するとapacheがエラーログの方に それを出力してくれるんですが、mod_speedycgi環境下で動かすと全く出てきません。 CGIの方を「#/usr/bin/speedy」とするとちゃんと出る(ある意味当たり前)ので、 mod_speedycgiのstderrの扱いがおかしいのかと思ってソースみたけどわけわかめ。 どなたか解決方法ご存じでしたら教えてください。だいぶググったけど見つからない・・
834 :nobodyさん :2009/10/17(土) 04:35:47 ID:???.net plackつかえよおまえら
835 :nobodyさん :2009/10/22(木) 16:22:16 ID:???.net 833です。 とりあえずmod_speedycgi2.cあたりから見よう見まねでパッチ書いたら うまくSTDERR -> エラーログに出るようになりました。 (長期間動かしたときどうなるかなどは未検証ですけど)
836 :nobodyさん :2009/12/13(日) 20:12:02 ID:???.net 一番新しいSpeedyCGI(mod_speedycgi/Apache2.2.3)のやつインストールして SpeedyCGIで普通のやつ(hello worldとか)は動くのだけど http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod のサンプルコードが500errorで動かないのだけどヤバイかな…? 誰かご教示ください
837 :nobodyさん :2009/12/13(日) 23:00:07 ID:???.net コマンドラインで動すとか、error_logを見るとかすれば原因わかるだろうに。 sub内のdo something hereのとこは適宜にシャットダウン時やクリーンアップ時に行う 処理を書いておくところだよ。詳しくはメソッドの解説を参照。 #!/usr/bin/speedy -- -r1 -t1 $sp->add_shutdown_handler(sub { `touch shutdown` }); $sp->register_cleanup(sub { print "b" }); とかにすれば一応動きがわかるんじゃないかな ./speedy.pl ls の繰り返しで。
838 :nobodyさん :2009/12/13(日) 23:00:48 ID:???.net これじゃだめか #!/usr/bin/speedy -- -r3 -t100 かね
839 :nobodyさん :2009/12/13(日) 23:30:38 ID:???.net >>837 [root@localhost hogehoge]# ./speedy.pl Can't call method "add_shutdown_handler" on an undefined value at ./speedy.pl line 2. そもそもadd_shutdown_handlerが無い的な感じなのかしら。 >>838 同じように試してみたけども、だめでした。
840 :nobodyさん :2009/12/13(日) 23:48:54 ID:???.net >>839 はuseし忘れてただけでした。 すみません。 [root@localhost hogehoge]# ./speedy.pl syntax error at ./speedy.pl line 8, near "do something here " syntax error at ./speedy.pl line 10, near "do something here " Execution of ./speedy.pl aborted due to compilation errors. speedy_backend[24310]: perl_parse error speedy[24308]: Cannot spawn backend process http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod の # shutdownハンドラの登録 $sp->add_shutdown_handler(sub { do something here }); # クリーンアップ・ハンドラの登録 $sp->register_cleanup(sub { do something here }); ここが原因みたいです。
841 :nobodyさん :2009/12/13(日) 23:57:28 ID:???.net ごめんなさい、載せ忘れ。 ほんと連レスすみません。 >>837 の実行結果 [root@localhost hogehoge]# ./sp.pl b
842 :nobodyさん :2009/12/14(月) 11:36:32 ID:???.net print "b" のとこは "cleanup" にでもしといたほうがよかったか スクリプトが終わる際に登録した処理が行われるだけだけど。 Speedyのバックエンドが終わる際には、cleanupも終わって標準入出力閉じた後に shutdownが行われる。そこはprintしても表示ができないのでわざと`touch shutdown` して ファイルを生成している。いつそのファイルが作られるかを見てほしい。 たぶんタイムアウト(t)が迫った場合や再利用回数(r)が迫った場合に作成されると思う。 -r6 くらいにするとたぶん5回目の実行の際に作られるかな。 多分これを使えばSpeedyで動いてた間に蓄積したデータとか吐かせたりとか 有用な使い方できるんだろうけど、絶対動くような信用性があるかはわからんので スクリプト内のグローバル変数で同じようなことを実現したほうが確実かも。 -r -t 自体結構信用ならないので、2chではshutdown_next_timeも活用してた気がする。
843 :nobodyさん :2009/12/15(火) 21:02:36 ID:???.net >>842 返信遅れてすみません。 rootで-r6 -t10でlsしながら実行したところタイムアウトが迫ったときに所有権がrootのshutdownファイルが スクリプトと同じディレクトリに生成されるみたいです。
844 :nobodyさん :2010/03/25(木) 04:47:09 ID:???.net mod_perlとSpeedyCGIとFastCGIの違いを教えて下さい。
845 :nobodyさん :2010/03/25(木) 08:47:59 ID:???.net どれもググれない人には使えないので一緒
846 :nobodyさん :2011/12/16(金) 19:35:41.49 ID:???.net mod_perlで、Java Servlet2.4以前のHttpServletRequest#getRequestURL() と同じような結果を取得する方法を探しているのですが、何かよいモジュールは ありませんか?
847 :nobodyさん :2012/02/28(火) 19:51:56.53 ID:???.net Windows2000 Apache 2.2.22 mod_perl/2.0.4 activeperl 5.12.4 mod_perl でエラー発生したとき、CGI::Carp qw(fatalsToBrowser) が有効にならないのですが、 ブラウザでエラーとかを把握する方法ってあるのでしょうか?
848 :nobodyさん :2012/04/14(土) 19:26:27.93 ID:d0KbMnsL.net どうして2chだけFastCGIが不人気なんですか?
849 :nobodyさん :2012/04/17(火) 19:01:39.19 ID:???.net 簡単にWindows環境で動くやつが ないよね?
850 :電脳プリオン 忍法帖【Lv=40,xxxPT】(1+0:8) 【15.1m】 :2014/01/21(火) 00:52:32.25 ID:???.net ?PLT(12081) このスレは激遅
851 :nobodyさん :2014/01/21(火) 18:35:02.53 ID:yT6VQ/mu.net CGI以外のインタフェースいちいち覚えるの面倒だから誰も使わないんだよ 中の人がmod_cgidso作ったことからもわかるでしょ?
852 :nobodyさん :2015/08/06(木) 20:11:30.67 ID:???.net mod_perlで2ch型掲示版
853 :nobodyさん :2017/12/30(土) 13:54:54.78 ID:YhlYw6jg.net 誰でも簡単にネットで稼げる方法など 参考までに、 ⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。 グーグル検索⇒『半藤のブブイウイウレレ』 2FT5DXTAC3
854 :nobodyさん :2024/02/18(日) 09:14:26.67 ID:p0sZuJhWZ 防衛大臣の木原稔やら大多数の議員が統━教会の集会に出席して褒め称えて會費まで払って祝電送って会長を官邸にまで招待してた 統一教会と−心同体の自民党が白々しく口先だけで関係を断つだのほざいて解散云々税金免除の対象から外す話しか出てこないあたり 分かりやすいよな、私腹を肥やしたいた゛けの世界最悪の殺人腐敗利権集団公明党も石川博崇,高木陽介、佐藤茂樹が統―教會と繋がってたし 政教分離など宗教全体の問題になることを必死に姑息に阻止して統一教會を擁護してるあたりも分かりやすいた゛ろ>創価学会員 都心まで数珠つなぎて゛クソ航空機に騒音に温室効果ガスにコロナにとまき散らさせて旅行支援もとい人殺し支援た゛のと税金で気侯変動させて 地球破壊して曰本どころか世界中で土砂崩れに洪水、暴風、熱中症、森林火災にと災害連発させて世界中の住民の生命と財産を 賄賂癒着組織に強奪させてる世界最悪のテロ組織自民公明に乗っ取られた腐敗テロ国家の暴走を止めるには民主主義の教祖 山上大先生みたいなのが大勢出てこないとどうしようもないな 〔rеf.〕 Ttps://www.Call4.jp/info.php?tуpe=items&id=I0000062 ttps://haneda-рroject.jimdofree.com/ , тΤps://flight-rouТe.com/ ttРs://n-souonhigaisosyoudan.amebaownd.com/
275 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★
本文 スレッドタイトル 投稿者