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/ ー二三ヘ( ゚∀゚)ノ
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あるし つかったことある?
785 名前:nobodyさん mailto:sage [2008/07/04(金) 20:32:39 ID:???] >>784 自分は783ではないけれど、Apache::Reload使ったことある。 なんつーか、これ入れると(httpd.confで有効に設定)、全てのアクセスが激しく重くなる。 それも、mod_perl絡みだけでなくて、phpからstaticなhtmlからして全て。 (自前Benchで、有効時と無効時で、2倍近く差がでる。) なので自分は、開発時はApache::Reload有効にする時もあるけど、 実運用では有効にはしないなぁ。