トップページ⇒php
1001コメント343KB

mod_perlを使おう!

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん01/11/07 17:42ID:+Gux2iOQ
CGIを激速で実行できるmod_perlについて語りませう。
関連リンク等は>2
0685nobodyさん2006/05/15(月) 02:19:30ID:???
>>684
そうなんですよね。
アパッチの太り方は尋常ではないです。
アクセラレータと考えれば、FastCGI、SpeedyCGIが圧倒的に上。
mod_perlの真価はPerlでApacheモジュール書けることなんですよね。
というか、最初からそのための物だし。
0686nobodyさん2006/05/16(火) 01:18:40ID:???
>>684
ここは WebProg 板だし,>>1 の趣旨からして mod_perl で CGI の話題メインでも良いのでは?
ただ,>>685 でも言われるとおり,mod_perl の神髄は Perl でハンドラ書いて Apache を Hack
できることに尽きる。ResponseHandler とか OutputFilterHandler が取っつきやすいと思う。
Apache の内部処理に対する理解も深まるので,やって損はないと思うけどな。
CGI に飽きたら,Apache Hacking をお勧めしたい。
0687nobodyさん2006/05/16(火) 02:33:50ID:???
CGI メインって、普通に書いて Registry に食わせりゃ動くのに、
話すことなんてないよ…。
0688nobodyさん2006/05/16(火) 19:05:42ID:???
>>687
>CGI メインって、普通に書いて Registry に食わせりゃ動くのに、
釣りはいかん。
mod_perlは最も制約が多い。
>話すことなんてないよ…。
同感。
FastCGI、SpeedyCGIに比べデメリットは目立つがアドバンテージが感じられん。
体感速度は変わらんし、ベンチ対決も特に勝ってるわけでもない。
0689nobodyさん2006/05/16(火) 22:24:14ID:???
>>688
「普通」に書けば動くよ、普通に書けば。
0690nobodyさん2006/05/16(火) 22:55:49ID:???
>>689
普通とは何か、普通であるための客観的な評価基準が必要では?
0691nobodyさん2006/05/16(火) 23:04:43ID:???
>>690
くだんね。
0692nobodyさん2006/05/16(火) 23:11:37ID:???
>>689
ずいぶん抽象的な言葉がお好きですね。

use strictはある意味使うべきとは思います。
しかし、グローバル変数を初期化するのはスクリプト本来の姿ではないですが。
カレントディレクトリも本来のPerlとは違うはずですが。

それでも「普通」というならApache::Registryが標準なんでしょう。
0693nobodyさん2006/05/16(火) 23:17:09ID:???
>>692
頭のほうよろしかったでしょうか?
06946922006/05/16(火) 23:20:14ID:???
>>693
また抽象的なんですが。
具体的にどこがおかしかったか指摘してください。
0695nobodyさん2006/05/16(火) 23:23:23ID:???
>>694
> また抽象的なんですが。

質問文なんですが、抽象的に見えますか?

> > 頭のほうよろしかったでしょうか?

頭のほうがよろしかったかどうか聞いています。
よろしかったか、よろしくなかったかで答えることが可能です。

> 具体的にどこがおかしかったか指摘してください。

「おかしかった」とは一言も言ってませんね。
0696nobodyさん2006/05/16(火) 23:27:23ID:???
>頭のほうよろしかったでしょうか?
この一言で終われば抽象的です。

その上今度は
>「おかしかった」とは一言も言ってませんね。
とくる。

意味がわかりません。
0697nobodyさん2006/05/16(火) 23:29:05ID:???
> この一言で終われば抽象的です。

聞いてあげるので、なにをもって抽象的としたいのかご説明どうぞ。

> 意味がわかりません。

頭のほうがよろしくないということでしょうか?
06986922006/05/16(火) 23:36:05ID:???
>>692
>ずいぶん抽象的な言葉がお好きですね。
>
>use strictはある意味使うべきとは思います。
>しかし、グローバル変数を初期化するのはスクリプト本来の姿ではないですが。
>カレントディレクトリも本来のPerlとは違うはずですが。

>それでも「普通」というならApache::Registryが標準なんでしょう。

これが私の発言。

それに対し
>>693
>頭のほうよろしかったでしょうか?

「聞いてあげるので、なにをもって抽象的としたいのかご説明どうぞ。」
指摘が全く具体的でないのでので抽象的としたいです。

06996922006/05/16(火) 23:38:57ID:???
こんなくだらない話はやめて、
>687
CGI メインって、普通に書いて Registry に食わせりゃ動くのに、
話すことなんてないよ…。

このずれた感覚を説明願いたい。
0700nobodyさん2006/05/16(火) 23:41:55ID:???
「指摘が全く具体的でない」場合は、「抽象的としたい」のですね?

三省堂 大辞林 第二版 によると、「抽象的」とは、

> (1)概念的で一般的なさま。
> (2)事物を観念によって一面的にとらえ、実際の有り様から遠ざかっているさま。

ということで、具体的でないからといって、抽象的としてしまうのは
いかがなものかと思います。
07016922006/05/16(火) 23:46:20ID:???
いい加減にしてもらえませんか。
私は辞書などいちいちひきませんが、具体的と抽象的は中学生が習う反対語とかいうやつです。

「指摘が全く具体的でない」場合は、「抽象的としたい」のですね?
その通りです。
0702nobodyさん2006/05/16(火) 23:49:18ID:???
> 私は辞書などいちいちひきませんが、具体的と抽象的は中学生が習う反対語とかいうやつです。

デマですね。
07036922006/05/16(火) 23:50:17ID:???
お好きにどうぞ。
もう止めます。
0704nobodyさん2006/05/16(火) 23:53:30ID:???
> use strictはある意味使うべきとは思います。

ある意味って何だろう。
07056872006/05/16(火) 23:58:06ID:???
>>699
なんか勝手に同一人物にされてる…のかな?

単に >>686 を受けて、「mod_perl で CGI の話題」で何を話すことがあるんだ、
Apache ハンドラの話をする方がいいじゃないか、と言いたかっただけなんだが。

設置に関するの話なら板違いだし、アクセラレータとしては FastCGI や
SpeedyCGI の方が優れてるのは誰が見ても明らかなので、議論すること自体が無駄。
パフォーマンス・チューニングの話とかなら大歓迎だが。

>>692
> use strictはある意味使うべきとは思います。
> しかし、グローバル変数を初期化するのはスクリプト本来の姿ではないですが。
> カレントディレクトリも本来のPerlとは違うはずですが。
お前は何を言っているんだ。
0706nobodyさん2006/05/16(火) 23:58:56ID:???
>>705
お前は何を言っているんだ。
0707nobodyさん2006/05/17(水) 13:29:41ID:???
イマイチ運用実績に乏しいよな。
これくらいのサーバ(サーバ群)でこれくらいのアクセス数をさばける、みたいな。
0708nobodyさん2006/05/17(水) 14:44:34ID:???
つ mixi
0709nobodyさん2006/05/17(水) 14:53:47ID:???
はてな・・・はトラブル多くて参考にならんね
0710nobodyさん2006/05/17(水) 16:05:11ID:???
>>709
> はてな・・・はトラブル多くて参考にならんね

トラブルが多いか否かって、どうやって評価するの?
藻前の主観ならイラネ。
0711nobodyさん2006/05/17(水) 20:54:37ID:???
つ livedoor
0712nobodyさん2006/05/17(水) 21:26:09ID:???
>>709
>>710
同じ会社の人がいがみあっちゃだめです。
0713nobodyさんNGNG
つ amazon
0714nobodyさん2006/05/18(木) 02:01:56ID:???
mixiとかはアクセスが多すぎるから、それはそれで参考にならない。
画像サーバは必ず分けたほうがいいのかとか、同時アクセス数がどれくらいになると別のウェブサーバ用意すべきなのか、とか。
0715nobodyさん2006/05/19(金) 00:00:41ID:???
どっかでブレードサーバでmod_perl, mod_python, Java, DBの記事を
見かけた気がするが思い出せん……
0716nobodyさん2006/05/20(土) 02:45:27ID:6sFQXXC/
先生質問です
フロントエンドapacheでproxyとrewrite
バックエンドでmod_perlでcatalyst動かしているんですが
フォームからpostすると404エラーとなってしまう。
catalystのテストサーバーで動かすとpostしても動くし rewriteのログもおなじ
ちなみに mod_perlのエラーろぐには
File does not exist: /home/sss/search_query

原因どの辺にあるかわかりますかね
すれ違いかもしれんけど・・
0717nobodyさん2006/05/20(土) 04:58:54ID:???
とりあえずそのアプリのレポジトリでも晒せばいいんじゃね?
0718nobodyさん2006/05/20(土) 05:14:38ID:???
mod_perlはその辺困るんだよな。
根気よくprint文入れるぐらいしかないんじゃまいか。
0719nobodyさん2006/05/20(土) 14:22:00ID:???
rewriteでおかしなことしてんだよ
07207182006/05/20(土) 15:33:18ID:???
>>719
>716
>catalystのテストサーバーで動かすとpostしても動くし rewriteのログもおなじ
この通りならmod_perl環境特有の問題と思われるが。
0721nobodyさん2006/05/20(土) 16:29:48ID:???
バックエンドを直接叩いたときは?
07227162006/05/20(土) 19:32:45ID:6sFQXXC/
レスどうもです バックエンド127.0.0.1直接でもだめでした。
Catalystならok
やっぱmod_perl2かなー
07237182006/05/20(土) 21:41:48ID:???
>>722
だと思いますよ。
私も小さなバグかかえているんですが、mod_perlデバッグがきついですよね。
07247182006/05/20(土) 21:44:34ID:???
>707-713
みると大手で採用されてるみたいだけど、開発どうやってるのかな?
0725nobodyさん2006/05/20(土) 21:52:57ID:???
C,C++でmodule作るのとさほどかわんないよ。
07267182006/05/20(土) 21:55:33ID:???
連投すまそ。
>>722
俺の悪い頭では、print文入れてOKな環境下とNGな環境下の違い地道に割り出すぐらいしか浮かびません。
デバッグの手間をへらすって大事なことかなと。

この辺、他の人はどうやってるのかな?
ステップ実行とかやってる人はいないのかな?
07277182006/05/20(土) 21:57:38ID:???
>>725
そんな世界で開発してるの?
それならC,C++で書いたほうがよくない?
07287162006/05/21(日) 00:26:28ID:???
なんか解決しました
mod_perlのhttpd.confで
PerlModule、PerlLoadModule、PerlTransHandlerを指定していたんだけどはずして、
<location>でSetHandler MyApp、PerlResponseHandler MyAppを指定してOK
このへんmod_perlの知識ない私がわるかったもよう・・
報告まで おかげさんでした
0729nobodyさん2006/05/21(日) 00:56:23ID:???
>>726
うーん、Log::Log4perl でも使ってまめにログを取るとか。
0730nobodyさん2006/05/21(日) 01:25:34ID:???
>>729
JAVAの初期の頃もそんな感じでしたよね。
向こうは大ブームになったので、開発環境が一気に進んだ。

言語の仕様云々ではなくて、開発環境が欲しい。
特にステップ実行。
0731nobodyさん2006/05/21(日) 02:24:20ID:???
> 言語の仕様云々ではなくて、開発環境が欲しい。
> 特にステップ実行。

なんで?
0732nobodyさん2006/05/21(日) 03:14:53ID:???
>>730
素朴な疑問なんだけど、Servlet 開発でもステップ実行なんて出来るの?
0733nobodyさん2006/05/21(日) 04:22:20ID:???
>>731
print文入れるより圧倒的に能率上がる。
任意の時点でプログラムをポーズさせて、知りたい変数の値を調べ、正常なら1ステップ進めてまた変数の検査。

>>732
JAVAのIDEはどれもできる。
(NetBeans、JBuilder、Eclipse)
Servletのステップ実行だけでなく、JSPもステップ実行可。(Eclipseはやや貧弱)
要はJAVAで開発すると任意の時点で止め調べて再開、また止めて調べる。
こういう環境がタダで入手できる。
(JBuilder以外)

オブジェクト指向がどうのいうよりもこちらが大きい。
07347332006/05/21(日) 04:33:30ID:???
mod_perlにこの開発環境があれば、メモリ食うとかあまり文句言われなくなる。
07357332006/05/21(日) 04:57:03ID:???
>729
>>>726
>うーん、Log::Log4perl でも使ってまめにログを取るとか。

JAVAも最初はlog4jが主流だった。
メモリ食う上に遅かった。
今はサーバー用途ではC++との速度差は小さい(サーバー用途ではコンパイル言語としてふるまう)。

しかもオブジェクト指向はあえて殺して使っている場合も多い。
(同名メソッドなどはバグの原因がわかりづらくなる。)

メジャーになると、欠点なんか誰も言わなくなる。
0736nobodyさん2006/05/21(日) 05:39:24ID:???
http://java.sys-con.com/read/45250.htm?CFID=284001&CFTOKEN=8D1F3492-114D-12D2-748B749EEAB77345
0737nobodyさん2006/05/21(日) 06:02:41ID:???
>>733-735
言っていい?
そんなに Java がいいなら Java 使えば?
0738nobodyさん2006/05/21(日) 06:30:43ID:???
>>737
JAVA使いたいんだが、JAVAはエンタープライズに向かったので個人向けソフトがほとんど無い。
だから、mod_perlで開発環境が欲しい。

本音を言えば、言語なんかどれも変わらん。
欲しいのは開発環境。
0739nobodyさん2006/05/21(日) 07:11:29ID:???
...と既存の資産。
要はできる限り楽がしたい。
0740nobodyさん2006/05/21(日) 08:21:55ID:???
>>738
じゃあこんなところでクダ巻いてないで自分で開発環境作って勝手にやれよ。
mod_perl のスレで JAVA、JAVA、JAVA、JAVA 不快なだけだ。
Eclipse でも使っとけボケ。
0741nobodyさん2006/05/21(日) 08:50:21ID:???
>>738
実はEclipseのEPICも使っているが。
mod_perl環境 ×

別にJAVAが好きではない。
デバッグ環境の話がしたかっただけ。
言語は関係ない。
0742nobodyさん2006/05/21(日) 08:58:15ID:???
↑>>738×⇒740○
まあ、感情的になるな。

デバッグ環境を整えるのは大切なことだ。
mod_perlのためになる。
0743nobodyさん2006/05/21(日) 09:12:56ID:fMNVkr/p
JAVA使えばいいじゃんって言ってる人は本質が全然見えてないヤツ
あるいは日本語が不自由か
0744nobodyさん2006/05/21(日) 09:36:25ID:???
てゆーか、JavaをJAVAと書いてる人って
本当にまともにJava使ったことあるのかなってゆーか
厨っぽいってゆーか
0745nobodyさん2006/05/21(日) 11:53:20ID:???
使ったことないけど、ActiveStateのKomodoってどうなんだろうね
0746nobodyさん2006/05/21(日) 12:36:56ID:???
http://eclipsewiki.net/eclipse/?%A5%EA%A5%E2%A1%BC%A5%C8%A5%C7%A5%D0%A5%C3%A5%B0
これ使ったことあるが、プロセス間通信を使ったやり方でmod_perlも可能性あると思うんだ。
FastCGIはもろ移植できそう。
0747nobodyさん2006/05/21(日) 12:38:14ID:???
>>743
> JAVA使えばいいじゃんって言ってる人は本質が全然見えてないヤツ

その本質って何だろう?
0748nobodyさん2006/05/21(日) 12:48:00ID:???
>>747
mod_perlに足りないものは、デバッグ環境。
でいいんでないの。
0749nobodyさん2006/05/21(日) 12:58:20ID:???
デバッグ環境ってそんなに便利なんかね。
0750nobodyさん2006/05/21(日) 13:03:32ID:???
デバッグ環境なんか興味ないから別スレでやってくれよ。
0751nobodyさん2006/05/21(日) 13:05:52ID:???
Apache2::DebugLog
Multidimensional debug logging in mod_perl 2.x

Apache::DebugLog::Config
Multidimensional debug logging in mod_perl

Apache::DebugLog
Multidimensional debug logging in mod_perl 1.x

Apache2::DebugFilter
Debug mod_perl and native Apache2 filters

http://perl.apache.org/docs/1.0/guide/debug.html
0752nobodyさん2006/05/21(日) 13:08:02ID:???
>>751
ぶっちゃけ、それで足りてる。
0753nobodyさん2006/05/21(日) 13:11:25ID:???
Perl/CGI開発環境の整備
http://www.harukaze.net/~mishima/perl/cgi-debug-env/dev-env.html
0754nobodyさん2006/05/21(日) 13:17:56ID:???
CGI等Perlスクリプトのデバッグ方法
http://www.harukaze.net/~mishima/perl/cgi-debug-env/deb-tech.html
0755nobodyさん2006/05/21(日) 13:33:29ID:???
>>752
開発環境の重要性への認識が全然ない。
「今、できてるんだからそれでいいじゃないか。」
これは、悪い習慣だよ。
0756nobodyさん2006/05/21(日) 14:13:33ID:???
ぶっちゃけ perlは開発環境無しでここまできてた
エディタ + perlでいいじゃまいか
いぜんperlfactory?だっけあれ使ってたけど
今はemacsで十分だな。 perlがよくわかって無かった時ほどそういうのにこだわってたり
0757nobodyさん2006/05/21(日) 14:17:37ID:???
ちょっとだけ話題に乗って。
Windows+mod_perl1系でApache::DBをテストしてるんだけど、
どうしても、Undefined subroutine &Apache::Registry::handler called.がエラーで出てくる。
理由の分かる方いらっしゃいます?
0758nobodyさん2006/05/21(日) 14:18:03ID:???
ついでにperlって鯖とローカル(win)とかとCPANモジュールが違ったり
動作が違ってたりする場合あるので開発環境がいみねーって事もあったりする
リモートホストでデバッグ出来たりするんかな?
結局ColinuxかVmware+エディタって事になるんじゃまいか
0759nobodyさん2006/05/21(日) 14:30:51ID:???
>>756
>今はemacsで十分だな。
そういう風土が悪い習慣。
VBも昔はemacs使いが結構いた。

が、VBのIDEが充実してからは皆去っていった。
0760nobodyさん2006/05/21(日) 14:42:45ID:???
>>757
単純に名前空間がみつからないという問題だと思うが。

>>758
JDBとリモートデバッグ
http://muimi.com/j/jboss/jdb/
以前これを参考にデバッグしたんだが、このjdbというのPerlのデバッガみたいなもの。
環境作るパワーがあれば、リモートデバッグはできると思う。
0761nobodyさん2006/05/21(日) 14:54:10ID:???
>>758
ActivePerlだがやってるやつがいたよ。

Wizshout
http://hpcgi1.nifty.com/wizman/wizshout.pl?m=num&p=9
[445] 修正がだるい -[449] 鶏と卵

0762nobodyさん2006/05/21(日) 14:59:08ID:???
>>758
Oracleでさえリモートデバッグできるんだから、mod_perlが無理ってこともないだろう。
0763nobodyさん2006/05/21(日) 15:22:02ID:???
>>755
うん、だからそう思うなら自分で開発環境を作ればいいじゃん。
誰も止めてないよ?
07647572006/05/21(日) 16:09:12ID:???
>>760
> PerlModule Apache::Registry
これがすっぽり抜けてました…。
どもでした。
0765nobodyさん2006/05/21(日) 17:22:44ID:???
オレはPerlでウェブアプリ作るのにデバッガなんていらないなあ。
0766nobodyさん2006/05/21(日) 17:26:02ID:???
print STDERR がデバッガだもんな。
0767nobodyさん2006/05/21(日) 18:31:37ID:???
もう一度言っておく。
「今、できてるんだからそれでいいじゃないか。」
これは、悪い習慣だ。

これでは、PerlはCOBOLやFORTRANと同じ運命をたどる。
もうこの辺でやめて、消える。
0768nobodyさん2006/05/21(日) 18:51:58ID:???
書き逃げするほどの事だろうか
0769nobodyさん2006/05/21(日) 20:49:27ID:???
自分で手を動かせって言ったら逃げる奴に何を言われてもな。
0770nobodyさん2006/05/21(日) 22:13:09ID:???
Perlにはろくなデバッガがないと思い込んでいました。
煽ろうと思って調べて愕然としました。
実行ファイルにデバッガが含まれているとは!

先に調べていたので赤恥かかなくてすみました。
赤恥書いた人可愛そうw
http://www.harukaze.net/~mishima/perl/cgi-debug-env/deb-tech.html

GUIデバッガもあるんですね。今度使ってみよう!Perl見直しました!
http://www.harukaze.net/~mishima/perl/cgi-debug-env/dev-env.html
0771nobodyさん2006/05/21(日) 22:16:37ID:???
>>770
>753
>754
0772nobodyさん2006/05/22(月) 06:28:35ID:???
>>770
いい加減スレ違い。mod_perl のスレであって、開発環境のスレじゃない。
0773nobodyさん2006/05/22(月) 10:47:30ID:???
パールはデバックが必要なほどの規模なら、他でまた新しく作ればいいジャンってノリだしな。
そこでジャバに乗り換えるのも選択肢の一つ。

別に個人でジャバでもいいんじゃない?
あるいはお手軽にPHPとかでもいいし。
ジャバの環境が好きなら、ジャバで作るのもありだと思う。
ここでぐだぐだ逝っても、パールの開発環境は変わらんよ。
そもそもパールはウェブ前提じゃないし、単なるスクリプト廚が泥臭くウェブに応用したってだけ。
0774nobodyさん2006/05/22(月) 13:19:22ID:???
> パールはデバックが必要なほどの規模なら、
> 他でまた新しく作ればいいジャンってノリだしな。

それは、藻前のオナニーレベルの話だよね?
そうでないということにしたいのなら、そのノリの存在を立証汁。
0775nobodyさん2006/05/22(月) 16:24:55ID:???
>>773
>パールはデバックが必要なほどの規模なら
デバッグは規模が小さいといらないのか?
お前は、凡ミスで延々と悩まされた経験はないのか?
0776nobodyさん2006/05/22(月) 19:29:42ID:???
もうよそでやれよ
0777nobodyさん2006/05/22(月) 20:07:20ID:???
>>776
これは、PerlのCGIを簡単にmod_perlに乗せるためにも必要なことなんだよ。
0778nobodyさん2006/05/22(月) 20:56:25ID:???
オマケで喜んでんなよ
0779nobodyさん2006/05/22(月) 22:05:27ID:???
オマケが嬉しいんじゃないか
0780nobodyさん2006/05/22(月) 23:10:20ID:???
>>777
必要ない。
07817772006/05/22(月) 23:32:38ID:???
>>780
なぜ?
移植など必要ない?
07827772006/05/22(月) 23:34:17ID:???
>>780
それとも移植にデバッガは必要ない?
07837772006/05/22(月) 23:35:55ID:???
移植の大変さわかってるか?
0784nobodyさん2006/05/22(月) 23:37:39ID:???
今の時代に移植なんてやる?w
■ このスレッドは過去ログ倉庫に格納されています