mod_perlを使おう!
レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん
01/11/07 17:42ID:+Gux2iOQ関連リンク等は>2
00021
01/11/07 17:42ID:???http://perl.apache.org/
日本語解説サイト
http://www1.plala.or.jp/knambo/apa/mod_perl.html
cgi_to_mod_perl(英語)
http://www.perldoc.com/perl5.6.1/lib/cgi_to_mod_perl.html
mod_perl_traps(英語)
http://www.perldoc.com/perl5.6.1/lib/mod_perl_traps.html
0003名無しさん@お腹いっぱい。
01/11/07 17:47ID:???00041
01/11/07 17:52ID:???use strict;はもちろんしてるし、変数の初期化もちゃんとしてて、それでも
動かないから、残っていたグローバル変数も必死(涙 で排除して、
それでも動かないのでよくよくmod_perl_trapsを読むと、「package宣言を
していないファイルをrequireするな」のようなことが書いてあってそれで
なんとか解決しました。html表示用のスクリプト(ヒアドキュメントで
書き出すだけの)をrequireしていたのですが、全部print_htmlという
サブルーチン名にしていて、それが原因でした。
00051
01/11/07 17:54ID:???環境変数($ENV{...})とかは大丈夫なのかな?
↑実はこれがスレ立てた動機だったりして(笑)
誰か教えて〜
0006名無しさん@お腹いっぱい。
01/11/07 17:57ID:???取り合えずFAQは....
正規表現の'o'はダメ
名前空間が変わる、Packageで修飾
exit(0);
$hoge = ''; でクリア
こんな感じ?
0007名無しさん@お腹いっぱい。
01/11/07 18:00ID:???0008名無しさん@お腹いっぱい。
01/11/08 00:54ID:uKgtvIlV%ENVはリクエスト毎にセットしなおされる。
だから、大丈夫だと思う。
といってもApache::Regstryなコードの話ね(あたりまえ)
00098
01/11/08 00:55ID:???Apache::Registryだ。
0010名無しさん@お腹いっぱい。
01/11/08 07:45ID:???FastCGIとかSpeedyとかも :-)
perlccはB::Cは殆ど速くならないね、ファイルは50KB位のが
800KBとかになった
B::CCに期待したいんだけどこっちは殆どharnessでこけるか
ポインタ周りでヲーニング出て無理やり実行したらコア、って感じ
面白いんだけどあの凶悪なヘッダは追う気にならなかった・・・
0011名無しさん@お腹いっぱい。
01/11/08 18:15ID:???0012名無しさん@お腹いっぱい。
01/11/08 18:15ID:???cgi_to_mod_perl - CGIの代わりにmod_perlを使うための最初のステップ
[説明]
READMEや他のmod_perlドキュメントに書かれているように、CGIの代わりとして
mod_perlを使うということは、mod_perlパッケージが提供する機能のうちのごく
一部分に過ぎません。ですが、それがmod_perlの一番メジャーな使い方ですので、
すぐ使えるやり方をこの文書で説明します。
[インストール]
INSTALLを読んでください。たいてい次のやり方で大丈夫です。
perl Makefile.PL && make && make install
[設定]
CGI代わりとしてmod_perlを使うときのお勧めの設定です。
Alias /perl/ /real/path/to/perl-scripts/
<Location /perl>
SetHandler perl-script
PerlHandler Apache::Registry
Options +ExecCGI
</Location>
'Location'の指すのはURIで、ディレクトリではありません。上の<Location /perl>
というのは、
<Location http://www.hoge.com/perl>
ということです。
0013名無しさん@お腹いっぱい。
01/11/08 18:23ID:???/real/path/to/perl-scripts/ 以下にあるファイル)はApache::Registryモジュールに
よって処理されることになります。(Apache::RegistryはCGI環境をエミュレートする
モジュールです。)
ファイルは存在していて、実行可能で、それに'Options ExecCGI'がオンになっていなければ
なりません。
もし、どこに置かれたファイルでもmod_perlが拡張子を見てスクリプトを実行してくれるように
したいなら、設定はこんな感じです:
<Files ~ "\.pl$">
SetHandler perl-script
PerlHandler Apache::Registry
Options ExecCGI
</Files>
0014名無しさん@お腹いっぱい。
01/11/08 18:35ID:???[CGIの移植]
[I/O]
Perl5.004を使っているならほとんどのCGIスクリプトは手を加えずにmod_perlで動くでしょう。
もし5.003をお使いなら、Perlのビルトイン関数 read() と print() はCGIと同じように動いて
くれません。CGI.pmを使っているなら、昔ながらの print() の代わりに $query->print を
使ってください。
[ヘッダ]
mod_perlはデフォルトではヘッダをまったく送りませんが、もし変えたければこうします。
PerlSendHeader On
これでレスポンス行や一般的なヘッダがmod_cgiと同じように送られるようになります。
ですが、mod_cgiと同じように、PerlSendHeaderも終わりの改行コードは送りませんので、
スクリプト自身が送らなければなりません。例えば:
print "Content-type: text/html\n\n";
0015名無しさん@お腹いっぱい。
01/11/08 18:40ID:???必要「ありません」。
[NPHスクリプト]
'nph'CGIスクリプトを実行したいなら、コードにこれを追加してください:
local $| = 1;
普段 PerlSendHeader を On にしているなら、httpd.confにこれを追加してください:
<Files */nph-*>
PerlSendHeader Off
</Files>
0016名無しさん@お腹いっぱい。
01/11/08 18:50ID:???CGIはだらしないプログラミングを許してくれますが、mod_perlは違います。
なぜでしょうか? CGIスクリプトの一生はは一回のHTTPリクエストで終わりますし、
それぞれ独立したプロセスです。リクエストが終わればプロセスはなくなり、
グローバル変数や開けっ放しのファイルなど、なにもかもきれいに片付けて
もらえます。しかしmod_perlで走るスクリプトはもっと長い生涯を送ります。
何回ものリクエストの間に、一つのプロセスでいくつものスクリプトが処理されます。
つまり、自分で後片付けをする必要があるのです。耳にされていると思いますが:
必ず'use strict'と'-w'オプションを使うこと!
0017名無しさん@お腹いっぱい。
01/11/08 18:57ID:???必要ではありませんが、「強く」推奨されています。それに長い目で見ると
時間の節約にもなります。
スクリプトをきれいに書いておいて損はないですよ!
[落とし穴]
mod_perl_traps参照
0018名無しさん@お腹いっぱい。
01/11/08 18:59ID:???mod_perl_trapsは後ほど。
他にやってくれる人がいたらお任せします〜
0019名無しさん@お腹いっぱい。
01/11/09 02:11ID:S+GQdZO0mod_perlとあります。これはもうmod_perlが入っているってことなんでしょうか?
0020名無しさん@お腹いっぱい。
01/11/09 02:30ID:???$ENV{SERVER_SOFTWARE} に'mod_perl'が追加され,
$ENV{GATEWAY_INTERFACE} が 'CGI-Perl/1.1' になって
$ENV{mod_perl}が設定されるらしい。
iswebはSERVER_SOFTWAREしか変わってない。
0021名無しさん@お腹いっぱい。
01/11/09 08:55ID:nd1WMoVXSERVER_SOFTWARE = Apache/1.3.20 (Unix) mod_perl/1.26
GATEWAY_INTERFACE = CGI-Perl/1.1
PERL_SEND_HEADER = On
MOD_PERL = mod_perl/1.26
0022名無しさん@お腹いっぱい。
01/11/09 19:12ID:???バイトコードじゃ殆ど意味ないねえ...
俺もCCは殆ど使ってないよ
関係無いけど、某無料サーバ(perl他一切無し)にバイナリ上げてhtaccessで
ExecCGIオーバーライドしたらバイトコードが動いた (w
0023名無しさん@お腹いっぱい。
01/11/09 20:44ID:???ありがとー、trapは一応有るけど機械翻訳丸出しみたい
http://www.google.com/search?q=cache:yAlKb0cn18k:www2.tech-unet.ocn.ne.jp/__dic__/perl/mod_perl_cgi.html+mod_perl_traps&hl=ja&lr=lang_ja
5003以前でprintが駄目ってのが気になるなぁ・・・
バッファが残っちゃうのかな? 5003使ってないから良いけど
0024名無しさん@お腹いっぱい。
01/11/09 23:29ID:???おいらは、speedyCGIのほうが好き。
実際mod_perlはリソース食いすぎ
0025名無しさん@お腹いっぱい。
01/11/10 18:55ID:QgGGhVTZPerlCGIで使っていたスクリプトを、そのままmod_perlで動かした場合はどれくらい速くなるものなのですか?
どんな種類のスクリプトに効果的なのかも分かりません。
宜しければ教えていただけないでしょうか?
0026名無しさん@お腹いっぱい。
01/11/10 20:44ID:???解らんけど所詮バイトコード並、PerlはPerlだから、4.5倍なんじゃ無いの?
>>どんな種類のスクリプト
呼ばれれば呼ばれる程効果が有る、勝手に永久常駐して自分でリクエスト捌くようなのだと
全く意味無し。
つーかroot持って無いと使えないんだけど、その辺はOK?
002725
01/11/10 21:21ID:???回答ありがとうございました。
例えばWebチャットの場合は効果がありそうですね。
mod_perlが組み込まれている無料サーバ(珍しいけど)がありますので(^^;;;
0028名無しさん@お腹いっぱい。
01/11/10 21:30ID:???チャット置いてレン鯖板で晒されないようにな w
002925
01/11/10 23:07ID:???いえ、設置を考えてるのは掲示板なので、普通に使っても問題ないと思います。
でも共有サーバですし、少しでも負荷を削減できないかと、mod_perlの利用を考えました。
お気遣いありがとうございます(^^;
0030名無しさん@お腹いっぱい。
01/11/11 22:41ID:???むつかしい・・・
0031名無しさん@お腹いっぱい。
01/12/03 01:28ID:VLJw8Nzl0032名無しさん@お腹いっぱい。
01/12/07 02:36ID:???先生、mod_perlって別に難しくないんですね!age
0033名無しさん@お腹いっぱい。
01/12/08 02:05ID:???名前空間グチャグチャで動く訳ネーダロ -_-...
0034名無しさん@お腹いっぱい。
01/12/10 00:26ID:ko+ATGtxもうPerlが滅びるのも時間の問題なのだから。
0035名無しさん@お腹いっぱい。
01/12/10 01:19ID:???Apache::PerlRunなら動くでしょーよ。へたれだけど。
0036名無しさん@お腹いっぱい。
01/12/10 14:22ID:u4VetMyUPHPの勢いの方が心配だよ〜。
0037仕様書無しさん
01/12/10 19:34ID:???ああそっか、使った事無いから>Apache::PerlRun
これだと殆ど意味ないよね? >毎回コンパイル
実験する価値はあるかにゃ・・・
0038名無しさん@お腹いっぱい。
01/12/11 06:57ID:???CGIをそのまま使える場合も多いから、性能と開発コストを天秤にかければ、
十分ペイする場合も多いような。
0039名無しさん@お腹いっぱい。
01/12/11 14:24ID:QvfYRs1Fソース落としてきたんですけど、makefile.pl実行してもmod_perl.makはみつからないし
makefileはnmakeで通らないしと、なんかおかしいです なんかファイル足らんのかなぁ?
つーかWin32バイナリってどっかにないですかね?
0040抹茶 ◆RojWUtWg
01/12/11 14:58ID:???mod_perlという代物はそれほど難しいというわけでもなさそうだ。
0041名無しさん@お腹いっぱい。
01/12/11 15:17ID:ebIAeWdWPPMでインストールできたと思うよ。
http://apache.perl.org/distributions.html
0042名無しさん@お腹いっぱい。
01/12/11 20:43ID:ebIAeWdW既存のスクリプトをPerlRunやApacheRegistryで動かす分には
殆ど変更は必要ない。
だけど、やっぱApache::*なモジュールをつくるのが
面白いYo!
0043名無しさん@お腹いっぱい。
01/12/11 21:46ID:ORPF/X5fhttp://www.gihyo.co.jp/wdpress/correctVol1_Perl.html
0044のーとりあすびっぐ
01/12/13 20:30ID:BEbOFXi+suexec っていうぐらいだから 毎回 exec しなきゃいけないんだろうけど。
うーむ。
0045名無しさん@お腹いっぱい。
01/12/13 23:09ID:???別portで別uidのapacheを動かしておいて、
ProxyPass /path/to/vdir/ http://localhost:port/hogehoge/
ProxyPassReverse /path/to/vdir/ http://localhost:port/hogehoge/
みたいな感じでメインのapacheの一部に見えるようにするってのはどうよ。
0046名無しさん@お腹いっぱい。
01/12/16 22:54ID:???use CGI;
$q = new CGI;
print $q->header;
print "Hello, world\n";
をCGI、Apache::Registry、Apache::PerlRunで動かしてab -c10 -n1000してみた。
環境はPentium II 400MHz、メモリ512MB、FreeBSD 4.4-STABLE。
CGI
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 7 67.3 0 1181
Processing: 171 1735 429.2 1738 3010
Waiting: 166 1729 430.0 1733 3005
Total: 171 1742 430.7 1745 3130
Apache::Registry
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 18 11.0 18 133
Processing: 24 25 11.9 25 144
Waiting: 5 21 11.5 20 139
Total: 33 44 10.6 43 148
Apache::PerlRun
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 1 16 12.8 15 197
Processing: 28 35 45.2 30 1006
Waiting: 4 30 44.4 26 986
Total: 28 51 46.0 46 1033
たしかにApache::Registryの方が速いけど、CGIに比べればApache::PerlRunも
かなり速い。BEGINブロックへの追い出しをきっちりやっていけばApache::Registry
とApache::PerlRunとの差は開くだろうけどね。
0047名無しさん@お腹いっぱい。
01/12/16 23:01ID:???main() { printf("Content-Type: text/html\n\n"); printf("Hello, world\n") }
をコンパイルしたCGIだと
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 4 13.2 0 90
Processing: 10 105 345.4 11 2729
Waiting: 0 100 345.2 10 2725
Total: 10 110 346.3 11 2729
PHP 4.0.6で <?php echo("Hello, world\n"); ?> だと
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 15 6.2 15 36
Processing: 12 20 10.6 19 290
Waiting: 5 17 10.5 16 286
Total: 30 35 8.5 34 293
もちろん、これは初期化にかかる時間を計測しているようなものなので、
実際のスクリプトでは違った結果が出ると思う。
(それにしてもCGIでperlを動かすのは遅すぎ)
0048名無しさん@お腹いっぱい。
01/12/16 23:19ID:???Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 21 29.2 10 229
Processing: 8 101 295.4 42 3759
Waiting: 0 92 293.3 33 3703
Total: 8 122 295.5 80 3790
0049名無しさん@お腹いっぱい。
01/12/17 00:18ID:fVST7IKBうぁ、ほんと速いね。
でもなあ。suexec 出来ないのがなぁ。
一般ユーザで気軽にディレクトリ掘ったりできないのがちょっと。
FastCGI とかどうなんだろ。
入れてみっか。
0051名無しさん@お腹いっぱい。
01/12/19 00:04ID:???mod_perlはApacheのモジュールなので、対応しません。
0052名無しさん@お腹いっぱい。
01/12/19 01:40ID:JMF99QDdmod_perl と普通の CGI の速度比が 100:1 だとすると、
SpeedyCG : 普通のCGI は 50:1 ってかんじかなぁ。
一行目の書換えで動くかとおもったけど、やっぱ多少のスクリプトの修正が必要だった。
行儀よくしろってか...
0053名無しさん@お腹いっぱい。
01/12/19 04:30ID:???別ユーザ+別ポートでもう一つApache動かして
本体側にAliasするってのが有った。
現実的かどうかは分からんけど、結構面白そうだよね。
0054名無しさん@お腹いっぱい。
01/12/19 04:32ID:???逝ってくる。。。
0055名無しさん@お腹いっぱい。
01/12/19 19:43ID:tRuF1VkQうーん。やりすぎって感じがしないでもない。
ちゅうか、それだったら、Apache 立ち上げないで
必要最低限の HTTP を解釈する独自デーモンでも書いたほうがいいような。
0056名無しさん@お腹いっぱい。
01/12/19 21:58ID:xcH3mu33そうかなあ。
mod_perl環境の場合、前段にHTTPアクセラレータを
置くのは割と一般的だと思うんだけど。
こいつで振り分ければ良い訳だから
案外現実的な解かも...と思った。
0057名無しさん@お腹いっぱい。
01/12/20 05:12ID:RDMFULhnHTTPアクセラレータがなんだかわかってないDEATH。
一般的な mod_perl 環境ってどんなのなんでしょう。
普通はあれですよね。サイト全体の為のスクリプトをmod_perlで動かしたりするんですよね。
0058名無しさん@お腹いっぱい。
01/12/20 12:24ID:tX1BaRx6画像とか静的なHTMLを出力するために、こんな大きなhttpdを
使うのは無駄なので、squidみたいなproxyを前段におくことが
あります。これがHTTPアクセラレータ。
同じマシンの中で両方するなら、
squid : port 80
mod_perl: port 8080
みたいな感じ。
0059名無しさん@お腹いっぱい。
01/12/20 12:27ID:sKSPgKeTsquid等、キャッシュサーバーをwebサーバーの入り口において、
サーバーの負荷を軽くする技術です。
mod_perl組み込むと、httpdの実行イメージが肥大するので、
画像や、html等はmod_perlのhttpdでサービスするのは無駄です。
そのため、
動的ページ→mod_perl
静的ページ→軽量apache、mathopdやboa,thttpd等
と振り分けると理論上はパフォーマンスが向上するはずです。
perl.apache.orgにも、この手法が公開されてます。
私も実際に試しましたが、squidのオーバーヘッドが結構でかいのと、
squidのキャッシュコントロールの設定が難しかったので、
やめました。
ただ、セキュリティの点で導入するのならメリットあると思います。
色々やった末、軽量apache+speedycgiが、もっとも
確実で、パフォーマンスがいいと思いました。
0060名無しさん@お腹いっぱい。
01/12/20 12:53ID:???ケコ-ン!
0061名無しさん@お腹いっぱい。
01/12/21 07:03ID:jk5ftRfj色々勉強になりました。
とりあえず、perl.apache.org を読んでみます。
ありがとうです。
0062名無しさん@お腹いっぱい。
01/12/21 11:04ID:vI34GlQ7http://pc.2ch.net/test/read.cgi/php/998166103/
0063名無しさん@お腹いっぱい。
01/12/21 16:25ID:kuKW9GTl0064名無しさん@お腹いっぱい。
01/12/21 22:19ID:IUk0HPIs0065名無しさん@お腹いっぱい。
01/12/21 22:41ID:vI34GlQ7プロセスIDはApacheのプロセス毎についてますが...?
#外してるよな...
>>64
好みの問題でしょう。ちなみにmod_perl環境ではperlでCGIを使う意味が
あまりありません。もしかして誤爆ですか?
006663
01/12/21 23:00ID:???今テンポラリファイル名に$PID使ってるので,mod_perlでもちゃんと動くかなぁと思って聞きました。
よく考えるとperlがhttpdになるだけなので だいじょうぶそうですね。
ありがとうございました。
0067名無しさん@お腹いっぱい。
01/12/22 02:08ID:???$PID使うよりも$UNIQUE_ID使った方が安全と思われ。
将来mod_perlが同一プロセス、複数スレッドで動くようにもなった場合はまるかもよ。
0068名無しさん@お腹いっぱい。
02/01/02 14:28ID:z//VSzFn$ENV{'PATH_INFO'}を参照したら前回のPATH_INFOが
残ったままになってるんですが回避の方法って無いんですかね?
0069名無しさん@お腹いっぱい。
02/01/02 20:06ID:???手元の環境で試してみたところ、$ENV{'PATH_INFO'} はちゃんとクリアされて
たよ。PID が変わってないことも確認した。
とは言え、実際そっちではそうなってるんだろうから、当面の回避策としては
REQUEST_URI と SCRIPT_NAME を使って本当に自分が PATH_INFO 付きで呼ばれ
たのかを確認するしかないかな。
0070名無しさん@お腹いっぱい。
02/01/05 21:34ID:LDyBbo+Hとりあえず、mod_perl-1.26は動いてるんですけど、気になることが。
perl Makefile.PL USE_APXS=1 WITH_APX=/path/to/bin/apxs EVERYTHING=1
でMakefileつくってmakeの後、make testしたとき、
Can't make test with APXS (yet)
って出るけど、これはこれで問題ナシなんでしょーか。
Makefileのソースみてもこれしか
出ないようになってるからいいんだろうが・・・。
INSTALL.apaciに明記してある手順、
=head2 Build mod_perl as DSO outside Apache source tree via APXS
ではmake testも入ってるけど
実質的には意味のないステップなの?
気になります。だれか教えて。長くてスマソ。
0071名無しさん@お腹いっぱい。
02/01/10 14:07ID:???0072名無しさん@お腹いっぱい。
02/01/12 03:23ID:9iEYLiJr0073名無しさん@お腹いっぱい。
02/01/25 00:51ID:???0074ほげ
02/01/25 00:56ID:jfCY728M0075名無しさん@お腹いっぱい。
02/02/01 01:56ID:???→KENTさんの技術力でカバー
http://kent.parks.jp/over3.html
YYボードも動きますか?
0076名無しさん@お腹いっぱい。
02/02/01 13:01ID:???>>32-35 辺り参照。
0077名無しさん@お腹いっぱい。
02/02/01 16:37ID:uE2BC2dRmod_perl vs PHP + Zend Optimizer
ではどっちが早いの?
すげー気になる。
0078名無しさん@お腹いっぱい。
02/02/01 22:22ID:???>「mod_perl」とは、WEBサーバーでCGIを高速に動かすためのツールです。
さすがKENT (爆)
0079名無しさん@お腹いっぱい。
02/02/03 21:19ID:nVjpXt8Ymod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer mod_perl vs PHP + Zend Optimizer
0080名無しさん@お腹いっぱい。
02/02/03 22:20ID:???マルチは感心しないな。
0081Redhater
02/02/04 02:40ID:r5AiMbOuいろいろやってみたのですができません・・・。
http://www.goodbreeze.com/
0082名無しさん@お腹いっぱい。
02/02/04 02:48ID:???できない。
0083名無しさん@お腹いっぱい。
02/02/09 23:28ID:???借りてるサーバーでmod_perlが使えるそうなので、軽くなるならと思い
色々調べはじめました。
ところがgoogleでmod_perlの事を検索したのですが、検索キーワードが
良くないのかmod_perlのインストールの方法とかばかりが引っかかり、
実際にコーディングをどうすればいいとか具体的な利用法とかの
載っているページが見つかりませんでした。
もしどなたか詳しく説明をされているサイトをご存知でしたら、
教えていただけないでしょうか?
よろしくお願いします。
0084名無しさん@お腹いっぱい。
02/02/09 23:44ID:7ll9Q9qB-w付けて,use strictして,
グローバル変数はなるべく使わないようにして,
もし使う時も初期化をきちんとやる,
とかかなぁ。
漏れも知りたいのであげ
0086名無しさん@お腹いっぱい。
02/02/10 07:55ID:???強いて言うなら、Packageの修飾をちゃんとする事とパイプ何かの
後片付けを忘れない事位かなぁ・・・・
漏れの書いたの見ると意識的に初期化する様なコードになってた
$scalar = ''; @ary = (); とか
あ、正規表現のoスイッチも駄目だったかも
0087名無しさん@お腹いっぱい。
02/02/10 11:55ID:TL971BdTたとえば、helloworldを表示するスクリプトを
mod_perlで動かすにはどうすんの?
008883
02/02/10 12:56ID:TkkSs6mB自分もそれを聞きたいです。
それの説明されているサイトの紹介でも良いのでどなたかお願いします。
その後に>11-19を参考にさせてもらおうと思います。
0089名無しさん@お腹いっぱい。
02/02/10 14:32ID:GSOYlDJsmod_perlでは、
my() scoped variable in nested subroutines
という特殊な問題があるので注意。
http://perl.apache.org/
http://perl.apache.org/guide/
http://perl.apache.org/dist/cgi_to_mod_perl.html
http://perl.apache.org/dist/mod_perl_traps.html
は必読。
日本語ドキュメントは期待しても駄目よ。
0090名無しさん@お腹いっぱい。
02/02/11 00:46ID:???そこの中なら、
CGI to mod_perl Porting. mod_perl Coding guidelines.
http://perl.apache.org/guide/porting.html
見れば良いんでないの。
0091名無しさん@お腹いっぱい。
02/02/11 21:03ID:???mod_perl Pocket Reference
http://www.oreilly.com/catalog/modperlpr/
0092名無しさん@お腹いっぱい。
02/02/23 22:36ID:???以下はSocketを使って2ちゃんのトップページを表示する
簡単なCGIスクリプトですが、mod_perl経由だと動いてくれません。
mod_perlが動くことは確認したのですが、Socketを使うとなると
どうしても正常に動いてくれません。何か良いお知恵を・・・。
-----
use Socket;
socket('SOCK',PF_INET,SOCK_STREAM,getprotobyname('tcp'));
connect('SOCK',sockaddr_in(80,inet_aton('2ch.net')));
select((select(SOCK),$|=1)[0]);
print SOCK "GET http://2ch.net/ HTTP/1.0\r\n\r\n";
print "Content-type: text/html\n\n";
print <SOCK>;
# Apache/1.3.23 (Win32) mod_perl/1.26_01-dev
0093名無しさん@お腹いっぱい。
02/02/23 22:48ID:???0094名無しさん@お腹いっぱい。
02/02/23 23:31ID:???なんかおかしくないか?
GET / HTTP/1.0
じゃないの?
009592
02/02/23 23:45ID:???タイムアウトとかあってよさげです。
今度、使ってみようかと思います。
>>94
そうですね。正しくは
print SOCK "GET / HTTP/1.0\r\n";
print SOCK "Host: 2ch.net\r\n\r\n";
ですね。お手数かけてすいません。
いずれにせよ動いてくれませんが・・・。
0096名無しさん@お腹いっぱい。
02/02/24 02:12ID:1IBSQesyuse strict;
perl -wで動かして、apacheのログ見てみてんさい
0097名無しさん@お腹いっぱい。
02/02/24 02:19ID:???0098”管理”者
02/02/24 04:08ID:???009992
02/02/24 08:13ID:???LWPを使ってみたら動きました。
SocketやIO::Socketだと動かず、LWPだと動くのは何故だかわかりませんが...
いろいろとありがとうございました。
-----
use LWP::Simple;
print "Content-type: text/html\n\n";
getprint 'http://2ch.net/';
0100ひろゆ子@暫定管&lre;直人
02/02/24 18:18ID:???せめてこのくらいやって下さいですです。。。
0101ひろゆ子@暫定管&lre;理人
02/02/24 18:19ID:???0102名無しさん@お腹いっぱい。
02/02/24 19:21ID:???0103名無しさん@お腹いっぱい。
02/02/28 20:41ID:9QfD2oaF0104nobodyさん
02/03/03 02:09ID:Z7la6eJBApache+mod_perlのCSS予防法
http://slashdot.jp/article.pl?sid=02/03/02/1150203
#クロスサイトスクリプティングの方。
個人的にはApache::*なモジュールよりも、
Apache::Regstryなコードを書くほうが多いから「ふーん」て感じ。
0105fight
02/03/03 10:10ID:sYgoE6A5http://www.geocities.co.jp/Bookend-Ango/2352/
0107なぁ。
02/03/06 17:06ID:R30flEyTでmake testがとおらないーー!
Can't locate object method "new" via package "URI::URL" at ../blib/lib/Apache/te
st.pm line 252.
だと。
なんか、調べるとLWP::UserAgent.pmにパッチを当てろとか書いてあるけど、
../blib/lib/Apache/test.pm
に当ててるわけでないから、意味ないきがするんだよね。
どうしたらよい?
テストが通らないくらい、無視してよいですか?
0108nobodyさん
02/03/06 18:29ID:xRtVgBJDモジュール類古くない?
とりあえずアップデートしてみたらどう?
perl -MCPAN -e '@mod = CPAN::Shell->r; CPAN::Shell->install(@mod)'
0109nobodyさん
02/03/06 23:53ID:???CでCGI組めばいいじゃん。
0110nobodyさん
02/03/07 00:09ID:???0111nobodyさん
02/03/07 15:20ID:???そだね。CGI屋には馴染めない部分があるかもしれないけど、
Perl屋には普通のことばっかだし。
0112nobodyさん
02/03/07 17:20ID:???0113nobodyさん
02/03/07 21:25ID:???>>112
上のリソースによると、大差ないか、少しmod_perlの方が速いということらしい。
0114nobodyさん
02/03/07 21:41ID:572QyWU+0115nobodyさん
02/03/07 23:01ID:???ASPとかJSPな人、どんなエディタ使ってんの?
0117nobodyさん
02/03/08 00:30ID:???0118115
02/03/08 01:18ID:???ASPというより、perl scriptのヒアドキュメントの中に埋め込みたいのだけど…
0119nobodyさん
02/03/28 11:19ID:???Alias /perl/ /usr/local/apache/perl
<Location /perl>
SetHandler perl-script
PerlHandler Apache::Registry
PerlSendHeader On
Options +ExecCGI
</Location>
0120nobodyさん
02/03/28 11:26ID:???関数を、それらに対応するApache::関数で置き換えることで、若干
パフォーマンスを高め、メモリを大幅に節約することが出来る。
IO::File --> Apache::File
CGI::escape --> Apache::Util::escape_uri
CGI::unescape --> Apache::Util::unescape_uri
CGI::escapeHTML --> Apache::Util::escape_html
POSIX::strftime --> Apache::Util::ht_time
0121nobodyさん
02/03/29 03:17ID:???<Directory "C:/www/http/home/mod_perl/">
SetHandler perl-script
# PerlHandler Apache::Registry
PerlInitHandler Apache::StatINC
AllowOverride All
Options +ExecCGI Indexes
Order allow,deny
Allow from all
</Directory>
こういう風にやって、上のコメントアウトを外すとディレクトリーが404になってしまいます。
どうすれば直りますか?
0122nobodyさん
02/03/29 03:17ID:???0123nobodyさん
02/04/05 18:16ID:???【CGI動かねぇぞゴルァ!!】
で、どんな症状なわけ?いくつか可能性あるYO!
・File not found
Apacheの設定ファイルに正しいエントリを作成したのか?mod_perl.podに書か
れているように、Alias /perl/ ... と <Location /perl>... ディレクティプ
をaccess.confへ追加する必要があるんだよ。そしてもちろんスクリプトはAlias
ディレクティプで指定されたディレクトリの中にあって、ウェブサーバを実行
するユーザーが、読み込みと実行が可能でないとイヤン。
・Forbidden
てめーはこのサーバの/perl/fooにアクセスする許可を持ってねーよ。(プ
chmod 755 /path/to/my/mod_perl/scripts
chmod 755 /path/to/my/mod_perl/scripts/foo
・Internal Server Error
このスクリプトは実行時エラーで逝ってしまった。サーバーのerror.logの中に
エラーメッセージがあるからさ、それ読めばなんでそうなったか分かるっての。
そうそう、CGI.pmを使っているなら、スクリプトをシェルプロンプトで走らせち
まえば、何が起こるのか分かるかもしれん。
error.logにスクリプトの構文エラーだぞゴルァ!!って書いてあんのに、
perl -c /path/to/my/mod_perl/scripts/foo
だと全然オッケーな時は、__END__ や __DATA__が使ってるのが悪いんちゃうんか
と。ゴメソ、mod_perlのApache::Registryはそいつら使えへんねん。
0124あわてもの
02/04/14 10:08ID:4YBd0gTmをインストールしてみましたがhttpd.confの設定が変わっているようで
LoadModule perl_module modules/mod_perl.so
は記述するのですが、Apache1.3.24の場合のような
AddModule mod_perl.c や #!D:/ActivePerl/561/bin/perl.exe
の記述は必要ないようです。
httpd.confに
ScriptAlias /mod-perl/ "D:/Apache2/mod-perl/"
<Directory "D:/Apache2/mod-perl">
SetHandler perl-script
PerlHandler Apache::Registry
AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
と書いてapache2をスタート。一応ApacheServiceMonitorでは正常に
動いてるようです。
ところがブラウザからCGIを動かしてみるとmod_perlのディレクトリ構成も変わっているようで PerlHandler Apache::Registry のままでは@INCにそんなものはないと怒られます。
調べてみるとRegistry.pmは D:/ActivePerl/561/site/lib/apache2/ModPerl にあるので PerlHandler ModPerl::Registry と変えてみましたが
Can't locate ModPerl/Registry.pm in @INC (@INC contains: D:/ActivePerl/561/lib D:/ActivePerl/561/site/lib .) at (eval 1) line 3. と言われてダメ。
さらに調べてみると D:/ActivePerl/561/site/lib/にApache2.pmというファイルがあって@INCに D:/ActivePerl/561/site/lib/apache2を追加する機能があるらしいと解ったので物は試しと
PerlHandler Apache2 ModPerl::Registry
と書き直してブラウザからCGIを動かしてみると
BEGIN failed--compilation aborted at D:/ActivePerl/561/site/lib/Apache2/ModPerl/RegistryCooker.pm line 48.
Compilation failed in require at D:/ActivePerl/561/site/lib/Apache2/ModPerl/Registry.pm line 11.
BEGIN failed--compilation aborted at D:/ActivePerl/561/site/lib/Apache2/ModPerl/Registry.pm line 11.
Compilation failed in require at (eval 2) line 3.
といわれてダメでした。
Apache2.0.35+ActivePerl5.6.1.631(mod_perl1.99_02-dev)でのhttpd.confの正しい設定を誰か知りませんか?
0125あわてもの
02/04/21 23:11ID:1/aZbmexそれともこのスレ、誰も見てないのだろうか?
誰か反応してくれませんか。
0126nobodyさん
02/04/21 23:34ID:???0127nobody
02/04/22 02:35ID:80pbFtvdApache::ASP マニュアル和訳開始
http://sourceforge.jp/projects/apache-asp-jp/
0128nobodyさん
02/04/22 03:24ID:???Apache2::ModPerl::Registry
じゃねーの?
0129あわてもの
02/04/22 07:43ID:wb65qKDP励まし、ありがとうございます。
>>127
情報、ありがとうございます。
早速見に行ってきます。
>>128
ご助言、ありがとうございます。
でもすでにやってみましたがダメだったのです。
0130nobodyさん
02/04/24 19:09ID:oPJvWoo30131lom
02/04/24 19:27ID:a5s+3PHM0132nobodyさん
02/04/29 00:10ID:44EJtQiu当方httpd.confの書き方わからず難渋している。
0133nobodyさん
02/04/29 00:21ID:???http://www.freeml.com/message/modperl@freeml.com/0000238
0134nobodyさん
02/04/29 01:20ID:???-----------
LoadModule perl_module modules/mod_perl.so
Alias /perl e:/Apache2/cgi-perl
PerlRequire e:\apache2\conf\startup.cgi
<Location /perl>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options ExecCGI
PerlSendHeader On
</Location>
startup.pl:
-----------
#! /perl/5.6.1/bin/MSWin32-x86-multi-thread/perl.exe -w
use strict;
use Apache2 ();
use Apache::compat;
and a test script:
#! c:/perl/5.6.1/bin/MSWin32-x86-multi-thread/perl.exe -w
use ModPerl::Registry;
use CGI;
$q = new CGI;
print $q->header,
$q->start_html(),
'Hello',
$q->end_html();
0135nobodyさん
02/05/26 20:20ID:???0136nobodyさん
02/05/27 00:56ID:???軽くなる軽くなるとは言うけど、結局一番短縮できる(というかスキップ
できる)のはコンパイルだけだぜ?
それよかApacheの色んなハンドラーを使えるとか、そういうことのメリット
のほうが大きいと思うけど。
0138nobodyさん
02/05/27 13:32ID:???Perlインタプリタをプロセスとして起動する必要が無くなる点を忘れてはいけない。
Apache::RegistryとApache::PerlRunを比べると極端に差が無いでしょ?
0139nobodyさん
02/05/27 18:43ID:???が各プロセスに対して一回しか呼ばれないのだよね。
0140nobodyさん
02/05/27 18:49ID:???うーん、例えばその成功・失敗をユーザーに報告しなくても
いいような処理の場合は$r->register_cleanup()を使うと
ユーザーにとって処理が早く終わったように思わせられるとか?
PerlTransHandlerを使うとコンテンツ又はハンドラーにアクセス
する前にURLを色々変換できて便利だとか?
あと個人的にはApache::DBIが使えてすごい嬉しい・・・
0142nobodyさん
02/05/29 09:44ID:UwM7m6Hb0143nobodyさん
02/05/29 10:13ID:???け使うのを指して「ちゃんと使ってない」呼ばわりするのはひどくない?
別にいいじゃん。
0144nobodyさん
02/05/29 10:16ID:???いや、そうじゃなくてなんかスレがあっというまに下のほうに
行ってしまったので「あらやっぱり少ないのねぇ」と思った
だけよ。
0145143
02/05/29 11:20ID:???あ、そういう事か。
既に便利に使ってる人は特に書き込むネタが無いんじゃないかな。
Webアプリ開発手法みたいに日々精進て感じじゃないし。
で、気軽に試せる環境がない(レンタルスペース等では使えない)ので初
心者からの質問ネタも出ないと。
0146nobodyさん
02/05/29 12:09ID:???使ってる人が少ないんじゃなくて、
2chユーザなmod_perlユーザが少ないに5円。
仕事でやってる人はこーいうところ見ないし書かない(書けない)からな。
0147nobodyさん
02/05/29 14:58ID:???確かに。でもこのスレでmod_perlプロの裏技とか披露してくれたら
すごい楽しいのに。mod_perl MLもたまにおもしろいネタがあるけど
たいていつまんないしなー。
0148nobodyさん
02/05/29 17:19ID:???mod_perl MLって英語のアレ?
体感で9割がダラ長い初心者質問メールで追っかけるの疲れてやめた。
2chの短いレスに慣れてるから尚更疲れた。
時々興味深いモジュールのアナウンスなんかはあったけど、メールチェッ
クにかける時間を考えたらコストパフォーマンス悪すぎた。俺には。
0150nobodyさん
02/05/31 14:24ID:???0151nobodyさん
02/07/23 14:10ID:CrJNwpCCApache::Registry用にコードを書くときはスコープに注意して
書いたりしないとならないようですが、Apache::PerlRunを使う
場合はどこらへんに注意して書けばいいのでしょうか。
基本的に、Apache::PerlRunなら大抵のスクリプトはそのまま動くと
思うのですが、そのままでは動かないスクリプトもあると聞いたので…
0152nobodyさん
02/07/23 17:39ID:???0153nobodyさん
02/07/24 00:48ID:???世に反乱してるCGI用のコードは異常なのばっかだけど。
0154nobodyさん
02/07/24 10:03ID:???回答ありがとうございます。ということは素人が書いたような
スクリプトが大量に動いてるサーバーに導入するのは控えた方が
よさそうですね。どうもありがとうございました。
0155nobodyさん
02/08/11 17:02ID:aSGcdTFF2ちゃんにmod_perl導入の予感
0156コギャルとHな出会い
02/08/11 17:17ID:JupEU5/3朝までから騒ぎ!!
小中高生
コギャル〜熟女まで
メル友
i/j/PC/対応
女性の子もたくさん来てね
全国デ−トスポット情報も有ります。
全国エステ&ネイル情報あります。
0157nobodyさん
02/08/11 19:46ID:???MaxClients をかなり低くしないと駄目?
0158nobodyさん
02/08/11 21:10ID:???メモリ消費量が全然違う
http://www.fastcgi.com/
0159nobodyさん
02/08/11 23:39ID:???FastCGI でのPerlCGIスクリプトを書くときの留意点とか、Apacheへの導入の
分かり易い説明サイト(日本語)ってありますか??
0160nobodyさん
02/08/12 00:26ID:???http://www.google.com/search?q=FastCGI+FAQ&sourceid=opera&num=100&ie=utf-8&oe=utf-8
0161nobodyさん
02/08/12 01:04ID:???>>157
元々かなりのメモリが必要。物理的に増設した方がいいんじゃないの
0162nobodyさん
02/08/12 11:32ID:???でいいよ。
0163nobodyさん
02/09/18 02:05ID:p3QnY3K00164nobodyさん
02/10/17 17:26ID:w3jHhAtg0165nobodyさん
02/10/17 17:29ID:???0166nobodyさん
02/10/17 19:55ID:vMdIvLO8mod_perlもfastcgiも普及率低すぎるのはどーゆーことよ!?
0167nobodyさん
02/10/18 01:43ID:???まあ、mod_perlはメモリ食いすぎってのはあるわな。phpもそれなりに食うけど
松下からの支援があるから大丈夫なんだろう。
0168nobodyさん
02/10/18 11:51ID:LQtlqqOKPerlとDBMSが悪いってことはないさ
PHPってDBとネイティブ接続じゃん
PHPがmod_perl、fastcgi、tom猫とかに確実に勝ってるところってそこだけじゃん
↑極端だけど
PHPって他に良いとこみあたんないし、簡単だけどアホだし遅いし
だから、mod_perlもfastcgiの方がぜーんぜん良いってことさ
0169nobodyさん
02/10/18 15:54ID:???0170nobodyさん
02/10/18 18:44ID:vtdegNTUコンフィグみたいなリードオンリーの変数は、
あえてグローバルにすることで速くなる。
上手く使えば、共有メモリーみたいにも使えるかも。
use var使えば、普通にグローバル変数使えるけど、パッケージまたぐような
使い方は無理だね。
普通そんな使い方しないけど。
0172nobodyさん
02/10/19 02:23ID:???PHPならデザイン担当とプログラム担当を分けて分担作業ができるが、Perlだと完全分離は難しい.
個人ユースならともかく、実用ベースではPHPの勝ちかな.
0174nobodyさん
02/10/19 04:53ID:???0175nobodyさん
02/10/20 05:17ID:???実際インターネットを見渡せばASPばっかり。
0177nobodyさん
02/10/23 16:10ID:???0178nobodyさん
02/10/23 22:09ID:MeYX5mSPWebサーバーでは、apacheがトップシェアですが、
apacheでASPが動くのですか?
0180nobodyさん
02/10/24 00:02ID:???0181nobodyさん
02/10/24 09:59ID:???perlもヒアドキュメント使わずにjspのような
書き方できればシェアも広がるのに。
0182nobodyさん
02/10/24 11:33ID:???モジュールならいくつもあるよ。そういう話じゃ
ない?
ところでみなさん、どんなテンプレートモジュー
ル使ってる?
0184nobodyさん
02/10/24 23:29ID:???0185nobodyさん
02/10/25 01:34ID:???0187名無しさん@35周年
02/10/25 22:10ID:f0WFU3YHばらばばらっばばらーばばら ぺんぺん!!
アーイヤーヤーコラ ぺんぺん!!
ソーレ
http://plaza.rakuten.co.jp/a240a/
0188nobodyさん
02/10/26 13:04ID:???http://sourceforge.net/projects/psp/
0189nobodyさん
02/10/27 12:41ID:EphP21JY<Files ~ "\.(cgi|pl)$">
SetHandler perl-script
PerlHandler Apache::Registry
PerlInitHandler Apache::StatINC
Options +ExecCGI
PerlSendHeader On
</Files>
て書いたんだけど同ディレクトリのデータファイルとか読みこめない・・・
仕様?
0190nobodyさん
02/11/02 01:47ID:vRpNWbq2HTML::Template 使ってるよ。
というか他にテンプレートモジュール知らないので紹介してくれ。
HTML にスクリプトを埋め込む PHP や ASP より
HTML とスクリプトをかなり分離できて割とすっきりすると思う。
でも PHP でも確か同じようなテンプレートモジュールがあったな…
0191nobodyさん
02/11/02 05:25ID:o+t0cR8MPHPはレンタルサーバーにインストールされてる率が高いけど
mod_perlが入ってるレンタルサーバーってあまり聞かないから
そこらへんなのかな。
0192nobodyさん
02/11/06 12:12ID:???HTMLの延長として書けるPHPの方が入りやすいのではないかしら。
0194nobodyさん
02/11/09 22:53ID:4Q7VYiKoどれくらいの修正が必要?
例えばkentの掲示板とか
0195nobodyさん
02/11/09 22:56ID:4Q7VYiKoaskabbsのデフォルトのままだと500エラー
どこら辺を直せばいいのかな?
0196nobodyさん
02/11/10 00:39ID:wej5Zqd8mod_perlよりperlで書かれたフツウのCGIつかうなら楽っぽいけど
0197nobodyさん
02/11/10 19:42ID:xESBM0enライブラリ内のサブルーチンを呼ぶ時に、ありませんとエラーがでます。
ライブラリの読み込みにエラーは出ていません。
ライブラリはpackage使っていません。対策希望。
0198nobodyたん
02/11/11 05:26ID:???mod_perl 特有の機能を使用しなければ,よいかも。
ただ,mod_perl と同じような注意点はあるので,そのまま使えるわけじゃないよん。
0199nobodyさん
02/11/11 23:37ID:???0200nobodyさん
02/11/12 12:24ID:+G2ZIth5>昔、mod_perlを開放して痛い目にあってた鯖屋を知ってます。
誰か、↑の件について詳しく知ってる人いませんか?
XREA利用してるから、ちょっと気になる。
0201nobodyさん
02/11/12 17:42ID:???サポートです。
shared_html内でCGI/SSIは基本的にサポートしていません。新しいサーバーs4,s7では初めから動かないようになっています。
古いサーバーでは、shared_htmlでCGIを動かしているアカウントに移動をしてもうらうようにメールした後、順次サポートを停止します。
shared_html内でCGIを動かす理由は無いと思いますので、publuc_html内で動かして下さい。
ちなみにshared_htmlでCGIを動かしたからと言って速くなることはありません。(モジュール化はされません。)
mod_perlですが、利用しますとshared_html内のスクリプトのソース、データが他の利用者から丸見えになります。
隠す手段が無くなり、悪戯・改竄も簡単にできてしまいます。(パーミッション606以上にしないといけない為)
shared_html内でPHPを動かす場合は、SafeModeで起動されるため、ある程度セキュリティ上の確保が出来ますが、mod_perlを使うと上で述べたセキュリティ上問題が生じます。
s3のASP、JSPについても同様の問題があり、最大の壁になっています。
他人に見られても構わない、他人にデータを消される危険性を承知して頂ける場合は対応致しますが、利用者全員にリスクを背負わせる事は出来ないため現在対応しかねています。
0202nobodyさん
02/11/15 23:58ID:???>利用者全員にリスクを背負わせる事は出来ないため現在対応しかねています。
できるのかできないのかどっちや?
0203nobodyさん
02/11/19 21:51ID:???0204nobodyさん
02/11/19 23:04ID:VhhOAZ+P0205rubyist@カラアゲうまうま
02/11/19 23:07ID:???0206nobodyさん
02/11/25 15:31ID:4k6ePYUG具体的にどうすればいいんでしょうか?
0207nobodyさん
02/11/25 16:06ID:???おまえ一回近藤さんところ行って金払って勉強しなおせ。
0209nobodyさん
02/11/25 20:57ID:???まーpreloadしとくと幸せかもってのはあるけどな。
0210nobodyさん
02/12/11 12:50ID:OIU8Ox7y普通のスクリプトでも動く?>fastcgi
mod_perlとどっちがいいのかな?
sppedycgiはmod_perlより遅かったYO!
0211nobodyさん
02/12/11 21:42ID:???でも両者同じくらいなんじゃないかな。
どっちも使ってない漏れが言うのもなんですが。
0212nobodyさん
03/01/08 19:06ID:B/d3X4vI>>189さんと同じような質問なんだけど、Apache2系+mod_perl環境に
変更したところ、CGIの中からファイルを読む時に、ファイルのパスを
フルパスで記述しないとエラーになるようになっちゃった。
<Files "*.cgi$">
SetHandler perl-script
PerlHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
</Files>
httpd.conf には上のように書いたんだけど、どこか設定し忘れでしょうか?
おまいら教えて下さい!
0213山崎渉
03/01/15 13:35ID:???0215nobodyさん
03/01/16 20:02ID:???0216nobodyさん
03/01/17 13:14ID:WcjfDkhMキタ━━━━━━(゚∀゚)━━━━━━━!!!!!
0217nobodyさん
03/01/17 13:17ID:???気付かなかった
0218nobodyさん
03/01/17 14:55ID:???speedyCGIはね・・・速いんじゃなくて軽いんですよ
もちろん、cgiに比べれば激速だけど
ちなみに、mod_speedyなんてのもあります。
mod_perlはメモリー食いすぎ&スクリプトの入れ替えが面倒
あと、httpd自体が重くなるから、静的ファイルの処理も重くなる
ケースバイケースとはおもうけど、うちの場合、スケーラビリティでは、
speedycgi >>> mod_perlでしたね
0219nobodyさん
03/01/17 21:28ID:???って言われたんですが 処理止める場合や
プログラムの終わりはどうすればいいんでしょう?
0220nobodyさん
03/01/18 02:02ID:???http://perl.apache.org/docs/1.0/guide/porting.html
Terminating requests and processes, the exit() and child_terminate() functions
の項をどうぞ。
0221nobodyさん
03/01/18 02:45ID:???0222nobodyさん
03/01/19 21:45ID:???perlもやれ正規表現だなんだと言わずにColdFusionのような
簡便性を重視すればシェアも広がるのに。
0223nobodyさん
03/01/20 01:27ID:???0224nobodyさん
03/01/20 16:37ID:???うちのス環境でのストレステストでも、結果だけ見るとmod_perlはspeedyにまけてますた。
もちろん、サーバーのメモリ容量によっても結果は変わりそうですけど。
0225nobodyさん
03/01/20 23:28ID:+/2vXFio真珠はもうダメポ。
0226nobodyさん
03/01/21 01:51ID:???0227nobodyさん
03/01/24 02:05ID:lHmFUyZc0228nobodyさん
03/01/30 20:22ID:X1QkLVxw0229nobodyさん
03/02/01 07:41ID:ioiLfoAwApache/2.0.44 (Unix) mod_perl/1.99_07-dev Perl/v5.8.0 mod_ssl/2.0.43 OpenSSL/0.9.6g DAV/2 FrontPage/5.0.2.2624 PHP/4.3.0RC3 mod_gzip/2.0.26.1a
〜〜〜〜〜〜〜〜〜〜
読み込んでいる以上使わない手はないな
0230nobodyさん
03/02/01 15:20ID:???ってなによ?
0231nobodyさん
03/02/02 21:34ID:ZopgONhAmod_perl で普通にサブルーチン定義ってできないの?
なんかサブルーチンが再定義されましたってWARNINGが
すべてのサブルーチンに出るんだけど。
動作的には問題なしです。
0233nobodyさん
03/02/05 22:26ID:bAuNqhq0オライリーの "Apache拡張ガイド" ってかなりイイですね。
単に「CGIを高速化したい」というだけの向きには
お勧めしないが。
0234nobodyさん
03/02/06 06:59ID:???漏れもやってみたいんだな。実は。な厨房でした。
phpよりperlの方が、なんだかなぜだか好きなんだな、これが。
ま、別にどっちでもいいんだが。
0235nobodyさん
03/02/28 07:13ID:lH1io3Lrmod_perl 1.27
Apache 1.3.27
Vine Linx 2.6r1
で mod_perl を利用したスクリプトを書いてます。
そこで問題が発生したのですが、
普段は正常に動作してくれるものの、
稀に下記のようなエラーを吐きます。
[error] Undefined subroutine &Apache::Registry::handler called.
そのエラーの後暫く時間を置くと、また正常に動作してくれます。
どのような原因が考えられるでしょうか?
0236山崎渉
03/03/13 17:10ID:???0237山崎渉
03/04/17 12:25ID:???0238山崎渉
03/04/20 06:09ID:???( ^^ )< ぬるぽ(^^)
0239nobodyさん
03/05/06 13:26ID:???前回処理のときの値が変数に残る場合があります。
原因がまったくわかりません。
0240nobodyさん
03/05/06 15:44ID:???とりあえず スクリプトさらせ
そしたらみてやる
0241nobodyさん
03/05/10 20:51ID:HZb4mCK8my $scalar="";で応急対処とか。
perl -wで起動してみるとか。
0243山崎渉
03/05/22 02:04ID:???0244山崎渉
03/05/28 17:19ID:???ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0245nobodyさん
03/05/28 19:30ID:???0246nobodyさん
03/06/28 01:43ID:LpyzQ0Fu0248山崎 渉
03/07/15 11:10ID:???__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0249nobodyさん
03/07/25 23:37ID:???0250nobodyさん
03/07/26 13:11ID:???@ISAつかったら、その時点で、セキュリティ上大問題。
mod_perlの存在理由が問われるわけだが。
0251nobodyさん
03/07/28 01:40ID:ZmLsz+tt開発には興味ないのかな?
PSP(Perl Server Pages)なるものがあったけどもっと本格的な奴
作ってほしいなぁ。
0254nobodyさん
03/07/29 00:08ID:VHYtOhh7よく知らないのだけど、それらの実行速度はPHPなどと比べて
速度的に遜色のないものなの?
0255無料動画直リン
03/07/29 00:13ID:2mrfBZ5M0256nobodyさん
03/07/29 00:16ID:kW5HsU6r★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★ 送料激安! スピード発送! 商品豊富!
★☆ http://www.get-dvd.com
☆★ 激安DVDショップ 「GETDVDドットコム」
★☆ http://www.get-dvd.com
☆★ 今すぐアクセス Let’s Go! 急げ!
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
0257252
03/07/29 19:22ID:wrNh0omf252のようなもの使うならperl使わずに
PHP使った方が無難。
速度はmod_perlならそんなにかわんないじゃないの?
といっても最近はテンプレートで表示するのが普通っぽくなってきたから
PHP+smartyもしくはmod_perl+html::templateのどっちか、
っていうわけか。
0258nobodyさん
03/07/29 19:22ID:al0J9pjRhttp://link.iclub.to/adalt/
http://link.iclub.to/amazon/
http://link.iclub.to/docomo/
http://link.iclub.to/google/
0259nobodyさん
03/07/29 22:16ID:VHYtOhh7バイナリにしてしまえば速度は速くなる?
0260nobodyさん
03/07/29 22:19ID:VHYtOhh7PHP(mod_php)に比べてmod_perlって何であんなに知名度に差があるの?
あとPHPはANHTTPDやIISなどにも対応してるけど、mod_perlは
Apacheのみだし・・・
0262nobodyさん
03/07/29 23:33ID:???0263nobodyさん
03/08/01 22:02ID:???mod_perlといえば、アパッチ::レジストリな訳で。
↓
アパッチ::レジストリといえば、オブジェクト指向必須な訳で。
↓
ところが、Perlのオブジェクト指向は痛い訳で。
↓
そんなもの使いたくないって訳で。
ってのが、現状だろう。
専用サーバだったら、他にも良い言語、アプリ鯖いっぱいあるしね。
mod_perlはマニアックなとても逸品です。
0264nobodyさん
03/08/02 01:05ID:???0265山崎 渉
03/08/02 02:23ID:???( ^^ )< ぬるぽ(^^)
0266ぼるじょあ ◆ySd1dMH5Gk
03/08/02 04:51ID:???ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
0268nobodyさん
03/08/02 06:22ID:???んなの、プログラミングする人間の勝手だと思うがな。
0269nobodyさん
03/08/26 14:21ID:???>Perlで作成したモジュールを実行する際に1度だけモジュールがコンパイルされ、メモリに常駐する。
となってますがどのくらいの時間常駐するのでしょうか。
永続的な常駐ならサーバのメモリ食いつぶしちゃうような…
#一人だけならともかく皆がやったりすると
気にするほどでもない?
0270nobodyさん
03/10/08 23:31ID:TFC4ht6F0271nobodyさん
03/10/09 06:04ID:???0272nobodyさん
03/10/09 10:48ID:???共有でmod_perlは無謀と思うのだが
0273nobodyさん
03/10/10 05:29ID:BH1wn/9y0274nobodyさん
03/10/10 13:58ID:???0275nobodyさん
03/10/10 21:04ID:???ソースを書き換えたら直りますか?
0276nobodyさん
03/10/12 09:33ID:5sejX4lfシステム領域をオーバーライドするしか方法はないだろうけど。
suexecのソースを読んでみよう
0278nobodyさん
03/10/12 09:49ID:5sejX4lfApacheは例によってapacheユーザで動作。
カーネルに関わるプログラムをsetuidして子プロセスの実行権限を動的にするしかないんじゃないだろうか。
擬似的にApacheが複数のUIDで動作すると。suexecより危険度が増すけど
0279nobodyさん
03/10/12 12:02ID:???0280nobodyさん
03/10/12 13:30ID:5sejX4lf0281nobodyさん
03/10/12 13:31ID:???0282nobodyさん
03/10/12 13:53ID:5sejX4lfCPUが追いつかない。
Apache2なら可能性はあるが
0283nobodyさん
03/10/30 15:43ID:MsIzuyZ0そうすれば普及するだろうに。
0284nobodyさん
03/10/30 15:53ID:???0286nobodyさん
03/11/04 18:16ID:???・exit();関数は利用できない。代わりに、Apache::exit();を使うそうな。
・パッケージ名を明記すると500 Internal(以下略)。(例: $main::setup)
・SuExecが有効にならない
・もし何かあったら、Apache自体を再起動しなければならない
・mod_perl用に書いたPerlScriptをCGIとして動作させたら、多分動かない。
知っている限りで。(注:正確な情報ではありません)
0287nobodyさん
03/11/04 19:42ID:???互換性の問題は速度の代償として多少は仕方ないか。
>・もし何かあったら、Apache自体を再起動しなければならない
ここら辺はmod_phpでも同じなのでは?
0288
03/11/04 20:55ID:1kmjwkimhttp://bulknews.net/lib/doc-ja/etoys.ja.html
0289nobodyさん
03/11/04 22:08ID:???・Apache::Registry 使用時なら exit は Apache::exit でオーバーライド
されていたような。
・main パッケージを明示するようなコーディングスタイル自体が問題。
・CGI プログラムとして組まれているスクリプトは Apache::PerlRun で
動かす。mod_perl 前提のスクリプトを CGI プログラムとして使うのは
おかしい。
SuEXEC が効かないのと、httpd の肥え方が激しいのがネックだと思う。
まぁ後者はサーバ分ければいいんだけど。
あと mod_perl 入れたからといって CGI プログラムが使えなくなる
わけじゃないので、Apache::PerlRun でも動かんような糞スクリプトは
割り切って CGI プログラムとして使うのも手。
0290nobodyさん
03/11/05 00:00ID:???Apache::PerlRunで満足すんなYO!
ところでさア、お金貸して?
0291nobodyさん
03/11/16 07:02ID:???みたいな感じで、テキストを置換するシステム作ってたんだが
XeonMP 2.8G でさえ、30req/sがやっとこさだったのだが、
PerlRun にしたら、100req/s 程度まで向上した。
男はApache::Registryだろうということで、試してみたんだが、
案の定あちこち手を入れないとウゴカナカタよ。
それでも、バックエンドDBアクセスナシで700req/s
DB接続ありで200req/s行ける感触をつかんだので
かなり満足。
行き着く先はCでApacheモジュール化なのだが、そうすると
DBIのような統一インタフェイスが使えずDB依存になってしまうのが辛い。
上のカキコで PATH_INFO 云々の話が出てたが、ウチで試したときは
アクションハンドラとして呼ばれないときも
PATH_INFO=/
PATH_TRANSLATED=/path/to/www/ <- これファイルじゃネーし
とか出てきて少々面食らった。これはバグ? 実装上の都合?
0292nobodyさん
03/12/28 05:05ID:???0293nobodyさん
04/02/03 03:55ID:6SsHdaLm0294nobodyさん
04/02/10 21:22ID:YkFrJUBAmod_perl使ってる時にも通常のCGIとしてperlプログラム走るんですか?
0295nobodyさん
04/02/10 22:35ID:???0296nobodyさん
04/02/11 14:36ID:???HTML::Template使えますか。
0297nobodyさん
04/02/11 17:34ID:8Wm4X/2a皆さんは、
PerlSendHeader On
にしてますか?
mod_perlを使うなら Off だろ、とか、
漢なら Off にしとけ、とか、
なんかポリシーみたいなものってありますか?
0298nobodyさん
04/02/11 19:17ID:???/ ,――――-ミ
/ / / \ |
| / ,(・) (・) |
(6 つ |
| ___ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| /__/ / < mod_perlを使うなら Off だろ!
/| /\ \__________
0300nobodyさん
04/02/14 12:13ID:???Syntax error on line 159 of C:/Program Files/Apache Group/Apache2/conf/httpd.conf:
Cannot load C:/Program Files/Apache Group/Apache2/modules/mod_perl.so into server: 指定さ
れたモジュールが見つかりません。
_| ̄|○ファイルあるのに…
0301nobodyさん
04/02/14 12:46ID:???やっぱ、スクリプトの制限がキツくなるからってことでおk?
0302nobodyさん
04/02/14 13:15ID:???ISP屋の立場から言うと、suExecできないのが一番痛い
0303nobodyさん
04/02/14 17:02ID:???0305nobodyさん
04/02/14 21:57ID:???0306nobodyさん
04/02/16 00:45ID:???ってことはやり方が悪いという事かな……orz
>303
設計とかテストとかやるときはローカルのWin鯖でやってますが
UNIX版と違い出るんですか。
0308nobodyさん
04/02/16 12:42ID:???0310nobodyさん
04/02/16 16:28ID:???apache はwinネイティブで mod_perl が cygnus だったら 動かないとか。
もう少し詳しく書かないとなんとも言えないんじゃないかなぁ
0311nobodyさん
04/02/16 16:37ID:???ファイルは見つかっても何らかの原因でメモリへのロードに失敗している
というケースが実際にはほとんど
原因はバージョン不整合とかいろいろ考えられるが
まあ地道に切り分けるしかないな
0312nobodyさん
04/02/16 16:53ID:1pUxS5fUそして以下のテストスクリプトを二種類の方法でちゃんと動作しているのですが、
CGIとして呼び出されてるのか、mod_perl として呼び出されているのかサッパリでして、、
確認する方法ってのはありますか?
## /home/user/perl/test
#!/usr/bin/perl -w
use strict;
print 'content-type: text/plain; charset=EUC-JP' . "\n";
print "\n";
print join("\n", map "$_ = $ENV{$_}", sort keys %ENV);
## httpd.conf
Alias /perl/ /home/user/perl/
Alias /cgi-bin/ /home/user/perl/
<Location /perl>
SetHandler perl-script
PerlHandler Apache::Registry
Options ExecCGI
PerlSendHeader On
</Location>
<Location /cgi-bin>
SetHandler cgi-script
Options ExecCGI
</Location>
http://hoge.com/perl/test -> OK.
http://hoge.com/cgi-bin/test -> OK.
0313nobodyさん
04/02/16 17:44ID:???#!/usr/bin/perl -w
use strict;
print 'content-type: text/plain; charset=EUC-JP' . "\n";
print "\n";
print `ps aux | grep perl`;
0314nobodyさん
04/02/16 17:55ID:???>'CGI-Perl/1.1' が設定されます。(通常CGIは 'CGI/1.1')
>また、'MOD_PERL' 環境変数が設定されます。(mod_perlのバージョンが設定される)
0315312
04/02/17 12:47ID:???返事ありがとう。
早速試してみようと思ったんですが、
なんか電源が入らない、、orz、、bios すら起動しねーーーー
出直してきます。。(つд`;)
0316312
04/02/18 19:28ID:???試して見ました。
## /perl/test
GATEWAY_INTERFACE = CGI-Perl/1.1
MOD_PERL = mod_perl/1.29
## /cgi-bin/test
GATEWAY_INTERFACE = CGI/1.1
問題なく動作しているようです、有難うございました。
ところで別の疑問なのですが、
CGI経由で動作している時には suEXEC で動作して欲しいと思って
suEXEC 有効にしてみました。
/perl/test -> nobody権限
/cgi-bin/test -> user権限
今の所正常に動作していると思うのですが、これって問題ない、、ですか?
どこのサイト見ても suEXEC は無効にしとけー、
てな事しか書いてなかったので少し不安なのです。
0317nobodyさん
04/02/18 20:04ID:???mod_perlが組み込まれている httpd のプロセスの中で動いてしまうのでsuexecは効かない
CGI経由で別プロセスで動かすからこそsuexecが有効
0318nobodyさん
04/02/29 04:50ID:yMfKis4MというCGIを自サーバーで動作させたのですが、試してみると結構な確率で真っ白な画面が
ブラウザに表示されます。
このCGIは実績があるのでこのCGIのせいではなくて、mod_perlのせいなのだと思うのですが、
解決策が全くわかりません。 助けてください・・・。
環境は、
OS: Redhat 9.0
WebServer: Apache1.3.29
mod_perl version 1.29
perl 8.5.1
です。
OS以外は全てソースからコンパイルしてインストールしました。
0319nobodyさん
04/02/29 05:49ID:???0320nobodyさん
04/02/29 07:26ID:???0321nobodyさん
04/02/29 11:32ID:???助けてやりたいのはやまやまだが
318 に書かれた情報だけでは何とも手の差し伸べようがない
error_log に何が吐かれてるか確認する前に 318 を書いたのだとしたら
君の罪は麻原並に重い
0323nobodyさん
04/02/29 11:41ID:???XREA
0324nobodyさん
04/02/29 12:07ID:???眺めたところそのスクリプトのせいのような気が……。
0325318
04/02/29 15:21ID:yMfKis4M>324
どの辺りか教えて頂ければ幸いです・・。 お願い致します。
>321
エラーは一切吐かれていませんし、ブラウザで500番エラーが
表示されることもありません。
0326nobodyさん
04/02/29 18:41ID:???mod_perl で動くかというとそうとは限らない。
0327nobodyさん
04/02/29 21:39ID:???0328nobodyさん
04/03/01 06:28ID:???mod_perlでは、正しく動きません。または、高速動作できません。
0329nobodyさん
04/03/01 10:01ID:???0330nobodyさん
04/03/01 22:21ID:???0331nobodyさん
04/03/02 21:16ID:O+pQat/oこれってmod_perlだけじゃなく、
全てのモジュールをstaticで構成しないと駄目だったのね。
mod_perlだけだと思って何度も何度もやり直してしまいました。。
0332nobodyさん
04/03/03 00:58ID:???0333nobodyさん
04/03/04 11:23ID:???ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl.ppd
としたんですが
Error: no suitable installation target found for package mod_perl
とエラーが出ます。どうしたものでしょう
0334nobodyさん
04/03/05 19:12ID:GwB2WnjSperl-5.8.3 に変えて見ました。
mod_perlでスクリプトを出力すると
charset が間違っていないにも関わらず文字化けします。
どうやらutf-8で出力されているようなのですが、、
charset を utf-8 にすれば文字化けはしないのですが、
今度は CGI で実行した時に当然ですが文字化けします。
これは、、どうやって回避すればよいのでしょう。
## httpd.conf
<Location /perl>
SetHandler perl-script
PerlHandler Apache::Registry
Options ExecCGI
PerlSendHeader On
</Location>
<Location /cgi-bin>
SetHandler cgi-script
Options ExecCGI
</Location>
## script
my $euc = 'あいうえお';
print "content-type: text/plain; charset=EUC-JP\n\n";
print "$euc\n";
0335334
04/03/05 21:46ID:???スクリプトが utf-8 でした。。。申し訳ありません。。
以下簡単にまとめました。
## script euc-jp
my $euc = 'あいうえお';
print "content-type: text/plain; charset=EUC-JP\n\n";
print "$euc\n";
/perl(mod_perl) も /cgi-bin(CGI) も問題無し。
## script utf-8
use utf8;
binmode(STDOUT, ':encoding(euc-jp)');
my $utf8 = 'あいうえお';
print "content-type: text/plain; charset=EUC-JP\n\n";
print "$utf8\n";
/perl(mod_perl)だと文字化け、charsetを utf-8 に変更すると問題なし
/cgi-bin(CGI) だと問題無し、charsetを utf-8 に変更すると文字化け
mod_perlの標準出力(STDOUT)は binmode では設定出来ない、のかな?
だとすると mod_perl の標準出力の文字コードを設定するにはどうすればよいのでしょう。
とりあえず euc-jp でスクリプトを書けば問題ない話なんですがちょっと↑が気になりました。
0336nobodyさん
04/03/06 10:11ID:4ILBaJdhPlease contact the server administrator, XXX@XXX.XXX .....
という文章がcgiを通して表示される最後に挿入されます・・・。
この文章を表示しないように設定したいのですが、httpd.confで
いじる場所もなさそうですし、どこを設定すればよいのでしょうか?
ご教授お願い致します。
0337nobodyさん
04/03/06 10:22ID:???0338nobodyさん
04/03/07 01:19ID:???printした後の処理で実行時エラーが出てるとかのような。
0339nobodyさん
04/03/07 18:30ID:???0340nobodyさん
04/03/09 05:55ID:???エスケープ無しで " が入ってると実行時エラーが出た。
注意って事で。
0341nobodyさん
04/03/09 22:03ID:???そりゃエラーになるよ
0342nobodyさん
04/03/09 23:14ID:???0343nobodyさん
04/03/14 20:00ID:???環境
Apache/2.0.40 (Red Hat Linux)
mod_perl/1.99_07-dev
perl, v5.8.0 built for i386-linux-thread-multi
A.pm------------
package A;
sub method1 {# hoge}
sub method2 {# hoge}
----------------
B.pm------------
package B;
use base qw ( A );
----------------
test.cgi----------
use B;
$o = B->new;
$o->method1;
$o->method2;
----------------
だいたいこんな感じ。
症状:
test.cgiの実行でこける。
エラーログを調べると、ModPerl::Registryさんが実行する度に「Bクラスにはmethod(1 or 2)はない」と違うことを言っている。
実際、ブラウザに状況を出力しながら動作確認をすると、確かにメソッド呼び出しのところでこけている。文法エラーでないことは途中までとは言えHTMLを吐き出していることからわかる。
なので、mod_perlさんのどこかに不具合があるのではないかと考えたのですが、そこまででした。
どんな原因が考えられますでしょうか。
0344343
04/03/14 20:48ID:???Apacheが古いバージョンのスクリプトでコンパイルした実行ファイルを、しっかり握って離していないだけでした。_| ̄|○
元ファイルを全部消しても、ブラウザでアクセスするとまだ結果が出るのです。
握りこんだ実行ファイルを手動で消す方法はないでしょうか。
0345nobodyさん
04/03/14 21:14ID:???自分でやってみたことはないので割と無責任
0346343
04/03/15 00:47ID:???現在は、動作がおかしくなったらApacheのrestartと言うあまりクールでない手でやってます。
ありがとうございます。Apach::Reloadのmanを見てみます。
0347336
04/03/15 10:40ID:heuYMXtNと出力されています。
なんじゃこのhandlerは??? 名前が無いです・・・。
ご教授お願い致します。
0349nobodyさん
04/03/15 22:07ID:???珍しいエラーだなあ。
ちなみに何をやろうとしてそういう状態になったんだ?
Apache::Registry? Apache::PerlRun?
それとも Movable Type だか AxKit だかを PerlHandler で組み込んだ?
0350mod_perlはじめて君
04/03/23 13:29ID:3jX1Q8fVpackageつけるとSubroutine check redefinedとゆうwarningsが沢山出ちゃうんです。
でもpackage消しても
Prototype mismatch: sub Apache::ROOT::sakura::cgi_2dbin::test::test_2ecgi::check vs ()
というwarningsが出てしまうんですが、これってmod_perlの仕様なんでしょうか?
warningsが出るのが気になるタイプの人なんです僕o(_ _)o
0351ログ補完
04/03/29 13:16ID:???もしかしてApache::Registryだとopen FH, >hoge.dat でファイルを作ってくれなくなった?
0352nobodyさん
04/03/30 14:23ID:???my $foo = { hoge => 'hoge' };
だと$fooの値は消えても無名ハッシュ内の値は消えないとか
そう言う事は無いですか。
0353nobodyさん
04/03/30 14:39ID:???http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlref.html
http://pc5.2ch.net/test/read.cgi/php/1078076768/
0354nobodyさん
04/03/30 14:59ID:???CGI等で使うと終了時に全クリアされるようですが
mod_perl(Regstry)では値がキャッシュされると聞いたのでこちらで聞きました。
要は、リファレンスが変数に格納されていると、
変数が消えた瞬間に値の内容もきちんと消されると言う事ですね。
0355nobodyさん
04/03/30 15:00ID:???×値
○参照されている値
#少し語弊があるので修正
0356nobodyさん
04/04/02 13:16ID:???0357nobodyさん
04/04/08 09:32ID:???0358Perlさん
04/04/08 13:57ID:???0359nobodyさん
04/04/10 01:10ID:???世間的にどうなのかは知らない。
0360nobodyさん
04/04/10 12:24ID:???0361nobodyさん
04/04/30 13:24ID:???一応、local $self->{'HOGE'} = 'hoge'; とかやっているのですが。
0362nobodyさん
04/05/01 09:28ID:???その書き方だと $self はリファレンスだから、local する意味はない。
ってか、$self の位置づけがいまいちわからん。
mod_perl で呼び出すスクリプトで使ってるオブジェクトのリファレンス?
0363nobodyさん
04/05/01 13:35ID:???起動時に PerlRequire で読み込んでいる Apache2 モジュールの機能でした。
てっきり mod_perl を使うと %$self が勝手に用意されるのかと。
local は意味が無かったのですね……。
0365nobodyさん
04/05/02 00:24ID:???$self->{'FILEDIR'} (このキーは初めは用意されていない)に入れたいと思っただけなのですが、
そこで mod_perl でこういう予め決まったキーや値が入っている変数に勝手に追加して良いのかどうか、
不安だったのです。
どこかに何か影響が出たりするのだろうかと。
0366362
04/05/02 03:46ID:???現段階でそのキーが使われていなければ使える。
が、将来的にもそのキーが使われない保証はない。
スクリプトをオブジェクト指向で書いているなら、そのオブジェクトに入れるべき。
書いていなければそう書き直しましょう。
0367nobodyさん
04/06/14 00:54ID:UCF4wTWNの構成で、lock tableした後に
どこかのSQL実行に失敗してerrstrで処理するとunlockできないのだが、
何とかならないのだろうか。
識者の見解キボン。
失敗しなきゃ良いというのは無しでお願い。
0368nobodyさん
04/06/23 16:45ID:???# perlcc -B test2.cgi.org -o test2.cgi
*インタプリタは内蔵せずスクリプトをバイトコードに変換するだけ(たぶん)
test2.cgi.orgの内容
#!/usr/bin/perl
print "Content-type:text/plain\n\n";
print "Hello world!!\n";
@ # ./test2.cgi の結果
Hello world!!
@ mod_perlを無効にしWEBからアクセスした結果
Hello world!!
@ mod_perlを有効にしWEBからアクセスした結果
Missing right curly or square bracket at /home/hoge/public_html/mod_perl/test2.cgi line 3, at end of line
syntax error at /home/hoge/public_html/mod_perl/test2.cgi line 3, at EOF
その時のerror_log
[Wed Jun 23 16:27:32 2004] [error] 6945: ModPerl::Registry:
Missing right curly or square bracket at /home/hoge/public_html/mod_perl/test2.cgi line 3, at end of line
syntax error at /home/hoge/public_html/mod_perl/test2.cgi line 3, at EOF
環境:Fedora core1、apache 2.0.48-1.2、perl 5.8.3、mod_perl 1.99_12-2
RH7.3、apache 1.3.27-4、perl 5.6.1、mod_perl 1.26-5 でも似たような結果でした
やりたいことはPerlで高速な動作をしつつ、ある程度のソースの隠蔽をしたいのですが
perlcc+mod_perlで動かす方法、もしくはそれに変わる代替手段がございましたら
ご教授くださいませオマイら。
0369nobodyさん
04/06/23 19:49ID:???0370nobodyさん
04/06/23 20:32ID:???「原理はわかんないがとにかく CGI が高速になる魔法の箱」
と思われているのものなのだな
0371nobodyさん
04/06/23 20:39ID:???0372nobodyさん
04/06/23 20:39ID:???0373nobodyさん
04/06/23 22:44ID:GOWHNOaoオサーンハッケソ!
0374368
04/06/24 14:47ID:???mod_perlもバイトコードへの変換プロセスを踏むと私は何の根拠もなく推測しており
mod_perl側で通常のソースとバイトコードを判別し適切なステップを踏むように作られていれば
perlccでコンパイルしたスクリプトが動作しても理論上不思議ではないと
思うのですがどうでしょうか。
この場合、ごく単純なスクリプトでも動作しないので
mod_perl側でperlccを考慮した機構がないんだとは思いますが。
0375nobodyさん
04/06/24 19:55ID:???「CGIを高速に実行する環境」ではありません。
「apache モジュールの一つで、perl インタプリタを内蔵しており、
apache API の操作手順を perl スクリプトとして外部に切り出すことのできるもの」
などとするべきでしょう。
この違いはたいへん重要です。なぜなら mod_perl それ自体には
「CGIのプログラムファイルをロードする機構は含まれていない」からです。
mod_perl に用意されたロード機能は、apache 起動時に、
httpd.conf で指定された perl スクリプト(クラスモジュール)を読み込むこと、
だけです。CGI プログラムファイルを直接読み込むことはできません。
CGIを実行するためには当然プログラムファイルをロードしなければならず、
そのためにはローダとなる機構が別途必要です。
このために Apache::Registry という perl クラスモジュールが
mod_perl と同梱して配布されています。
httpd で Apache::Registry を指定しておくと、apache 起動時にこれが読み込まれ、
以後 CGI のローダとして動きます。
この Apache::Registry の機能は、スクリプトファイルを読み込み、
これを CGI をエミュレートした環境下で eval することです。
ところが、perlcc でコンパイルされたバイトコードは use ByteLoader されています。
この ByteLoader のようなソースフィルタが、eval と相性最悪なのです。
そのため、Apache::Registry の方法では、バイトコードを実行できません。
Apache::Registry とは異なる原理に基づくローダを自作すれば、
理論的には不可能な話でも無いと考えられます。
0377nobodyさん
04/08/02 18:48ID:???まぁ、メモリ上にキャッシュするから当然っちゃー当然だがね。
0378nobodyさん
04/08/02 22:15ID:???しかしまあこの板の住人が使うケースの99%は mod_perl の方が速いだろうな
ちなみに、apache の module を C で書いて組み込んでしまえば
mod_perl よりさらに速い
0379nobodyさん
04/08/17 15:02ID:fsY5EgQVDBアクセスで、cgiだと動作するのですが、mod_perlだと動作しません。
ソースは以下です。いろいろなサンプルでは、cgiの場合と、mod_perlの
場合に違いが感じられないので、設定、もしくはユーザー権限のようなもの
かなと想像しているのですが。
ご教授頂けませんでしょうか。
#!/usr/local/bin/perl -w
use strict;
print("Content-Type: text/plain\r\n\r\n");
my($dbh,$sql,$sth,$res);
use DBI;
my $key = '1234';
#############
my $dbh = DBI->connect("DBI:mysql:test","test","pas");
$sql = "SELECT * from TBL where key =".$dbh->quote($key);
$sth = $dbh->prepare($sql);
$res = $sth->execute;
$sth->finish;
$dbh->disconnect;
#############
print "res=";
print $res;
0380nobodyさん
04/08/17 15:07ID:???0381nobodyさん
04/08/17 15:17ID:???0382nobodyさん
04/08/17 15:18ID:???どういう風に動作しないのか、
エラーを吐くのか、それとも期待と違う動作なのか、
とかその辺を報告しろと
0383DB
04/08/17 15:28ID:fsY5EgQVcgi(普通のPerl)では動作します。
0384nobodyさん
04/08/17 15:29ID:???0385DB
04/08/17 15:50ID:fsY5EgQV動作します。
cgi として動作させれば、$res の値も正常に表示されます。
0386nobodyさん
04/08/17 16:25ID:???多分あんたの環境じゃsu_execじゃないと動かない。
以上。
0387DB
04/08/17 16:51ID:fsY5EgQV有難う御座いました。
0388nobodyさん
04/08/17 16:54ID:???print("Content-Type: text/plain\r\n\r\n");
のヘッダーでmod_perlって動いたっけ?
事前に200OKを吐く必要があったと記憶しているが・・・・
誰も指摘しないのはなぜだろうか・・・
0391DB
04/08/18 19:13ID:+YCQrBn3379を書いた者です。
>>388
httpd.conf の中で
PerlSendHeader On
とすれば良いらしいのですか、Apache に詳しくないので・・・。
httpd.conf の中で、それらしい設定は
AddModule mod_perl.c
<IfModule mod_perl.c>
<Files *.xpl>
SetHandler perl-script
PerlHandler Apache::Registry
PerlSendHeader On
Options ExecCGI
</Files>
</IfModule>
としています。
拡張子 .cgi が通常のcgi
拡張子 .xpl がmod_perl で動く設定です。
0392nobodyさん
04/09/30 21:13:33ID:???Apache2でDSOとしてmod_perlを読み込む場合のhttpd.confの記述はどのように
すればよろしいでしょうか?
0393nobodyさん
04/09/30 22:43:45ID:???http://perl.apache.org/docs/2.0/user/config/config.html#Enabling_mod_perl
0394nobodyさん
04/10/01 00:12:20ID:???0395nobodyさん
04/11/21 21:23:12ID:???0396nobodyさん
04/11/21 21:59:13ID:???0397nobodyさん
04/11/22 04:12:53ID:???http://qb5.2ch.net/test/read.cgi/operate/1093068260/543-
0398nobodyさん
04/11/30 19:09:15ID:???0399nobodyさん
04/12/12 22:59:26ID:???0400nobodyさん
04/12/13 17:32:56ID:???0401nobodyさん
05/01/14 14:57:29ID:BN1J93ZhApache::DBIをつかってコネクションをkeepしたままにしておくと、
httpdに比べてpostmastarのプロセスがやたら増えてしまい、最終的には
コネクションエラーになっていまいます。
現在httpd.confのMaxSpareServersを32、postgresql.confのmax_connectionsを256
にして急場を凌いでいます。
解決策をご存知の方、お助け下さい。
0402nobodyさん
05/01/17 05:35:14ID:???正常ならpostmasterのプロセスは32より増えないはず。postmasterとhttpdのプロセスを監視してみれ。
0403401
05/01/19 10:18:58ID:???解決しました。というか原因はWebアプリではありませんでした。
裏で動かしていたデーモン(同一DBにアクセス)がバグっていました。
0404nobodyさん
05/02/11 11:12:30ID:???0406nobodyさん
05/02/16 01:08:49ID:???Apache1.3とmod_perl-1.29で動いていたスクリプトが、Segfaultしまくります。
XML::GDOME::XSLTは全然バージョンアップされていないようだし。
他のXSLTモジュールを使うしかないか・・・
0407nobodyさん
05/02/16 02:44:32ID:???http://www.google.co.jp/search?q=expat+mod%5Fperl
これかな?
0408406
05/02/16 10:11:27ID:???残念ながら違うようです。
というか、それを避けるためにXML::GDOME系を使っています。
XML::GDOME系はlibxml2とgdome2を使っており、expatは使っていません。
createDocFromStringはOKでcreateDocFromURIはダメみたいです。
0409nobodyさん
05/02/16 10:30:18ID:???mpm_preforkで試してる?
http://httpd.apache.org/docs-2.0/mpm.html
0411nobodyさん
05/03/07 17:35:36ID:???mod_perlで動かすとsetuidされているファイルでも動作権限が
apacheの権限になってしまいますがこれは仕組み上、しょうがないでしょうか?
rootにsetuidするためにはapacheをroot権限で動かさないとやっぱ駄目なのかな
0412nobodyさん
05/03/07 18:29:35ID:???0413nobodyさん
05/03/07 22:28:12ID:???それができたらすげーいいよなとは俺も思うのだが
UNIXのプロセスと権限管理の仕組として無理
apache を root で動かすという極めて危ない橋を渡らざるを得ない
もちろん、mod_perl から別プロセスを立ち上げれば、そいつを setuid することはできる
けど、別プロセスを作りたくないからわざわざ mod_perl を使うんだよな
0414nobodyさん
05/03/08 00:24:47ID:???0415nobodyさん
2005/04/14(木) 14:25:33ID:???ユーザ追加する度に httpd.conf を弄るのは…(;´Д`)
0417nobodyさん
2005/05/20(金) 12:10:42ID:Td1z8gJo1日掛かりでやっとの思いで以下のキーワードをDOS窓で入力して
ppm install http://theoryx5.uwinnipeg.ca/ppms/mod_perl.ppd
mod_perl.so(Mod_perlモジュール)をインストール出来ました。
そして、httpd.confに以下のコマンドを追加して、extra.plをhttpd.confと同じフォルダに置き
##Mod_perl##
LoadFile "C:/usr/local/bin/perl58.dll"
LoadModule perl_module modules/mod_perl.so
PerlRequire "C:/Program Files/Apache2/conf/extra.pl"
#Alias /perl/ "/Apache2/perl/"
<Location /perl>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
</Location>
##Mod_perl##
Apacheを起動してもDOS窓は、画面に何もコメントを表示しないまま閉じてしまいます。
Mod_perlモジュールをインストールしてから、Apacheを起動するには一体どの様にすれば
宜しいかどうか教えて下さい。
ちなみに私は以下URLを参照しました。
ホームサーバの構成
http://eazyfox.homelinux.org/etc/serverspec.htm
Mod_perl2.0のWin32の説明
http://perl.apache.org/docs/2.0/os/win32/config.html
extra.plも上の両ページに書かれている内容を埋め込んでやってみましたがどちらも結果は同様です。
どうかご教授宜しくお願いします。
0419nobodyさん
2005/05/21(土) 00:03:42ID:rPKP3rpi只今見つけました。
なにしろerror_log の存在は存じてなかったもので。エラーは以下の通りです。
[error] Can't load Perl file: C:/Program Files/Apache2/conf/extra.pl for server localhost:80, exiting...
このエラーですが、PerlRequireでRequireしたextra.plに構文ミスがある場合にも
適用されます。
改めて宜しくお願いします。
0420nobodyさん
2005/05/21(土) 00:49:11ID:???Can't load Perl file
って書いてあるんだから、そのまんまだろ。
パスは合っているのか?
mod_perl 以前に perl でそのファイルを普通に読ませてエラーは出ないのか?
0421nobodyさん
2005/05/21(土) 12:02:12ID:rk+ZZalH>Can't load Perl file
>って書いてあるんだから、そのまんまだろ。
>パスは合っているのか?
はい、extra.plに
print "XXX";
だけにしてApacheを起動したら、"XXX"が表示されましたので、パスが正しいのは
確かめられました。
>mod_perl 以前に perl でそのファイルを普通に読ませてエラーは出ないのか?
extra.plを
Mod_perl2.0のWin32の説明
http://perl.apache.org/docs/2.0/os/win32/config.html
の内容にして、perlにてDOS窓で起動させたら以下のエラーメッセージが出ました。
C:\Program Files\Apache2\conf>perl extra.pl
ModPerl::Const object version 1.999024 does not match bootstrap parameter 2.0000
00 at C:/usr/local/lib/DynaLoader.pm line 253.
Compilation failed in require at C:/usr/local/site/lib/Apache2/Const.pm line 17.
BEGIN failed--compilation aborted at C:/usr/local/site/lib/Apache2/Const.pm line
17.
Compilation failed in require at extra.pl line 9.
BEGIN failed--compilation aborted at extra.pl line 9.
これで、目的のPMのパスが合ってる事が確かめられると思いますが、何しろPMは人が作成した
もので解決のしようが有りません。
どうしてでしょうか、改めて宜しくお願いします。
0423nobodyさん
2005/05/21(土) 12:57:37ID:rk+ZZalHマルチポストは良くない事は解ってますが、Mod_perlの場合、おそらく熟知されてる
方が少ないので、いくつかの掲示板で同じ質問をポストしないと回答が戴けない事も
あるので、そうしました。
どうかご容赦下さい。
実際に
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1398764
では、回答を戴けない事もありえそうです。
0424nobodyさん
2005/05/21(土) 13:10:00ID:???そういう場合、しばらく待って返事がないようであれば
「こちらに投稿しましたが返事がないので…」
…ってマルチポストを事前に断るのがマナー。
0425422
NGNGリンクしてみた。 インターネッツの世界が広がった瞬間でもあった。。
gooで回答して良回答ポインツもらってもいいけど、ここで回答しておく。
参考にしたサイトにできるだけ忠実にインストールすると
できると思う。特にApacheをインストールしている場所が "Program Files"
の中ということで、これにはフォルダ名に空白が含まれているから実行でき
ない場合もある。
Cドライブ直下に再インストールしてみてみてみ。あとAliasがコメントだが・
0426nobodyさん
2005/05/22(日) 14:10:13ID:3yEsfTzNApache2をCに移動し、httpd.confも
C:/Apache2/
にパスを書き直しましたが、やはり結果は変わりません。
ホームサーバの構成 の内容で
http://eazyfox.homelinux.org/etc/serverspec.htm
の通りにextra.plを作成してもApacheは閉じてしまいます。
Perlでそのextra.plを開いて見ると以下のエラーが出ますが
C:\Apache2\conf>perl extra2.pl
Can't locate Apache2.pm in @INC (@INC contains: C:/usr/local
te/lib .) at extra2.pl line 1.
BEGIN failed--compilation aborted at extra2.pl line 1.
C:/usr/local/site/libにApache2.pmはないです。Apache2のフォルダは
ありますが。
一体、どの様にすればMod_perl2.0を動かせるようになるのでしょうか?
改めてご教授宜しくお願いします。
0427nobodyさん
2005/05/22(日) 23:37:12ID:3yEsfTzN追記です。
参考サイト
http://eazyfox.homelinux.org/etc/serverspec.htm
を忠実にやろうとした所で、ウチはActivePerl5.8.1で、Apache2.pmと
いうモジュールはどこにもないし
C:Perl/lib/Apacheは、参考サイトのextra.plのApache::とは全然違うモジュールばかりです。
Apache2.pmのキーワードでネットで検索して見ましたが、具体的なヒントは得られませんでした。
一体何故
本家
http://perl.apache.org/docs/2.0/os/win32/config.html
と参考サイトのextra.plは内容が異なっているのでしょうか?
参考サイトは、extra.plが何故use Apache2 ();
use Apache::
なのでしょうか?
その点が私には理解出来ません。
どうしてマニュアル通りにやってその結果が約束されないのか私にはとても納得行きません。
やはり、どの様な手をつくした所でmod_perl2.0のインストールはどうしても完了出来ません。
そんなにmod_perlの導入は、サーバ構築の上級者でないと出来ない技なのでしょうか?
でもどうしてもmod_perl2.0のインストールしたいんです。
改めてご教授宜しくお願いします。
RC5(1.999_22)になってからモジュール構成が大幅に変更されたためです
ですからRC5以降はApache2もApacheもありません
(現在提供されているWin32のmod_perl2のバージョンは2.000_00です)
参考サイトの情報はmod_perl2のRC4以前の情報なので、
現在のmod_perl2には適用できません
本家のドキュメントを参照したほうがいいです
詳しいことはChangesを見ましょう(英語ですが)
http://search.cpan.org/~gozer/mod_perl-2.0.0/Changes
0429nobodyさん
2005/05/23(月) 13:36:19ID:6v1jDvRvやっぱりmod_perl2.0のセットが変わってしまったんですね。Changesを解読するのは大変ですね、Yahoo翻訳でもとんちんかんな和訳ですで、マニュアルは本家一本に統一される形となりました。
決断して、Activeperl、Apacheを一度全てアンンインストールしてActiveperl5.8.6とApache2.054を再インストール、そして、本家の通り
http://perl.apache.org/docs/2.0/os/win32/index.html
をやり方に絞り再挑戦しました。
そして、
ppm3 install http://theoryx5.uwinnipeg.ca/ppms/mod_perl.ppd
でmod_perl.soをもう一度DLして自動インストールした所、
Mod_perl::Util.pm
のVerがアンインストール前は1.999024で、再インストール後は2.00000になってたので、それが元で421に書かれてるエラーになったらしかったです。
Verも合ったので今度こそはの思いも空しく今度は以下のエラーに引っかかりました。
C:\Apache2\conf>perl extra.pl
Can't load 'C:/usr/local/site/lib/auto/APR/APR.dll' for module APR: load_file:こ
のアプリケーションの実行に必要なライブラリ ファイルの 1 つが見つかりません。 at
C:/usr/local/lib/DynaLoader.pm line 230.
at C:/usr/local/site/lib/APR/Const.pm line 18
Compilation failed in require at C:/usr/local/site/lib/APR/Const.pm line 18.
BEGIN failed--compilation aborted at C:/usr/local/site/lib/APR/Const.pm line 18.
Compilation failed in require at extra.pl line 10.
BEGIN failed--compilation aborted at extra.pl line 10.
APR.dllはパス通りのDirにありました。
あるのに何故dllがロード出来ないでしょうか?
どうか引き続きご教授宜しくお願いします。
>>417を見ましょう
要はDOS窓からperlで呼び出すのではなく、
Apacheを起動させるのが正しいです
Apacheの起動が正常の場合は何も言わずにDOS窓を閉じます
エラーが起こった場合はエラー内容を表示してescを押すまで
30秒間待ってそれから自動的に閉じるようになっています
0431nobodyさん
2005/05/24(火) 10:40:05ID:dxfDHIc8Apacheが閉じれば、ブラウザでスクリプトを呼び出しても「表示ができません」と
でて、エラーログにも
[error] Can't load Perl file: C:/Program Files/Apache2/conf/extra.pl for server localhost:80, exiting...
が相変わらず記録されます。
そしてウチの場合、Apache側にエラーが起きてもDos窓に何らかのメッセージが出てアッと
いう間に閉じます。
で、Apacheが閉じれば、決してブラウザでLocalhostは動きません。
もう、捨て身ですが
C:\Apache2\bin> ab -n 5 -c 5 http://localhost/perl/printenv
をDos窓に打ち込んだりもしました。
何らかの反応がありましたが、どういう処理をしたか解りません。
417の何処を読めば解るのでしょうか?
結局、ここまで悪戦苦闘してもどうしても出来ません!
Mod_perlのインストールごときでWeb設定の業者に設定を依頼する方ないのかな?
宜しくお願いします。
0432nobodyさん
2005/05/24(火) 14:28:44ID:???ActivePerl5.8.3とApache2.0.54はインストール済みだったので試しにmod_perlインストールしてみました
インストールまではスムーズに行ったけど同じくPerlRequireでcan't load perl fileと言われちゃいました
自分の場合はuse CGIで古いCGI.pmを読み込んでいたためでコレを削除して
C:/usr/site/lib/CGI.pmの方を読み込むようにさせたらエラーは出なくなりました。
とりあえずextra.plの内容を1行ずつ追加してどこでエラーになるか確認してみてはどうでしょう
0433432
2005/05/24(火) 15:37:49ID:???自分の経験から考えたこと
ActivePerlが/usr/localにインストールしてあるのなら
/usr/local/libを/usr/local/lib_bakとかにリネームしたらどうでしょう(削除や移動でもいいんですけど)
多分/usr/local/libと/usr/local/site/libで同じpmが混在してるために不具合が起こっているような気がします。
0435432
2005/05/24(火) 17:23:53ID:???ActivePerl5.8.6をダウンロードしてインストールしなおしてみました
結果ActivePerl付属のCGI.pmが古いためにエラーが起こっているようです
CPANからCGI.pm3.10をダウンロードして入れ替えたらOKでした
ppmから入手出来るのは2.91なので、最新版の3.10をCPANからダウンロードして
その中のCGI.pmを
C:/usr/local/lib/CGI.pm(perlのパスがC:/usr/local/bin/perl.exeの場合)
のようにコピーする
面倒であればextra.plのuse CGI ();の行を削除する
(extra.plはモジュールをプリロードするためのスクリプトなので、
モジュールの読み込みのオーバーヘッドを防ぐ目的以外では必要ない)
それにしても>>431がmod_perl2を導入しようと思ったのは何故か気になる
0437nobodyさん
2005/05/25(水) 11:36:35ID:C+b2OYt6CGI.pmの交換で、ようやくApacheの起動だけは出来る様になりました。しかし、それから先が進めません。
以下のスクリプトを作成して
#!C:/usr/local/bin/perl -w
# http://localhost/cgi-bin/sr.pl
use strict;
use vars qw ($D);
print "Content-type: text/html\n\n";
print "Hello \$ENV{'MOD_PERL'}=$ENV{'MOD_PERL'}:\$ENV{HTTP_USER_AGENT}=$ENV{HTTP_USER_AGENT}";
MOD_PERLが動くかどうか試したんですが、$ENV{'MOD_PERL'}に値が格納されないし
use strict;
use vars qw ($D);
が無い状態でも普通にブラウザに結果が表示され、どうみても普通のPerlの動きしかしません。
後、以下URLを元にHello.pm
http://perl.apache.org/docs/2.0/os/win32/config.html#Hello_World
をC:/usr/local/bin/site/lib/Apache2に作成しhttpd.confにも、それが動く様追記したんですが、そうするとHello.pmがロード出来ないとうエラーログが記録されApacheが閉じてしまいます。
一体、Apacheが起動出来る様になった後、一体どの様にすればMOD_PERLとしての動作が確認出来ますか引き続きご教授宜しくお願いします。
尚、XSLoader.pmも最新Verに交換しました。
>それにしても>>431がmod_perl2を導入しようと思ったのは何故か気になる
自身、数百kbにも及ぶ大規模CGIシステムを作成してて、かなりの高アクセスを前提にしている事もありこれを
長期に渡りPerlで書き上げてしまい、PHPで動くCGIシステムが普及しているさなか、レスポンスが遅いと同種
サービスの競争に負けてしまいそうになると思い、PHPはPerlより簡単だと言われてるけどもやった事ないんで
、それを習得してPHPに書き直す作業を行えば、CGIを作るのに膨大な年月が掛かった上に更に膨大な期間が必
要になると思い、その解決策という思いついたのがMod_perlなのです。
0438nobodyさん
2005/05/25(水) 12:23:31ID:???cgi-bin内はCGIとして動作する設定なんじゃないの
.plをmod_perlとして設定してあるならcgi-binの外に出せば
0439nobodyさん
2005/05/25(水) 13:52:40ID:???Yahooの掲示板でお前なんかやめちまえって言われてた人か?
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1398764 のレスは放置かいな。
一応まじめにレスしておくけど数百kbにも及ぶ大規模CGIシステムとやらはmod_perlで動くように作られているの?
魔法の箱じゃないんでそれ用の記述をしないと真価を発揮できないし動くかどうかも怪しいと思うぞ。
それ以前にサーバーのチューニングのほうが先でしょ?
試しにMSWin32に入れてみたけど設定を変更しただけで既存のファイルは入れ替えることなく動いたので、全く動かなければあんたの使い方が悪い可能性が高い。
__PACKAGE__ => ModPerl::ROOT::ModPerl::Registry::C_略_cgi_2dbin_test_2ecgi
MOD_PERL => mod_perl/2.0.0
MOD_PERL_API_VERSION => 2
SERVER_SIGNATURE => Apache/2.0.54 (Win32) mod_perl/2.0.0 Perl/v5.8.6 Server at 127.0.0.1 Port 80
SERVER_SOFTWARE => Apache/2.0.54 (Win32) mod_perl/2.0.0 Perl/v5.8.6
0440nobodyさん
2005/05/25(水) 18:18:22ID:C+b2OYt6438さん>
はい、スクリプトをcgi-binからhttpd.confで指定したAlias /perl/ "C:/Apache2/perl/"と同じDirに
移し替えたら、Mod_perlとして動かせました。動かすまで一週間掛かりました。
439さん>
>http://oshiete1.goo.ne.jp/kotaeru.php3?q=1398764 のレスは放置かいな。
一応、回答が戴けてるので...焦ってた事もあり失礼だと思ってます!
>Yahooの掲示板でお前なんかやめちまえって言われてた人か?
それは、どのスレッドですか?
>一応まじめにレスしておくけど数百kbにも及ぶ大規模CGIシステムとやらはmod_perlで動くように作られているの? ..
私の作成したCGIシステムがそのままMod_perlで動くとは思ってません。Mod_perlに慣れてから、動く様に訂正
するつもりです。私はアパッチは今まで利用してなかったので熟知してないのですが、サーバーのチューニン
グというのはどの様にすればいいのでしょうか?ちなみに私も__PACKAGE__ 、MOD_PERL、SERVER_SIGNATURE 、SERVER_SOFTWARE は__PACKAGE__は空値でしたが439さんと同じ値が取れました。
でMod_perlでテスト用スクリプトを走らせて見ましたが以下の問題が起きました。
以下の様に変数をインポートしても初期化されずブラウザをリロード毎に$Dが追加算される。
strict.pm&var.pmは変数の使用許可するだけの役割
#!/usr/local/bin/perl -w
use strict; use vars qw ($D);
$D+=5;
だから、自分で変数を初期化するルーチンを作りました。
sub EZ{my($s); for($s=0;$s<@_;$s++){$_[$s]="";}}
以下の様にライブラリを読み込んだらライブラリにpackage宣言されてもサーバーエラーになる。
require "as.pl"; &as::pre($D,$S);
後、MOD_PERLの場合、ライブラリへのpackage宣言は避けられないんでしょうか?
宜しくお願いします。
0441nobodyさん
2005/05/25(水) 21:36:48ID:C+b2OYt6ライブラリの事
PCでライブラリをrequireする際は、require "C:/Apache2/perl/as.pl";の様な
フルパスが必要でした。
バーチャルホスト設定でブラウザ実行の際、エラーログが取れる様になり解りました。
Mod_perl2.0でのライブラリへのpackage宣言は強要されてませんでした。
package宣言が嫌なら宣言不要です。
それにしてもMod_perlのブラウザテストて、メモリにスクリプトや変数値が
常駐するので、いちいちアパッチを起動しなきゃならなくて面倒ですね!!
でもライブラリがパッケージ化不要で使える事をしり、いささか実用化の希みが出ました。
・パスは絶対パスで(相対パスだとApacheのディレクトリ)
・変数の初期化にはmyを使う(varsはグローバル変数を指定する別物)
・ModPerl::RegistryのスクリプトやApacheハンドラは常駐が当たり前
mod_perlはスクリプトがクリーンなコードでないと凶器になります
先頭パスに-wを指定するとエラーログが相当なものになります
>>437と>>441の内容からしてOOPという概念がなくて、スクリプトの保守が大変そうだな、と思った
0443nobodyさん
2005/05/25(水) 22:41:01ID:???0444nobodyさん
2005/05/25(水) 23:01:15ID:C+b2OYt6外部でmy宣言した変数、配列はライブラリ先のサブルーチンまで引き渡せない。
で、変数は
sub EZ{my($s); for($s=0;$s<@_;$s++){$_[$s]="";}}
でどうにか初期化が簡潔的に出来る。
my($A)の代わりにEZ($A,$B)にすれば初期化された$Aでライブラリを越えてどこにでも
値が届く。
でも配列は以下のルーチンを試して見ましたが駄目でした。
EA(AB,CD);
sub EA{my($s); for($s=0;$s<@_;$s++){@$_[$s]=();}}
PUSH(@AB,'A');
PUSH(@CD,'B');
mod_perlはよほどの知識がないと使うとやばいですか?
やっぱ、普通のPerlでサービスにトライする他ないんかな、スピードはサーバー
の環境に期待する他無い!!
0445nobodyさん
2005/05/25(水) 23:43:04ID:???というより、perl自体の知識が無いようなのでね・・・。
多少意識して書けば、cgi→mod_perlの移行は、
難しくないのになぁ。
しかも、mod_perlはapache1つじゃきついとおもうよ。
0446nobodyさん
2005/05/26(木) 00:05:56ID:???コードをクリーンに書くことの意味に気づかないと思うよ。
でまあこの人はまさにその渦中にいると。
>EA(AB,CD);
>sub EA{my($s); for($s=0;$s<@_;$s++){@$_[$s]=();}}
>PUSH(@AB,'A');
>PUSH(@CD,'B');
>mod_perlはよほどの知識がないと使うとやばいですか?
これはひょっとしてシンボリックリファレンスを使おうとしている?
だとしたら、かなりやばい。
0447nobodyさん
2005/05/26(木) 10:44:11ID:/bJEfdxIPerlの利用暦は5年以上ですが、自身コードをクリーンに書く方ではないので
上級レベル迄には達してないと思います。
でもキャリアが長いので、Perlに関してはある程度ペラペラです。
沢山の大規模CGIをPerlで書いて来ましたが、気がつけばPHPの時代という憂き目に会って
しまってます!
mod_perlは慎重に使わなければいけませが、折角出合ったので初心に返って習得して
実用出来る様にしたいです。
変数、配列の一括初期化の方法は関数作らず共、こんなに簡潔に出来ました。
($D,$S,$Z)="";
(@vet,@popron,@btys)=();
これでmy宣言による使用域の制約から逃れられます。
0448nobodyさん
2005/05/26(木) 13:17:16ID:???> でもキャリアが長いので、Perlに関してはある程度ペラペラです。
質問1. my の他に our ってあるの知ってる?
質問2. プラグマは何種類くらい覚えてる?(マニュアル見ないで書ける?)
あとmod_perlがそもそも何なのか全然分ってないようだから、とりあえず
オライリーの「Apache拡張ガイド(上)」を読んでみることをおすすめする。
ttp://www.oreilly.co.jp/books/4873110181/
0449nobodyさん
2005/05/26(木) 14:15:01ID:/bJEfdxI痛いトコ付きますね!
2つの質問については正直不案内でした。
ourで変数を宣言してもMod_perlにては初期化されませんでした。
mod_perlは勉強する点が色々ありますね!
Perlがスラスラ書けると思い上がってました。
本の紹介どうもありがとうございます。
ついでに
use vars qw ($D $S $Z $SP @popron @vet @btys %in %rt);
($D,$S,$Z,$SP,@popron,@vet,@btys,%in,%rt)="";
の様に同じ配列が2つあるけど、それではスクリプトが複雑になるので以下みたく
@LIST=qw \($D $S $Z $SP @popron @vet @btys %in %rt);
use vars qw(@LIST)
@LIST=();
の様に配列名にパックして綺麗に書いて実行したいけどどの様にすれば宜しいでしょうか?
上の@LISTを使って実行しましたがエラーでした。
0451nobodyさん
2005/05/26(木) 17:16:42ID:???ttp://perl.apache.org/docs/1.0/guide/porting.html
0452nobodyさん
2005/05/26(木) 19:21:56ID:???0453nobodyさん
2005/05/26(木) 21:12:00ID:/bJEfdxIでも¥4,800もするのでは!!(汗)
どうしようか迷ってます。
でもMod_perlを使うには、それなりの勉強が必要だし、買おうか買うまいか?
でも折角だからMod_perl極めたいです。
0454nobodyさん
2005/05/26(木) 22:46:48ID:???RegistryPreforkはちゃんと使えんのかね?
0455nobodyさん
2005/05/27(金) 00:04:08ID:???"ModPerl::RegistryBB" is similar to "ModPerl::Registry", but does the
bare minimum (mnemonic: BB = Bare Bones) to compile a script file once
and run it many times, in order to get the maximum performance.
Whereas "ModPerl::Registry" does various checks, which add a slight
overhead to response times.
0456nobodyさん
2005/05/27(金) 09:07:23ID:???申し訳ないけど、多分、mod_perlうんぬんより、
perlの方をどうかした方がいいんじゃないのかな、、
use strict;で動く?
-wTでエラーでない?
0457nobodyさん
2005/05/27(金) 11:28:17ID:UfO/Wu7H>申し訳ないけど、多分、mod_perlうんぬんより、
>perlの方をどうかした方がいいんじゃないのかな、、
>use strict;で動く?
>-wTでエラーでない?
-wと変わりません。
use strict;
use vars qw ($D $S $Z $SP @popron @vet @btys %in %rt);
($D,$S,$Z,$SP,@popron,@vet,@btys,%in,%rt)="";
でMod_perl2.0は動作します。
後、exit;も使えます。
やっぱり、1週間掛かりで自分の手でMod_perlは動かせるようになったんだし、それなりに
興味が沸きました。
Mod_perlを是非学び極めたいです。
そうする事により、スクリプトを綺麗に書く自覚が芽生えて来ると思います。
投げたら何も進歩がありません!
0458nobodyさん
2005/05/27(金) 12:06:34ID:???・use vars は @ISA など一部の例外を除いて一切使わない
・全ての変数を my で宣言する
・スコープ外の変数をいじるときはハードリファレンスで参照渡しする
・変数がいつ消滅するかを明確に意識する
0460nobodyさん
2005/05/27(金) 13:00:56ID:UfO/Wu7HMod_perlのスレッドでMod_perlに関する話題を書き込んで何がいけないんですか?
納得に行きません!
0461nobodyさん
2005/05/27(金) 13:50:13ID:???mod_perlというより、perlの話題(質問)でしょ。
それも、かなり基本的な、、
多分、perl4の人なんだろうけど。
0464nobodyさん
2005/05/27(金) 15:48:29ID:???use warnings;
use sigtrap;
# use diagnostics;
0465nobodyさん
2005/05/27(金) 17:54:10ID:UfO/Wu7Huse strict;
my($D,@popron,%in);
の様に外部でMY宣言してもMYの有効範囲はあくまでもその宣言のあるスクリプト内。
よって、requireでロードされてるライブラリではグローバル変数のままの為
変数の初期化がされず値が増えてしまってる事が判りました。
やっぱ、以下のだと変数の完全初期化が果たせました。
use strict;
use vars qw($D @popron %in);
($D,@popron,%in)="";
何故、Mod_perlの初期化にmyで書くんだろう?
PS:この話題はMod_perlの事言ってるので、反感を買う筋合いは有りませんよね!
0467nobodyさん
2005/05/27(金) 18:00:06ID:???Apacheのサイトのドキュメントぐらい読んだらいいよ
mod_perl1.0の方からね
my と ourの違いとか
0468nobodyさん
2005/05/27(金) 18:06:25ID:???リロードしてわかるmyとourの違い
#!/usr/bin/perl -w
use strict;
print "Content-type: text/plain\r\n\r\n";
my $counter = 0; # Explicit initialization technically redundant
#our $counter = 0;
for (1..5) {
increment_counter();
}
sub increment_counter{
$counter++;
print "Counter is equal to $counter !\r\n";
}
0469nobodyさん
2005/05/27(金) 20:51:38ID:UfO/Wu7Hmy $counter = 0;
#our $counter = 0; でやったら
increment_counter();
内の処理が最初の1回だけ処理若しくはスクリプトを修正して1回目だけ
なされて、それ以降はスルーでした。よってスルー後の$counterの値は0でした。
逆にourを有効にさせればあらゆる$counterが追加算され値が増えていきます。
つまりmy宣言とour宣言の同名の変数は別物であり、ourはグローバル変数そのもの
0470nobodyさん
2005/05/27(金) 22:19:03ID:???ModPerl 以外の話題でスレが流れるのはカンベン。
0471nobodyさん
2005/05/27(金) 23:09:19ID:UfO/Wu7H私は、468の質問に回答しただけです。
Perlの勉強といってもMod_perlと関連性が非常にある訳ですか、それならココを
使っても問題ないでしょう?
Mod_perlを語るにPerlのプログラミングで説明する事は欠かせません!
469もMod_perlにてこのプログラムはどう動くかを述べてるのでMod_perlと大いに
関連があり、よってココを使っても攻められる筋はないと存じます!
0472nobodyさん
2005/05/27(金) 23:47:40ID:???普通に__END__が使えるようになったのかと思ったらこれがエラーになるってどういうことよ。
>>471
こんなところで油売ってる暇あったらPHPでも覚えれば?
0473nobodyさん
2005/05/28(土) 01:51:25ID:???ここでアホな質問続けてるやつはmod_perl以前の問題やん。
0475nobodyさん
2005/05/28(土) 10:34:31ID:xzv7Jv78Perlはある程度判ってるつもりです。5年以上もやって来たので。
私は、確かに常識が薄い人間ですが、ココではMod_perlで利用するというモラル
を心がけて使わせた戴いた結果がこの結果(攻められる)になりとても自分が悔しく
感じてます。
どうして、心がけて使いながら邪魔者にならなければいけなのか?
mod_perlだってperlの1つなのです。
で、471でもいいましたがmod_perlを語るにPerlは欠かせないんです!
1週間も素人の私の為に付き合っていただき、正直断念の1歩手前迄来ていたのが
mod_perlを動かせる様になったんです。
それは大変感謝しております!
mod_perlの設定は、一筋縄では行かないので、何度も有識者に尋ねて進めなければ
ココまで辿り着けなかったと思います。
ユーザの少ないmod_perlの議論が出来る様な所は他には見当たり難く、その為にも
ココの掲示板でのコミュニケーションが必要です。
この様な結果になってしまいましたが、どうか、そのモラルを心がけてココを使わせて
戴いた事だけは理解して戴きたいです。
今後も更にMod_perlを極めたいのでココを利用させて戴きたいです。
どうか宜しくお願いします。
0476nobodyさん
2005/05/28(土) 12:06:30ID:DRXi0Wgp0477nobodyさん
2005/05/28(土) 14:41:41ID:???5年はさすがに嘘だろ。せいぜい1ヶ月ぐらいしかやってないレベル。
mod_perlを極めたいなら、まずPerl自体を知らないと無理。
0478nobodyさん
2005/05/28(土) 14:52:27ID:???>>465のようにmyすら知らないのはPerl自体まともに書けないから。
myはmod_perl専用のキーワードではないわけだし。
他の人も言ってるが、まずPerlをまともに書けるようにならないと無理。
mod_perl特有の注意点を教えたところで全く理解できてないじゃないか。
0479nobodyさん
2005/05/28(土) 16:50:00ID:???まじめな話だが、グローバル変数をパッケージ名修飾で参照したり
シンボリックリファレンス使いまくったりとかなヌルいコードでもとりあえず走ってしまう、
てのが Perl の利点なのかもしれないが欠点でもあって、
困ったことに「ヌルさを極める」方向に走ることを「Perl上級者になった」と思っている人も少なくない。
でまあ、一度痛い目にあってようやく気づくわけだ。
mod_perl がその痛い目の代表例だろうと。
Blosxom の作者である Rael も「mod_perlで動かない」という事実に直面して初めて反省したみたいだし。
0480nobodyさん
2005/05/28(土) 17:25:40ID:???0481nobodyさん
2005/05/28(土) 17:46:53ID:xzv7Jv78Perlは本当に5年以上やってます。独学で、教則本を買ったり、オライリーのPerl
を購入したり、とほほwww入門を見たりで、数多くのCGIを作成して、自作のCGIで
実際にレンタルCGIも運営した事あります。
でも私のプログラムを見てもらったり書き方についてのコメントから見て周りからみれば
下手糞だと思われても仕方ないと思います。
後、Mod_perlの対抗馬ともいえるSpeedy.cgiというものもありました。
これも、Perlを高速化するプログラムで、もちろんメモリ常駐型で変数初期化に
気をつけなければなりませんが、以下URLを基に調べてみましたMod_perlに比べる
とプログラムの書き方にシビアにならなくてよさそうです。
http://www.maido3.com/server/option/perlcgi.html
http://perldoc.jp/docs/modules/CGI-SpeedyCGI-2.21/SpeedyCGI.pod
http://sunos.saita.ma/2ch-cgi-lw..html
0482nobodyさん
2005/05/28(土) 18:29:09ID:???無能だからだよ。
どれだけ勉強したって、免許持ってなかったら車は運転できないだろ?
対人コミュニケーションも大切だけど、技術的なコミュニケーションも
取れないんじゃウザがられてもしょうがない。
0483nobodyさん
2005/05/28(土) 18:48:13ID:???>>479の「パッケージ名修飾」「シンボリックリファレンス」の言葉の意味分からないだろ?
それを質問するのはここじゃない。perl初心者スレに行け。
0484nobodyさん
2005/05/28(土) 19:01:07ID:???空気が読めない奴は、それだけで犯罪だよ。
0485nobodyさん
2005/05/28(土) 21:11:26ID:???理解できてないじゃないか!
と、おれはいいたい。
0486nobodyさん
2005/05/28(土) 21:14:27ID:xzv7Jv78>無能だからだよ。
>対人コミュニケーションも大切だけど、技術的なコミュニケーションも
>取れないんじゃウザがられてもしょうがない。
新しい事を知るには、最初は初心者、知識もほとんどありません!
Mod_perlを極めたくても最初は無知なのです。
ましてはあまり流行ってないMod_perlを知ってる人は数少ないし、Mod_perlのページを
見ても自力で覚えられるに限度があります。そして、Mod_perlの議論が出来る掲示板なんて
ここ以外どこにありますか?!
Mod_perlの知らない人間がその事を学びたく、問答して何が悪いんですか?
Perlも5年以上やってきましたので、確かに私は書き方が荒く、周りからみればPerlの
書き方が未熟と思われても致し方ないと思いますが、ここまで経験があるし、自己主観
ですがPerlの腕前を見てみても、Mod_perlを試してみてもいいレベルには達していると思います。
>「パッケージ名修飾」「シンボリックリファレンス」の言葉の意味分からないだろ?
これらは知ってます。
確かに掲示板の空気は読むのは苦手です。
改めて申しますが、モラルを意識して書き込んだ事だけは理解して下さい。
これで邪魔者扱いされる様ななら、ここの掲示板は不親切過ぎると思います。
空気の読み方や技術的なコミュニケーションは、ココでの事の様に簡単ではない場合も
あります、あからさまにウザがる以前に少し親切な扱いをされてもいいのではと思います。
これだけ反論、自己の事情と利用した際の態度を述べました。
どうかココの掲示板の議論に今後とも参加させて下さい!
0487nobodyさん
2005/05/28(土) 21:41:57ID:???大体なんでそんなにmod_perlにこだわるのさ。
起動するたびに大きなファイルを丸ごと読み込むようなことしてたらmod_perlなんか意味無いよ?
0488nobodyさん
2005/05/28(土) 21:43:24ID:???他人の話を聞かない奴が議論できるとは到底思えないが?
>Mod_perlを極めたくても最初は無知なのです。
mod_perl云々の前にPerl自体が初心者レベルなのだから、まずPerlの基礎をやれと言っとるんだ。
それができれば自然にmod_perl化できる。というかPerlとmod_perlを別言語だと思ってないか?
Perlがちゃんとできればmod_perl化に苦労はいらない。それができないってことはPerlができてないんだ。
0489nobodyさん
2005/05/28(土) 21:53:24ID:???0490nobodyさん
2005/05/28(土) 22:17:47ID:???0491nobodyさん
2005/05/28(土) 23:27:54ID:haTNBXhi0492nobodyさん
2005/05/29(日) 05:16:08ID:???みたいな奴だな。
0493nobodyさん
2005/05/29(日) 11:45:03ID:LobLqbIr0494nobodyさん
2005/05/29(日) 19:13:32ID:???たとえば単純に、
$vi test.cgi
-----
#!/usr/bin/perl
use strict;
use Apache::RequestRec ();
use Apache::Const qw(:common :http);
my($r) = shift; # $r = Apache2::Apache::RequestRec Object
my($headers_out) = $r->headers_out;
$r->status_line('206 Partial Content');
$r->status(HTTP_PARTIAL_CONTENT);
$headers_out->{'Accept-Ranges'} = 'bytes';
$headers_out->{'Content-Length'} = '10';
$headers_out->{'Content-Range'} = "bytes 0-9/10";
$r->content_type('text/plain');
$r->print("0123456789");
return(OK);
-----
$chmod 755 test.cgi
Telnetで
$telnet localhost 80
GET /cgi-bin/test.cgi HTTP/1.1
Host: localhost
Range: bytes=0-9
とすると、レスポンスが
0495nobodyさん
2005/05/29(日) 19:14:09ID:???-----
0123456789<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>206 Partial Content</title>
</head><body>
<h1>Partial Content</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator,
xxxx@xxxx.tld and inform them of the time the error occurred,
and anything you might have done that may have
caused the error.</p>
<p>More information about this error may be available
in the server error log.</p>
</body></html>
Connection closed by foreign host.
-----
のように、データの後にエラーのHTMLが吐き出されてしまいます。
error_log は LogLevelを debug にしても何も書き出されませんでした。
0496nobodyさん
2005/05/29(日) 19:14:51ID:???更に続きです。
ちなみに、$r->status() を
$r->status(HTTP_OK);
にすると正常?に動作はしますが、ステータスが 200 なので、
約束違反のようで心配です、
まさか、mod_perl はステータスを 206 にするとエラー扱いされる、
または使えないのでしょうか?
それとも、根本的にやり方がおかしいのでしょうか。
mod_perl を使わないで以下のソースで動作させると問題ありませんでした。
-----
#!/usr/bin/perl
use strict;
print "Status: 206 Partial Content\n";
print "Accept-Ranges: bytes\n";
print "Content-Length: 10\n";
print "Content-Range: bytes 0-9/10\n";
print "Contet-Type: text/plain\n\n";
print "0123456789";
-----
Apache/2.0.52 + mod_perl/1.99_16 + Perl/v5.8.0 の環境です。
長々と失礼致しました。
何かヒントを頂ければ幸いです。
よろしくお願いします。
0497nobodyさん
2005/06/04(土) 06:49:29ID:???0499nobodyさん
2005/06/10(金) 21:29:50ID:???mod_perl2 配下で動かしたスクリプトのカレントディレクトリが
apache2 のホームになるのを何とかしたいんだけど、方法解る人いる?
できれば、スクリプト起動時にそのスクリプトが置いてあるディレクトリに
移動させたいんだけど
あと、インストールの時、ここを見ながらインストールしたんだが
ttp://multix.jp/html/memo/030524.html (トップページ見るとチョットひくがw)
このページの start.pl の2ヶ所が俺の環境だと動かないからコメントアウトしたんだけど
use Apache2 ();
use ModPerl::Util ();
use Apache::RequestRec ();
use Apache::RequestIO ();
use Apache::RequestUtil ();
# use Apache::Server (); ← 動かない
use Apache::ServerUtil ();
use Apache::Connection ();
use Apache::Log ();
use Apache::Const -compile => ':common';
use APR::Const -compile => ':common';
use APR::Table ();
# use Apache::compat (); ← 動かない
use ModPerl::Registry ();
use CGI ();
これって、俺の mod_perl2 がオカシイって事だよね。何処から持ってくればいいんだろう…。
0500nobodyさん
2005/06/11(土) 07:30:12ID:???本家のドキュメント見た方がいいと思う
tp://perl.apache.org/docs/2.0/os/win32/config.html
モジュールはCPANから
0501494
2005/06/11(土) 15:11:32ID:???Apache API ではなく、CGI.pm を使えば問題ないみたいです。
-----
#!/usr/bin/perl
use strict;
use CGI;
my($q) = new CGI;
print $q->header(-type => 'text/plain',
-status=>'206 Partial Content',
-accept_ranges => 'bytes',
-content_length => '10',
-content_range => 'bytes 0-9/10');
print "0123456789";
-----
CGI.pm なので重たくはなると思うけど、mod_perl を使わないよりは
比べ物にならないくらいマシなので、これでいきます。
それにしても・・・API の使い方が間違っているのかな?
0502nobodyさん
2005/06/27(月) 23:40:52ID:???Apache2.pmも無くなったよ。
0503nobodyさん
2005/11/24(木) 18:30:18ID:5fWGjQ1LModPerl::Registryな環境で動作させた場合、以前の
Apache::Registryとは、結構違う感じなのでしょうか?
動作しない場合もコードによって出てきそうな気が・・・。
ご存知の方、アドバイスお願いいたします。
0504nobodyさん
2005/11/25(金) 23:26:51ID:???Apache::reload辺りが変更になってハマった記憶があるけど。
0505503
2005/11/26(土) 01:05:31ID:???情報ありがとうございます。なるほどそうでしたか!
今、Apache2.0 + mod_perl1.99な環境を作っています。
特に、CatalystやCGI::Applicationの動作が問題ないか
気になっていました。
0506nobodyさん
2005/11/28(月) 21:12:47ID:c6nvYUNhmod_perlには
CGI::Session Apache::Session
どちらを使うのが効率良いのでしょうか?
0507nobodyさん
2005/11/30(水) 17:44:26ID:s8bRu2i20508nobodyさん
2005/11/30(水) 17:59:22ID:???それくらいだったら自分で取ってみたら?って事で。
他のモジュールとの相性もあるだろうし。
おれはCGI::Applicationをよく使うから、CGI::Sessionの
ラッパーのプラグインを使ってるけど。
0510nobodyさん
2006/01/02(月) 11:18:27ID:LIsIGKJ1use strict でエラーが無ければ mod_perl に修正無しで動くとは限らない
という認識で OK ですか?
逆に、
mod_perl 使っててエラーが無ければ、mod_perl 環境外で修正無しで動く
もんなんでしょうか?
0511nobodyさん
2006/01/03(火) 02:21:30ID:???どっちでも修正は必ずいるよん。
修正する必要がないように作ってあるものはmod_perlの恩恵を受けられないよん。
0512nobodyさん
2006/01/03(火) 14:53:51ID:???両対応で書いてるけど。
0513nobodyさん
2006/01/07(土) 02:56:13ID:???アパッチが性能向上に励んでいるのに足引っ張りまくり。
mixiがmod_perl使ってせいで重いのは当然だな。
試しに作る分にperlはありだけど、運用するならもっと軽い実装方法とか共同鯖なら実行プロセスのセキュリティのことを考えた方がいいよ。
0514nobodyさん
2006/01/07(土) 09:52:35ID:???このひとPerl vs Ruby vs Python vs PHPスレにも居たJava厨?
0515nobodyさん
2006/01/07(土) 12:43:10ID:???0517nobodyさん
2006/01/08(日) 01:16:19ID:???mod_perl と TOMCAT なら mod_perl の方が速いという結果が出てるけど
ま、CでApacheモジュールとして作り込むのが一番速いだろうけど、
開発コストやセキュリティ的に現実的じゃないしな。
0518nobodyさん
2006/01/17(火) 16:12:00ID:???apacheを肥大させたくないのならfastcgi
少人数でコストを抑えて速度を求めるならmod_perlはグッドチョイスだと思うよ
0519nobodyさん
2006/02/10(金) 12:07:43ID:???エロイ人教えてくれ。
0520nobodyさん
2006/02/10(金) 14:02:17ID:???0521nobodyさん
2006/02/10(金) 16:31:37ID:???0522nobodyさん
2006/02/16(木) 19:42:32ID:???今回、mod_perl2 に手を出してみようと思ったんですが、
mod_perl2 はおろか mod_perl1 も初めてです。
Apache2 を使う都合上、mod_perl2 で開発になるんですが、
色々とサイトを調べても mod_perl2 の情報は少ないのですね…。
みなさんはどこで mod_perl2 の勉強をされたのでしょうか?
というかその前に mod_perl から勉強した方がいいというオチ!?
mod_perl の 2 と 1 の違いもあまりわからない初心者ですが
何か有益なサイトがありましたら教えてください。
とりあえず http://perl.apache.org/docs/1.0/guide/porting.html で mod_perl1 を学んで、
http://modperlbook.org/html/part5.html で mod_perl2 を知ろうかと思ったんですが
英語なので早くも挫折しそうです ^^;;;^^;^;^;^^
0523nobodyさん
2006/02/16(木) 20:16:42ID:???0524nobodyさん
2006/02/17(金) 01:59:05ID:???0525nobodyさん
2006/02/17(金) 02:16:31ID:XCO/AQtb0526nobodyさん
2006/02/17(金) 15:52:42ID:???日本語情報が欲しいなら、オライリーのApache拡張ガイドを買った方がいい。
ただ内容がmod_perl1だから、2については本家ドキュメントを読むしかないね。
1と2は結構違うけど、単にRegistryで動かすんなら、
変更があったPerlハンドラに気をつければ、1と大して変わんないよ。
0527522
2006/02/21(火) 18:55:01ID:???レス有難うございました。
あれから色々と調べていますが、
mod_perl1 の文書と mod_perl2 の文書を
行ったりきたりで結構混乱してます。。
(ハンドラがよくわかってないです)
そもそも post/get 関わらずクエリを取る場合、
どのやりかたが一般的なのでしょうか?
1. CGI.pm
2. Apache2::Request;
3. Apache2::RequestRec (これはpostが取れない??)
また、ファイルのアップロードを受け付ける場合は 1, 2 だけ??
Apache関連モジュールを使わなくても
CGI.pm で普通にコーディングしたら動いたので、
そのままCGIを組むように作ってもmod_perlの温床に預かれるのでしょうか。
0528nobodyさん
2006/02/21(火) 20:10:21ID:???恩恵があるかどうかは、CGI.pmのソース見てみればわかるよ。
バージョンが古いとだめかも知れないけどね。
0529527
2006/02/21(火) 20:42:11ID:???最新の CGI.pm は mod_perl 環境かどうかで
切り替えて use してますよね。
CGI.pm を使って普通に strict なソースを組めば
(プログラムのパスなどの注意は別として)
問題なく mod_perl2 が使えるって考えで正しいでしょうか?
変に難しく考えすぎてたのかな…
Apache2の設定も
<Files *.pl>
SetHandler perl-script
PerlHandler ModPerl::Registry
Options +ExecCGI
PerlSendHeader On
Order allow,deny
Allow from all
</Files>
この程度です。
0530529
2006/02/21(火) 22:06:48ID:???PerlModule ModPerl::Registry
PerlModule Apache::DBI
#PerlModule CGI
PerlRequire /var/www/lib/startup.pl
<Files ~ "\.pl$">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
</Files>
いろんなサイトにはExecCGIも書いてあったのですが、
この場合不要ですよね…
0531nobodyさん
2006/02/22(水) 03:05:01ID:???http://perl.apache.org/docs/1.0/guide/config.html
> The Options directive accepts various parameters (options),
> one of which is ExecCGI. This tells the server that the file is
> a program and should be executed, instead of just being displayed like
> a static file (like HTML file). If you omit this option then
> the script will either be rendered as plain text or else it will
> trigger a Save-As dialog, depending on the client's configuration.
調べてみたけど、出力したものをHTMLとみなすために(?)一応、要るのだと思う。
0532530
2006/02/23(木) 16:34:46ID:???有難うございます。やっぱり必要だったのですね…。
コメントアウトしても動いていたので不要なものなのかと思っていました。
ちなみに mod_perl2 で使うモジュールについてなんですが、
ドキュメントで PerlModule と PerlRequire が同義であると知りました。
なので、PerlModule を使わずに全部 startup.pl 内で定義しようと思ったのですが、
use strict; use warning; の定義については効果ないのですね。
(どのスクリプトでも my 使わない変数が使えてしまいました)
CGI.pm とかは、スクリプト内で use CGI; しなくても使えたのですが。
それと、mod_perl2 で使われる標準モジュールがよくわからないのですが、
Apache2.pm は必ずしも必要なのでしょうか?ModPerl::Registry, CGI.pm だけで動作しているのですが、
サイトによっては use Apache2 が必要と書いてあったりします。
(使いたいのは、基本的な関数(exitなど)やサーバ環境変数程度ですが、現状問題なく動いてます)
(CGI.pm あれば事足りるって感じなのかな)
また、exit 関数が自動で ModPerl::Util::exit に割り当てられているようですが、
その場合は use ModPerl::Util; しなくてもいいのでしょうか?
うーん。。アホな質問ですんません。
【環境】
OS: CentOS4.2, Perl: 5.8.5, Apache: 2.0.52, mod_perl: 2.0.2
0533nobodyさん
2006/02/23(木) 17:09:07ID:???0534nobodyさん
2006/02/23(木) 21:49:49ID:???exit関数は、昔はCGI.pmに定義されてたこともあったけど、
今はどうなってるのかさっぱり。
ドキュメントも無いし…。
0535nobodyさん
2006/02/23(木) 22:21:53ID:???何らかのフレームワークに乗っかればいいだけやん。
0536nobodyさん
2006/02/24(金) 12:51:51ID:???0537nobodyさん
2006/03/01(水) 17:15:17ID:???最後にちゃんと $dbh->disconnect(); しないと危険?
0538537
2006/03/01(水) 17:26:08ID:???最初にDBにつないでデータ取ってきてそれをごにょごにょやって
ある条件のときにリダイレクトなりエラーなりをさせたときに、
その前にDBを disconnect するのを忘れちゃうんですよね
0540ヽ(´ー`)ノ ◆.ogCuANUcE
2006/03/01(水) 20:04:52ID:???危険つーか、新しくユーザからリクエストがある度にコネクションを開いて
そのままになったら、いつかは DB 側の限界が来てエラーになる…かも。
自前でコネクションプーリングしてれば別だけど、disconnect() しとけば?
> その前にDBを disconnect するのを忘れちゃうんですよね
……。
0541537
2006/03/01(水) 20:28:51ID:???ですよね…
ちなみに、mod_perl + DBI のときは PrintError と RaiseError はどうしてるんですか?
RaiseError => 1 に関わらず、DB接続後にdieされたときには
mod_perlでも自動でdisconnect されるんでしょうか?
…であれば、die しているところでは明示的にdisconnect不要ですよね
0542nobodyさん
2006/03/02(木) 00:14:54ID:???dieで閉じるのも変数のスコープから外れてこれが動くだけでしょ。
0543ヽ(´ー`)ノ ◆.ogCuANUcE
2006/03/02(木) 00:37:49ID:???DBI のマニュアル読んできた。デフォルトでは DESTROY が動けば閉じてくれる
ようだ。InactiveDestory => 1 だと DESTROY でも閉じないようだよ。
スコープから抜けたりして DESTROY が動けば閉じられるけど、mod_perl 下では
そうじゃないケースも簡単に作れてしまう。
やっぱり disconnect() するか Apache::DBI を使う方がいいと思う。
> ちなみに、mod_perl + DBI のときは PrintError と RaiseError はどうしてるんですか?
エラー受けたら再試行やロールバック。
ユーザにごめんなさいするページを表示して管理者にメール。
ログ見てデバッグ。
0544nobodyさん
2006/03/02(木) 11:29:14ID:???Apache::DBI を使えば、例えperlのソースに disconnect() があってもそれは何もしないってマニュアルで見ました。
ってことは apache のプロセスが終了したときに自動で disconnect() されるんかな?
一度、Apache::DBI で組んでたんですけど、コネクションがいくつか立ち上がってるときに、
コマンドラインでテーブルを drop しようとすると、何もエラーが出ずに返ってこなくなりました。
恐らく drop する時にはそのテーブルを参照しているコネクションが閉じられてないとダメなんでしょうね。
(apache を再起動してコネクションを開放したらdrop できました。)
ただ、レコードの追加・更新・削除はコネクションあっても問題なくできて、
apache 側でも更新されたレコードはすぐに参照できたんですよね。
その辺がしっくりこなくて、Apache::DBI を使うのをちょっとやめようかなという気になってしまってました。
でも逆に DBI を使うと、ちゃんと disconnect() しないとコネクションが張られ続けるって問題が…
(エラーチェックはどっちにしてもちゃんとやれってことですね。)
0545ヽ(´ー`)ノ ◆.ogCuANUcE
2006/03/02(木) 16:14:08ID:???> コマンドラインでテーブルを drop しようとすると、何もエラーが出ずに返ってこなくなりました。
……。
0546544
2006/03/02(木) 16:47:20ID:???なんか不慣れ丸出しですんません。
最初コネクションが原因だとわかるのに数時間はまりましたw
Webを放置すると、同じテーブルを再構築したりしたのに現象がおきなかったので。。
(そりゃ、コネクションの問題であれば一定時間経過しちゃえば現象なくなりますわ)
とりあえずApache::DBI使ってdisconnectをまかせてみます。
0547nobodyさん
2006/03/08(水) 07:55:23ID:???たまにソースを変更した箇所が反映されていなかったりエラーが出たりして
結局htttpd自体をリロードするハメになってしまいます
これを回避する方法はありますか?
0548nobodyさん
2006/03/08(水) 18:08:50ID:???{
my $hoge;
}
my $hoge;
のようなことをやると、以下のエラーが出たり出なかったりします。
Can't use global $0 in "my" at (eval 114) line 1, near "local $0 "
BEGIN not safe after errors--compilation aborted at xxx.pl line xx.
※line xx の行は「use strict;」 と書かれています。
mod_perl ではたとえブロックが違っていても、
同じ変数名は my で定義できないのでしょうか?
0550nobodyさん
2006/03/10(金) 00:53:06ID:???理解出来ないならおまいにmod_perlは無理。業者に丸投げしとけ。
0551nobodyさん
2006/03/10(金) 08:12:24ID:???随分前にmod_perl+Apache::Reload+CDBIだけど同じことに悩まされてぐぐったら
ttp://hori-uchi.com/archives/000247.html
こういう事らしい
mod_perl2+Apache2::Reloadで確認してないけど同じなのでは?
適当でごめんね
>>548
>Can't use global $0 in "my"
ってエラーにでてるじゃん
マジック変数$0をmyすんなって怒られてるんでしょ
mod_perlは関係ナス
0553nobodyさん
2006/03/10(金) 11:42:37ID:???0554nobodyさん
2006/03/10(金) 11:46:02ID:???0556nobodyさん
2006/03/12(日) 21:33:04ID:???アパチと一心同体なのにな。
サービスによってはmod_xxx書いた方がいいし。
0558nobodyさん
2006/03/12(日) 23:27:09ID:???0559nobodyさん
2006/03/16(木) 19:48:08ID:???GATEWAY_INTERFACEにはCGI-Perlと値が入るようですが入りません。
ですが、MOD_PERLは定義されています。
confで指定したパスで今まで使ってたcgiがそのままでは動かなかったんで修正したら動きました。
こんなもんです?
0560nobodyさん
2006/03/17(金) 00:38:05ID:???> MP_COMPAT_1X
> MP_COMPAT_1X=1 or a lack of it enables several mod_perl 1.0 back-compatibility features, which are deprecated in mod_perl 2.0. It's enabled by default, but can be disabled with MP_COMPAT_1X=0 during the build process.
> When this option is disabled, the following things will happen:
> Environment variable GATEWAY_INTERFACE will be enabled only if PerlOptions +SetupEnv is enabled and its value would be the default:
> CGI/1.1
> and not:
> CGI-Perl/1.1
> The use of $ENV{GATEWAY_INTERFACE} is deprecated and the existance of $ENV{MOD_PERL} should be checked instead.
> MP_COMPAT_1X
> MP_COMPAT=1若しくはmod_perl1.0のバック互換性仕様の有効性が欠如するとmod_perl2.0には受け入れられません。デフォルトによって使用かのうですが構築中MP_COMPAT_1X=0によって使用不可となります。
> この条件が使用できないと次ぎのことが起こります。
> 環境変数GATEWAY_INTERFACEはPerlOptions +SetupEnvが使用可能でありその値がデフォルトのみにときに使用可能となります。
> CGI/1.1
> and not:
>
> CGI-Perl/1.1
> $ENV{GATEWAY_INTERFACE} は使用できません。そして代わりに $ENV{MOD_PERL} の存在がチェックされます。
0561nobodyさん
2006/03/25(土) 07:34:06ID:???ModPerl::Registryとの速度比較した人います?
0562nobodyさん
2006/03/25(土) 07:47:59ID:???0563nobodyさん
2006/03/30(木) 16:24:26ID:???サイトによってDBの接続先を変えたいと思ってます。
(両方とも同じスクリプトでDB接続先だけが違う)
この場合、うまいスクリプトのまとめかたはありますでしょうか?
理想としては、1つの外部ファイルにそれぞれのDB設定を
まとめて書いておいて、%ENV等の環境によって
使う変数を切替えるのがベストですが、mod_perl なので
外部ファイルは最初に全部キャッシュされてしまい、
どちらのDBにつながるのかがランダムになってしまいます。
0564nobodyさん
2006/03/30(木) 20:10:44ID:???レン鯖でランダムになる訳ないだろ。
0565nobodyさん
2006/03/31(金) 13:32:23ID:0vIICn80http://perl.apache.org/docs/2.0/user/config/config.html#C_Parent_
じゃだめ?
0567nobodyさん
NGNG0568nobodyさん
2006/04/05(水) 13:41:03ID:???0569nobodyさん
NGNG0570nobodyさん
NGNG0571nobodyさん
2006/04/05(水) 18:46:07ID:???負荷を計測みればいいのでは。
mod_perlはApacheの子プロセスにPerlのインタプリタを埋め込むので、メモリを
大きく消費します(ここのところははてなおやが詳しい。下は古い記事ですが)ので
安易に導入すると泣きを見るかもしれません
http://www.sixapart.jp/movabletype/developers/naoya/archives/2004/10/post.html
SpeedyCGIはサーバーの外でPerlインタプリタが常駐します
それで探しているものがベンチマークというわけで以下がひとつ(ただしりなざう)
http://tbox.jpn.org/wiki/linuzau/wiki.cgi?LinuxZaurus%B8%FE%A4%B1%A5%D3%A5%EB%A5%C9%2FApache%2BSpeedyCGI
0573nobodyさん
NGNG0574nobodyさん
2006/04/06(木) 18:36:05ID:???0575nobodyさん
2006/04/06(木) 19:51:29ID:???mod_perl は Perl スクリプトを高速実行「する為の」道具ではなく
Perl スクリプトを高速実行「させる事もできる」道具。
http://d.hatena.ne.jp/keyword/mod_perl
0576nobodyさん
NGNG最近は安定したんですかね。
0577nobodyさん
2006/04/06(木) 20:52:00ID:???ageんな
0578nobodyさん
2006/04/06(木) 22:57:19ID:???メモリが足んなくなったんじゃないか?
httpd.confさらしてみそ
"use strict;"がついていないと期待どおりの動作にならない
メモリがいくら積んでもスクリプトが悪いとメモリを大きく消費してしまう
(Apache1.3ではApache::PerlRun、Apache2ではModPerl::PerlRunであれば
スクリプトが悪くてもインタプリタが常駐するだけなので一応ある程度高速に
動作するがexit関数を使うとApacheごと落ちてしまう)
まさかmod_perlをApacheモジュール版のPHPと同じように捉えているのか
0580nobodyさん
2006/04/07(金) 00:50:07ID:45h+7cJz別にstrictプラグマが必須なわけじゃないし。
0581nobodyさん
2006/04/07(金) 01:45:40ID:???0582nobodyさん
2006/04/07(金) 05:42:19ID:???鯖の前まで逝って復旧処理が必要になる。
あのmixiでさえ、speedyじゃなくてmod_perl使ってるくらいだからなあ。
0583nobodyさん
2006/04/07(金) 06:47:18ID:???使ってるくらいだから何なんだ?
素直にわかりませんって言えばいいのに。
0584nobodyさん
2006/04/07(金) 08:27:12ID:???http://daemoninc.com/SpeedyCGI/ はリンク切れだし、
http://search.cpan.org/~horrocks/
http://sourceforge.net/projects/speedycgi/
を見ると、2.22 が 2003/10/11 に出たのが最後で、2年半も
更新されていないという点に多少不安を感じるけど、特に問題
はないの?
0585nobodyさん
2006/04/07(金) 08:56:03ID:???0586nobodyさん
2006/04/07(金) 08:56:47ID:???そうでもないよね。
0587nobodyさん
NGNG0589nobodyさん
2006/04/07(金) 11:40:32ID:???最近のは大丈夫なんじゃなかったっけ?
でもalarmとか使うとhttpdプロセスごと落ちたかも。
0590nobodyさん
2006/04/07(金) 11:42:39ID:???こけるときゃ一緒だぜ
0591nobodyさん
2006/04/07(金) 12:44:12ID:???0592nobodyさん
2006/04/07(金) 13:12:07ID:???Apacheモジュールを書くことが可能な点だと思う。
たとえば、掲示板スクリプトがあったとして、
アクセス規制をアクセス制御フェーズのモジュールにしてしまえば、
スクリプトからアクセス規制のコードをほとんど除けるとかね。
0593nobodyさん
2006/04/07(金) 13:23:06ID:???アプリ鯖でわざわざやることもなかろう。
0594nobodyさん
2006/04/07(金) 13:25:22ID:???0595nobodyさん
NGNGspeedyの存在を知らなかったのでmod_perlにしてしまっただけで、、
Apacheモジュールをperlで書けるようになるのは、
面白いかなぁと思うのですが、
サンプルスクリプトをあまり見ないので、
どうやって作るのかよくわからないのです。
0596nobodyさん
2006/04/07(金) 13:38:42ID:???> どうやって作るのかよくわからないのです。
Sledge とか Catalyst とか使ってればよくなくね?
0597nobodyさん
2006/04/07(金) 13:44:58ID:???http://perl.apache.org/
ここのドキュメンテーション100回音読しろよ
0599nobodyさん
2006/04/07(金) 13:49:40ID:???0600nobodyさん
2006/04/07(金) 13:51:57ID:???0601nobodyさん
2006/04/07(金) 14:12:45ID:???0602nobodyさん
2006/04/07(金) 14:19:06ID:???0603nobodyさん
2006/04/07(金) 14:22:35ID:???俺は読めないけどフィーリングて凌いでるわ
0604nobodyさん
2006/04/07(金) 14:25:03ID:???以外の煽りに反応する馬鹿ww
0605nobodyさん
2006/04/07(金) 14:28:02ID:???0606nobodyさん
2006/04/07(金) 16:27:40ID:???0607nobodyさん
NGNG音読してもサンプルスクリプトが見つかりませんでした。
0608nobodyさん
2006/04/07(金) 17:44:36ID:???Apache拡張ガイド(上)
http://www.amazon.co.jp/exec/obidos/ASIN/4873110181/
↑の本のWebサポート(一部読めます)
http://www.modperl.com/
ぐらいかなぁ。
0609nobodyさん
2006/04/07(金) 18:00:28ID:???ttp://perl.apache.org/docs/2.0/user/index.html
ここの Part III: Coding は?
0610nobodyさん
2006/04/07(金) 19:10:52ID:???mod_perlだと落ちる原因わかったんですか?
0611nobodyさん
NGNG0612nobodyさん
NGNGメモリリークのテストで失敗してしまいました。
こういうのはどうしたらいいんでしょうか、、、
t/be_memleak..........ok 1/2 mem usage went from 2628K to 6256K in 1000 runs
t/be_memleak..........FAILED test 2
Failed 1/2 tests, 50.00% okay
0614nobodyさん
NGNGメモリリークが起きてるなら、
それを直したほうがいいかなぁ、、と。
0615nobodyさん
2006/04/09(日) 12:26:29ID:???検索したらこんなのありました。
ttp://rt.cpan.org/Public/Bug/Display.html?id=13521
去年の7月に最初に報告されてからずいぶん放置されてたようだけど、
4/2に着手になってるからいずれ直るかも?
0616nobodyさん
2006/04/09(日) 12:43:20ID:???0617nobodyさん
NGNG0618nobodyさん
2006/04/09(日) 18:42:07ID:???0619nobodyさん
NGNG0620nobodyさん
2006/04/10(月) 03:16:42ID:???使ってみて具合が悪かったら自分でごにょごにょして作成者やメンテしてる人にパッチ送ったり
0621nobodyさん
2006/04/20(木) 15:40:54ID:???httpd.confにApache::Registry等を書き込む方法を説明した
サイト等があれば是非教えていただきたいのですが。
このままだと多分mod_perlが入っていない状態と同じであると思われるので…
0622nobodyさん
2006/04/21(金) 11:54:36ID:???サイトは知らないけど、こんな感じでOK。
但し、Apache2+mod_perl2での例。
LoadFile "c:/Perl/bin/perl58.dll"
LoadModule perl_module modules/mod_perl.so
<Directory "c:/mod/perl/path">
SetHandler perl-script
PerlHandler ModPerl::Registry
Options +ExecCGI
</Directory>
0623nobodyさん
2006/04/21(金) 12:44:01ID:???有難うございます。
しかし、やってみた所、どうもInternal Server Errorが出てしまいます。
Windowsにはパーミッションの概念がないので、
confのどこかがおかしいのは明白なのですが。
状況が分かりにくいと思いますので、上記の修正前のhttpd.confを丸ごと上げました。
もし宜しければ、修正点などを指摘して頂けないでしょうか。
ttp://www.uploda.net/cgi/uploader4/index.php?dlpas_id=0000001608
pass:conf
0624622
2006/04/21(金) 18:19:24ID:???httpd.conf を見ましたが、特にエラーとなる要因は無いと思います。
ただ、
PerlHandler ModPerl::Registry
といった記述が無いので、このままではmod_perlは動作しないと思いますが、
修正後は入れているということですよね?
apachectl -t
で何かエラーが出ますか?
リクエスト時の error.log には何が記録されてますか?
テストしているソースコードは他のmod_perl環境で動作した実績はあるのでしょうか。
0625nobodyさん
2006/04/22(土) 12:41:09ID:???confファイルを見て頂き、大変恐縮です。
上記のスクリプトは修正前なので、実際は何れの<Directory>の中に
PerlHandler等の記述をした上で行います。
apachectlコマンドは、binフォルダ内にもApacheフォルダ内にもexeが存在しないため、
多分ですが、Win32環境では使えないのでは、と思っています。
実際に、既存の<Directory>内に(C:/wwwとC:/www/user/*)
SetHandler perl-script
PerlHandler ModPerl::Registry
を追加してみたものの、今度はWebページすべてが404エラーとなり、
cgiへのパスを入力した所、Internal Server Errorが出ました。
尚、その場合におきまして、error.logには、
cgi-lib.plが@INC内にないというエラーが出ましたので、
早速@INCに当たる部分(C:/Perl/lib/)に、公式より落として入れてみたものの、その後も
[error] [client 192.168.11.2] Attempt to serve directory: C:/www/
のようなエラーが出たまま、cgiファイルは勝手にソースを
ダウンロードさせるような形になってしまいました。
その際にも、相変わらずWebページは404エラーのままでした。
0626nobodyさん
2006/04/23(日) 13:51:13ID:???0627nobodyさん
2006/04/23(日) 13:54:33ID:???print q{Content-Type: text/plain}, map {qq{$_=$ENV{$_}\n}} keys %ENV
という内容のファイルで試してみ。
何か汚そうなコードを動かそうとしているみたいだから。
0628nobodyさん
2006/04/26(水) 19:48:07ID:???0629nobodyさん
2006/04/26(水) 21:28:55ID:???0630nobodyさん
2006/04/27(木) 15:22:10ID:???とりあえずここ嫁。
ttp://perl.apache.org/docs/2.0/os/win32/config.html
0631622
2006/04/27(木) 16:42:02ID:???遅くなりました。
Win32版に apachectl は無いですね。
失礼しました。
何が原因か分かりませんが、状況からすると mod_perlだけでなく、
他の問題も含まれている気がします。
まずは、mod_perlを後回しにして普通の CGIが動くようにディレクティブを設定して、
それから mod_perlに関する記述を入れてはいかがでしょうか。
そんなに複雑な設定をしなくても、すんなりと動いてくれるはずです。
但し、mod_perl に適したソースコードが前提となりますが。
>>630 のリンク先も、かなり参考になるはずです。
0632nobodyさん
2006/04/28(金) 01:25:45ID:???Attempt to serve directory がログに残るのは,SetHandler を記述すると
DirectoryIndex が効かなくなるためです。よって 404 が返るのだと思われます。
で,cgiを動かしたいディレクトリがどこなのハッキリしませんが,c:/www だとすると,
<Directory "c:/www">
Options -Indexes FollowSymLinks +ExecCGI
AllowOverride None
Order allow,deny
Allow from all
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
</Directory>
とりあえずオマケで付いてくる printenv.pl を置いてみて,確認しましょう。
但しこれですと htmlファイルとかも mod_perl の餌食になりますので,
SetHandler以下3行をFilesMatchなんかで括って,拡張子 cgi だけ
mod_perlで動くようにするすると幸せになれるのでは?
0633nobodyさん
2006/04/29(土) 02:42:25ID:???たくさんのレスを頂き大変感謝しています。
御陰様で、やや状況が前進しました。
>>630氏のサイトを参考に設定を行い、>>632氏の指摘通りに
.cgiの拡張子のみに適応するようにしました所、
>>627氏の記述(HTTPヘッダを付け足しましたが)により生成したcgiと、
>>630氏のサイトのprintenv.cgiを正しく表示する事が出来ました。
しかし、>>627氏の仰る通りに、汚いプログラムを動かしているのですが、
どうやらcgi自体がrequireしているファイルを、@incの場所しか読まず、
同階層に存在しているものを、読んでくれない為の様なのです。
何故なら、@incに存在しないファイル(cgi-lib等)が、
require要求を出すCGIと同一の階層に既に含まれているからです。
ちなみに、mod_perlを使わない状態では、
エラーは出る事がなく、きちんと見る事が出来ていました。
どうか、お知恵をお貸しください。
0634nobodyさん
2006/04/29(土) 05:02:27ID:???0635632
2006/04/29(土) 08:38:44ID:???PerlRequire に記述した StartupScript (例では extra.pl) の先頭に,
INC に追加したい Path を以下の様に記述してください。
(Pathはテキトーです,書き換えて下さい)
BEGIN {
use lib qw( c:/www/lib c:/www/cgi-bin/lib );
}
または,cgi の先頭に 上記の use 文のみ記述しても同じです。
これで INCの問題は解決しますが,そもそも mod_perl では cgi 実行時の
カレントディレクトリが cgi の存在するディレクトリになりません。
汚い cgi では File の入出力とかで問題が出るかも?ですので,ファイル名が
相対パスで記述されている部分を絶対パスにするなど,手を打っておきましょう。
Have a nice GW !!
0636632
2006/04/30(日) 01:19:27ID:???635 の use 文は無し無しです。
require を絶対パスで記述して下さい。たとえばこんな感じ。
require 'c:/www/jcode.pl';
しかし,想像するに Perl4 時代の cgi の様な感じがしますね。
結構苦労すると思います。この際,ModPerl::Registry は止めて
ModPerl::PerlRun で妥協するのも有りかもしれません。
0637nobodyさん
2006/05/05(金) 22:48:25ID:2XcXcVrY下記コードをmod_perlが実行できる環境で単純に実行するだけだと Cannot open included file とエラーがでます。
mod_perlで実行するには、どう変更したらよいのでしょうか。
__ HTML __
<html>
<head><title>Test Template</title>
<body>
My Home Directory is <TMPL_VAR NAME=HOME>
<p>
My Path is set to <TMPL_VAR NAME=PATH>
</body>
</html>
__ perl __
use strict;
use HTML::Template;
my $template = HTML::Template->new(filename => 'test.html');
$template->param(HOME => $ENV{HOME});
$template->param(PATH => $ENV{PATH});
print "Content-Type: text/html\n\n", $template->output;
0640nobodyさん
2006/05/06(土) 09:50:32ID:???0641nobodyさん
2006/05/06(土) 13:03:05ID:DaCfpo3Zありがとうございますー。
テンプレートの場所をフルパスで指定しましたらエラーは吐かれなくなりました
>mod_perlではスクリプトのあるディレクトリがカレントディレクトリになるわけではない。
肝に銘じておきます。
0642nobodyさん
2006/05/06(土) 14:10:03ID:???そんな肝に銘じたりマヌケなことするんじゃなくて、
トラブったときに自分で解決する心がけを身につければよいのでは?
0643nobodyさん
2006/05/06(土) 17:03:35ID:???0644nobodyさん
2006/05/06(土) 17:59:26ID:???Apache::PerlRun + perlcc -B
perlの場合現実的な解の有力候補だと思う。
Apache::PerlRunの欠点をperlcc -Bで補う。
perlccは効果薄いと言われてますが、遅いPCではかなり効く。
http://rintaro.dip.jp/nicky/index.html
メリット
導入容易
対象プログラム多
リソース消費小
デメリット
スピード面では最高ではない。
0646nobodyさん
2006/05/07(日) 11:09:46ID:???バイトコンパイルは俺も試したが確かに効く。
perlccが効かないとされてる記事はどれも単純なバイトコンパイルではないよ。
実行ファイルにまでコンパイルしている。
しかし、
Apache::PerlRun + perlcc -B
これ本当に動くの?
SpeedyCGI + perlcc -Bはバイナリいじれば動いたがコマンドラインオプション一切受け付けなくなった。
0647nobodyさん
2006/05/09(火) 01:34:46ID:???0648nobodyさん
2006/05/09(火) 14:05:03ID:???>perlcc使うくらいなら、Cで書き直せばいいのに。
はあ?
perlcc -Bはただのバイトコンパイルですが。
Emacs Lispのバイトコンパイルと全く同じ。
0649nobodyさん
2006/05/09(火) 14:11:41ID:???痛すぎる。
>644
>perlccは効果薄いと言われてますが、遅いPCではかなり効く。
>http://rintaro.dip.jp/nicky/index.html
読んでみたほうがいいかと。
0650nobodyさん
NGNG0652nobodyさん
2006/05/09(火) 15:00:50ID:???>646
>perlccが効かないとされてる記事はどれも単純なバイトコンパイルではないよ。
>実行ファイルにまでコンパイルしている。
0653nobodyさん
2006/05/09(火) 15:12:44ID:???禿げしくスレ違いだな。
俺様が教えてやる。
perlccで作る実行ファイルはCの中にperlのバイトコードを埋め込んだもの。
perlcc -B はperlのバイトコードを作る。
バイトコードは通常のソースと同じように、perlインタープリタが実行できる。
でFA。
0654nobodyさん
2006/05/09(火) 22:01:15ID:???環境は
Apache/2.0.54 (Debian GNU/Linux) PHP/4.3.10-16 mod_perl/1.999.21 Perl/v5.8.4
です。
CGI/1.1と表示されます。
0655nobodyさん
2006/05/11(木) 06:30:48ID:???>>http://rintaro.dip.jp/nicky/index.html
>読んでみたほうがいいかと。
>>>グローバル変数の初期化だけ追加すればいいのですがグローバル変数を探すのが大変です。 なにしろnicky.cgiは6000行あるのです。
この時点で、すでにアウトなんでない?
0657nobodyさん
2006/05/11(木) 13:09:16ID:???漏れは、兵庫県や日本生命のプロジェクトでPGしてた。
6000行のソース読んでグローバル変数割り出すのは丸1日では無理。
>http://rintaro.dip.jp/nicky/index.html
これで割り出せているのは幸運。
use strict 'vars';
これは別に万能ではない。
0659nobodyさん
2006/05/11(木) 14:32:43ID:???俺もSQLやJAVA、VBでPGをしていた。
数万行のソースは普通だが、
>http://rintaro.dip.jp/nicky/index.html
の意見はまっとうだと思うな。
SQL、JAVA、VBは生産性がいいから大規模プロジェクトで使われる。
0660659
2006/05/11(木) 14:37:37ID:???mod_perlはメモリを消費しすぎるし、しかも開放しない。
ちょっと勧められない。
0661nobodyさん
2006/05/11(木) 19:31:33ID:???今時、生産性を考えたら Java なんか使えるかよ。
Perl じゃなくても、PHP や Ruby でシステム組んで、マシン足しゃいいんだ。
0662nobodyさん
2006/05/11(木) 21:03:06ID:???0663659
2006/05/11(木) 21:13:02ID:???ASPもJSPもPLSQLもステップ実行できない環境で開発したなら、遅いもんだよ。
原因不明のバグは必ず出るだろ。
mod_perlなんか使ったらどうやってデバッグするの?
print?
それはまずいだろ。
0665nobodyさん
2006/05/11(木) 21:35:54ID:???0666nobodyさん
2006/05/11(木) 21:37:09ID:???> それはまずいだろ。
それはまずいな。
普通はデバッガだろう。
printしか思い浮かばないようじゃ、
それはまずいな。
0667nobodyさん
2006/05/11(木) 21:41:20ID:???昔悩まされたのでトラウマが...
0669nobodyさん
2006/05/11(木) 22:10:45ID:???0670nobodyさん
2006/05/11(木) 22:15:05ID:???個人で書いたのはほとんどそうだが。
0671nobodyさん
2006/05/11(木) 22:19:31ID:???MT?
0672nobodyさん
2006/05/11(木) 22:25:40ID:???自作だとSledgeかCatalystで書いて気分でmod_perl下で動かす
こともあるとかそんな感じ。mod_perl専用にガリガリ書くことは
ないな。
0673nobodyさん
2006/05/11(木) 22:28:37ID:???0674nobodyさん
2006/05/11(木) 22:43:27ID:???Apache+mod_perlでCGIを使うには?
http://www.din.or.jp/~bigstone/cgilab/cgitips/mod_perl.html
0675nobodyさん
2006/05/11(木) 22:56:38ID:???2. ロードされたスクリプトは実行後もメモリにキャッシュされる
これ読むと、localもキャッシュされるような説明ですが、誰か説明してください。
0679nobodyさん
2006/05/12(金) 01:46:25ID:???ここの説明はあまりないんだよなあ。
0680679
2006/05/12(金) 01:58:27ID:???スマソ。
CGIで動作するときは、再度呼び出しても記憶しているが、スクリプト自体が終わったら当然破棄されるよな。
mod_perlってここも残るのかな?
0681679
2006/05/12(金) 02:09:01ID:???休みに自分で試しますわ。
0682679
2006/05/12(金) 04:24:41ID:???Perlよく知らんのでlocal変数ってスタティック変数と思ってました。
スクリプト書いてみて知りました。
ローカルな変数なのね...
はずかしす。
0683nobodyさん
2006/05/12(金) 08:26:22ID:???localの認識もまだ違うっぽい。
あと、日本語ドキュメントに絞って調べてるなら古かったり間違った情報に注意。
0684nobodyさん
2006/05/15(月) 01:31:28ID:???俺様も最初はここに住み着いてる奴らと同じくcgiをRegistryに喰わせて
喜んでたクチだが、仕事でPerlのcgiを動かすのはごく希。今では、
複数サーバ間のシングルサインオンの仕掛けをmod_perl + DBI で
組んだりしとる。アクセス制御系のmoduleを組むことが多いかな。
ヘタレなので、Cでmoduleは書けん。やっぱmod_perlは便利。
0685nobodyさん
2006/05/15(月) 02:19:30ID:???そうなんですよね。
アパッチの太り方は尋常ではないです。
アクセラレータと考えれば、FastCGI、SpeedyCGIが圧倒的に上。
mod_perlの真価はPerlでApacheモジュール書けることなんですよね。
というか、最初からそのための物だし。
0686nobodyさん
2006/05/16(火) 01:18:40ID:???ここは WebProg 板だし,>>1 の趣旨からして mod_perl で CGI の話題メインでも良いのでは?
ただ,>>685 でも言われるとおり,mod_perl の神髄は Perl でハンドラ書いて Apache を Hack
できることに尽きる。ResponseHandler とか OutputFilterHandler が取っつきやすいと思う。
Apache の内部処理に対する理解も深まるので,やって損はないと思うけどな。
CGI に飽きたら,Apache Hacking をお勧めしたい。
0687nobodyさん
2006/05/16(火) 02:33:50ID:???話すことなんてないよ…。
0688nobodyさん
2006/05/16(火) 19:05:42ID:???>CGI メインって、普通に書いて Registry に食わせりゃ動くのに、
釣りはいかん。
mod_perlは最も制約が多い。
>話すことなんてないよ…。
同感。
FastCGI、SpeedyCGIに比べデメリットは目立つがアドバンテージが感じられん。
体感速度は変わらんし、ベンチ対決も特に勝ってるわけでもない。
0692nobodyさん
2006/05/16(火) 23:11:37ID:???ずいぶん抽象的な言葉がお好きですね。
use strictはある意味使うべきとは思います。
しかし、グローバル変数を初期化するのはスクリプト本来の姿ではないですが。
カレントディレクトリも本来のPerlとは違うはずですが。
それでも「普通」というならApache::Registryが標準なんでしょう。
0695nobodyさん
2006/05/16(火) 23:23:23ID:???> また抽象的なんですが。
質問文なんですが、抽象的に見えますか?
> > 頭のほうよろしかったでしょうか?
頭のほうがよろしかったかどうか聞いています。
よろしかったか、よろしくなかったかで答えることが可能です。
> 具体的にどこがおかしかったか指摘してください。
「おかしかった」とは一言も言ってませんね。
0696nobodyさん
2006/05/16(火) 23:27:23ID:???この一言で終われば抽象的です。
その上今度は
>「おかしかった」とは一言も言ってませんね。
とくる。
意味がわかりません。
0697nobodyさん
2006/05/16(火) 23:29:05ID:???聞いてあげるので、なにをもって抽象的としたいのかご説明どうぞ。
> 意味がわかりません。
頭のほうがよろしくないということでしょうか?
0698692
2006/05/16(火) 23:36:05ID:???>ずいぶん抽象的な言葉がお好きですね。
>
>use strictはある意味使うべきとは思います。
>しかし、グローバル変数を初期化するのはスクリプト本来の姿ではないですが。
>カレントディレクトリも本来のPerlとは違うはずですが。
>それでも「普通」というならApache::Registryが標準なんでしょう。
これが私の発言。
それに対し
>>693
>頭のほうよろしかったでしょうか?
「聞いてあげるので、なにをもって抽象的としたいのかご説明どうぞ。」
指摘が全く具体的でないのでので抽象的としたいです。
0699692
2006/05/16(火) 23:38:57ID:???>687
CGI メインって、普通に書いて Registry に食わせりゃ動くのに、
話すことなんてないよ…。
このずれた感覚を説明願いたい。
0700nobodyさん
2006/05/16(火) 23:41:55ID:???三省堂 大辞林 第二版 によると、「抽象的」とは、
> (1)概念的で一般的なさま。
> (2)事物を観念によって一面的にとらえ、実際の有り様から遠ざかっているさま。
ということで、具体的でないからといって、抽象的としてしまうのは
いかがなものかと思います。
0701692
2006/05/16(火) 23:46:20ID:???私は辞書などいちいちひきませんが、具体的と抽象的は中学生が習う反対語とかいうやつです。
「指摘が全く具体的でない」場合は、「抽象的としたい」のですね?
その通りです。
0702nobodyさん
2006/05/16(火) 23:49:18ID:???デマですね。
0703692
2006/05/16(火) 23:50:17ID:???もう止めます。
0704nobodyさん
2006/05/16(火) 23:53:30ID:???ある意味って何だろう。
0705687
2006/05/16(火) 23:58:06ID:???なんか勝手に同一人物にされてる…のかな?
単に >>686 を受けて、「mod_perl で CGI の話題」で何を話すことがあるんだ、
Apache ハンドラの話をする方がいいじゃないか、と言いたかっただけなんだが。
設置に関するの話なら板違いだし、アクセラレータとしては FastCGI や
SpeedyCGI の方が優れてるのは誰が見ても明らかなので、議論すること自体が無駄。
パフォーマンス・チューニングの話とかなら大歓迎だが。
>>692
> use strictはある意味使うべきとは思います。
> しかし、グローバル変数を初期化するのはスクリプト本来の姿ではないですが。
> カレントディレクトリも本来のPerlとは違うはずですが。
お前は何を言っているんだ。
0707nobodyさん
2006/05/17(水) 13:29:41ID:???これくらいのサーバ(サーバ群)でこれくらいのアクセス数をさばける、みたいな。
0708nobodyさん
2006/05/17(水) 14:44:34ID:???0709nobodyさん
2006/05/17(水) 14:53:47ID:???0710nobodyさん
2006/05/17(水) 16:05:11ID:???> はてな・・・はトラブル多くて参考にならんね
トラブルが多いか否かって、どうやって評価するの?
藻前の主観ならイラネ。
0711nobodyさん
2006/05/17(水) 20:54:37ID:???0713nobodyさん
NGNG0714nobodyさん
2006/05/18(木) 02:01:56ID:???画像サーバは必ず分けたほうがいいのかとか、同時アクセス数がどれくらいになると別のウェブサーバ用意すべきなのか、とか。
0715nobodyさん
2006/05/19(金) 00:00:41ID:???見かけた気がするが思い出せん……
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:???根気よくprint文入れるぐらいしかないんじゃまいか。
0719nobodyさん
2006/05/20(土) 14:22:00ID:???0720718
2006/05/20(土) 15:33:18ID:???>716
>catalystのテストサーバーで動かすとpostしても動くし rewriteのログもおなじ
この通りならmod_perl環境特有の問題と思われるが。
0721nobodyさん
2006/05/20(土) 16:29:48ID:???0722716
2006/05/20(土) 19:32:45ID:6sFQXXC/Catalystならok
やっぱmod_perl2かなー
0724718
2006/05/20(土) 21:44:34ID:???みると大手で採用されてるみたいだけど、開発どうやってるのかな?
0725nobodyさん
2006/05/20(土) 21:52:57ID:???0726718
2006/05/20(土) 21:55:33ID:???>>722
俺の悪い頭では、print文入れてOKな環境下とNGな環境下の違い地道に割り出すぐらいしか浮かびません。
デバッグの手間をへらすって大事なことかなと。
この辺、他の人はどうやってるのかな?
ステップ実行とかやってる人はいないのかな?
0728716
2006/05/21(日) 00:26:28ID:???mod_perlのhttpd.confで
PerlModule、PerlLoadModule、PerlTransHandlerを指定していたんだけどはずして、
<location>でSetHandler MyApp、PerlResponseHandler MyAppを指定してOK
このへんmod_perlの知識ない私がわるかったもよう・・
報告まで おかげさんでした
0730nobodyさん
2006/05/21(日) 01:25:34ID:???JAVAの初期の頃もそんな感じでしたよね。
向こうは大ブームになったので、開発環境が一気に進んだ。
言語の仕様云々ではなくて、開発環境が欲しい。
特にステップ実行。
0731nobodyさん
2006/05/21(日) 02:24:20ID:???> 特にステップ実行。
なんで?
0733nobodyさん
2006/05/21(日) 04:22:20ID:???print文入れるより圧倒的に能率上がる。
任意の時点でプログラムをポーズさせて、知りたい変数の値を調べ、正常なら1ステップ進めてまた変数の検査。
>>732
JAVAのIDEはどれもできる。
(NetBeans、JBuilder、Eclipse)
Servletのステップ実行だけでなく、JSPもステップ実行可。(Eclipseはやや貧弱)
要はJAVAで開発すると任意の時点で止め調べて再開、また止めて調べる。
こういう環境がタダで入手できる。
(JBuilder以外)
オブジェクト指向がどうのいうよりもこちらが大きい。
0734733
2006/05/21(日) 04:33:30ID:???0735733
2006/05/21(日) 04:57:03ID:???>>>726
>うーん、Log::Log4perl でも使ってまめにログを取るとか。
JAVAも最初はlog4jが主流だった。
メモリ食う上に遅かった。
今はサーバー用途ではC++との速度差は小さい(サーバー用途ではコンパイル言語としてふるまう)。
しかもオブジェクト指向はあえて殺して使っている場合も多い。
(同名メソッドなどはバグの原因がわかりづらくなる。)
メジャーになると、欠点なんか誰も言わなくなる。
0736nobodyさん
2006/05/21(日) 05:39:24ID:???0738nobodyさん
2006/05/21(日) 06:30:43ID:???JAVA使いたいんだが、JAVAはエンタープライズに向かったので個人向けソフトがほとんど無い。
だから、mod_perlで開発環境が欲しい。
本音を言えば、言語なんかどれも変わらん。
欲しいのは開発環境。
0739nobodyさん
2006/05/21(日) 07:11:29ID:???要はできる限り楽がしたい。
0740nobodyさん
2006/05/21(日) 08:21:55ID:???じゃあこんなところでクダ巻いてないで自分で開発環境作って勝手にやれよ。
mod_perl のスレで JAVA、JAVA、JAVA、JAVA 不快なだけだ。
Eclipse でも使っとけボケ。
0741nobodyさん
2006/05/21(日) 08:50:21ID:???実はEclipseのEPICも使っているが。
mod_perl環境 ×
別にJAVAが好きではない。
デバッグ環境の話がしたかっただけ。
言語は関係ない。
0742nobodyさん
2006/05/21(日) 08:58:15ID:???まあ、感情的になるな。
デバッグ環境を整えるのは大切なことだ。
mod_perlのためになる。
0743nobodyさん
2006/05/21(日) 09:12:56ID:fMNVkr/pあるいは日本語が不自由か
0744nobodyさん
2006/05/21(日) 09:36:25ID:???本当にまともにJava使ったことあるのかなってゆーか
厨っぽいってゆーか
0745nobodyさん
2006/05/21(日) 11:53:20ID:???0746nobodyさん
2006/05/21(日) 12:36:56ID:???これ使ったことあるが、プロセス間通信を使ったやり方でmod_perlも可能性あると思うんだ。
FastCGIはもろ移植できそう。
0749nobodyさん
2006/05/21(日) 12:58:20ID:???0750nobodyさん
2006/05/21(日) 13:03:32ID:???0751nobodyさん
2006/05/21(日) 13:05:52ID:???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
0753nobodyさん
2006/05/21(日) 13:11:25ID:???http://www.harukaze.net/~mishima/perl/cgi-debug-env/dev-env.html
0754nobodyさん
2006/05/21(日) 13:17:56ID:???http://www.harukaze.net/~mishima/perl/cgi-debug-env/deb-tech.html
0755nobodyさん
2006/05/21(日) 13:33:29ID:???開発環境の重要性への認識が全然ない。
「今、できてるんだからそれでいいじゃないか。」
これは、悪い習慣だよ。
0756nobodyさん
2006/05/21(日) 14:13:33ID:???エディタ + 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:???動作が違ってたりする場合あるので開発環境がいみねーって事もあったりする
リモートホストでデバッグ出来たりするんかな?
結局ColinuxかVmware+エディタって事になるんじゃまいか
0759nobodyさん
2006/05/21(日) 14:30:51ID:???>今はemacsで十分だな。
そういう風土が悪い習慣。
VBも昔はemacs使いが結構いた。
が、VBのIDEが充実してからは皆去っていった。
0760nobodyさん
2006/05/21(日) 14:42:45ID:???単純に名前空間がみつからないという問題だと思うが。
>>758
JDBとリモートデバッグ
http://muimi.com/j/jboss/jdb/
以前これを参考にデバッグしたんだが、このjdbというのPerlのデバッガみたいなもの。
環境作るパワーがあれば、リモートデバッグはできると思う。
0761nobodyさん
2006/05/21(日) 14:54:10ID:???ActivePerlだがやってるやつがいたよ。
Wizshout
http://hpcgi1.nifty.com/wizman/wizshout.pl?m=num&p=9
[445] 修正がだるい -[449] 鶏と卵
0765nobodyさん
2006/05/21(日) 17:22:44ID:???0766nobodyさん
2006/05/21(日) 17:26:02ID:???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:???煽ろうと思って調べて愕然としました。
実行ファイルにデバッガが含まれているとは!
先に調べていたので赤恥かかなくてすみました。
赤恥書いた人可愛そう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
0773nobodyさん
2006/05/22(月) 10:47:30ID:???そこでジャバに乗り換えるのも選択肢の一つ。
別に個人でジャバでもいいんじゃない?
あるいはお手軽にPHPとかでもいいし。
ジャバの環境が好きなら、ジャバで作るのもありだと思う。
ここでぐだぐだ逝っても、パールの開発環境は変わらんよ。
そもそもパールはウェブ前提じゃないし、単なるスクリプト廚が泥臭くウェブに応用したってだけ。
0774nobodyさん
2006/05/22(月) 13:19:22ID:???> 他でまた新しく作ればいいジャンってノリだしな。
それは、藻前のオナニーレベルの話だよね?
そうでないということにしたいのなら、そのノリの存在を立証汁。
0775nobodyさん
2006/05/22(月) 16:24:55ID:???>パールはデバックが必要なほどの規模なら
デバッグは規模が小さいといらないのか?
お前は、凡ミスで延々と悩まされた経験はないのか?
0776nobodyさん
2006/05/22(月) 19:29:42ID:???0778nobodyさん
2006/05/22(月) 20:56:25ID:???0779nobodyさん
2006/05/22(月) 22:05:27ID:???0783777
2006/05/22(月) 23:35:55ID:???0784nobodyさん
2006/05/22(月) 23:37:39ID:???0788nobodyさん
2006/05/23(火) 00:01:24ID:???最低標準モジュールに頼れるところは頼る、use strictで完動、
グローバル変数も皆無とか素性が良いものならともかく、
そこら辺の適当なのを移植するくらいなら1から書き直したほうがマシだろ。
0789nobodyさん
2006/05/23(火) 00:08:55ID:???>グローバル変数も皆無とか
どういうコーディングやってるの?
>そこら辺の適当なのを移植するくらいなら1から書き直したほうがマシだろ。
残念ながら評番のいいCGIもほとんど移植は大変だ。
これは書いたやつのセンスが悪いといいたいのか?
0790nobodyさん
2006/05/23(火) 10:59:16ID:???0791nobodyさん
2006/05/23(火) 21:38:26ID:???通常のperl時は $|=1; で思うように動作しておりますが、
mod_perl化したところ、まとめて出力される様になってしまいました。
Apache::PerlRun を使っています。
0793nobodyさん
2006/05/24(水) 02:19:47ID:???0795nobodyさん
2006/05/24(水) 03:36:53ID:???ttp://perl.apache.org/docs/1.0/guide/performance.html#Using____1_Under_mod_perl_and_Better_print___Techniques_
0796nobodyさん
2006/05/24(水) 04:00:03ID:???$r->print('hoge');
0797791
2006/05/25(木) 00:26:09ID:???>>794 非mod_perlでは動作している為、大丈夫だとは思います。
とりあえず下記の内容で上手く行きました。
バッファリングは生かし、特定タイミングで
解放する様に $|=0 のままで、
my $r = shift;
print "A";
$r->rflush;
sleep 3;
print "B";
ありがとうございました。
0800nobodyさん
2006/05/25(木) 06:30:02ID:???0802nobodyさん
NGNG0803798
2006/05/25(木) 20:37:48ID:???○ >794
最近年でな。
0804nobodyさん
2006/05/26(金) 00:41:18ID:???>回答しないで煽るだけの恥ずかしい奴が増えたってことじゃないのかな?
お前は>791=>797に回答するような力があるんだな。
0805nobodyさん
2006/05/26(金) 23:08:22ID:???そしてパール本家には、あのホリエモンと仲がいい子飼団も居るDQNオプソ。
0806nobodyさん
2006/05/27(土) 00:49:21ID:???KENT レベルの人間でも mod_perl の存在を知るようになったということ?
> 雑誌にも載ってたくらいだし。
どれは、どの初心者向けのうんこ雑誌?
0807nobodyさん
2006/05/27(土) 13:04:30ID:???>どれは、どの初心者向けのうんこ雑誌?
多分、「それは、どの初心者向けのうんこ雑誌?」の間違いなんだろ。
このスレのレベルで他人のことを初心者だのうんこだのいうなよ。
それはただのオナニー。
0808nobodyさん
2006/05/27(土) 14:30:47ID:???の記事なら見たこと有る。確かに糞雑誌だったので立ち読みで済ませた。
0809nobodyさん
2006/05/27(土) 22:57:18ID:???>立ち読みで済ませた。
Java、PHPではなく、mod_perlをmixiで使用した理由の説明はありましたか?
0810nobodyさん
2006/05/28(日) 01:18:04ID:???perlしか使えないとかさ。
basicしか使えなきゃbasicだったと思う。
0811nobodyさん
2006/05/28(日) 01:33:08ID:???そういうのを虎の威を借るっていうんだよ。
「mod_perlはこういう点で優れています。」
といえばいいのに、
「何々にも紹介されました。」
「あの誰々さんも関係あります。」
mod_perlを否定はせんが、このスレはアホすぎる。
0812nobodyさん
2006/05/28(日) 01:33:11ID:???サイトが大きくなる途中でJavaで書き直すってことも出来たろうけど、Perlで乗り切れるって目処があったんだろう。
PerlからPHPに変える意味はないし。
0813nobodyさん
2006/05/28(日) 01:41:22ID:???その通りだと思う。
Perl最大の武器は、UNIX系OSでSHELLに準じる地位を得ていること。
ほとんど、OSの一部だ。
逆に最大の欠点はその地位のために、天狗になっていること。
このスレの発言をみる限り将来のPerlは危ない。
0814nobodyさん
2006/05/28(日) 01:41:31ID:???Java なんか使うと何かいいことあるの?
そういう利点すら書けないようなやつが、Java をマンセーしたところでねぇ。w
0815nobodyさん
2006/05/28(日) 01:46:03ID:???だれが天狗なの?具体的に列挙してよ。
> このスレの発言をみる限り将来のPerlは危ない。
Perl の将来に影響を及ぼすくらい、このスレには影響力があるの?
すごいね。
0816813
2006/05/28(日) 01:51:05ID:???俺は>812ではないが言わせてもらう。
Javaは非常に楽なんだよ。
カプセルに閉じ込めたパーツのメソッドを継承して新しいクラスに利用できる。
大規模な仕様変更になっても、少量の書き直しですむ。
俺はJavaは嫌いだが、開発効率は全く違う。
0817813
2006/05/28(日) 01:55:55ID:???>だれが天狗なの?具体的に列挙してよ。
このスレの70%の人間。
列挙などしきれるはずがない。
>Perl の将来に影響を及ぼすくらい、このスレには影響力があるの?
全然ない。
0818nobodyさん
2006/05/28(日) 02:07:23ID:???> カプセルに閉じ込めたパーツのメソッドを継承して新しいクラスに利用できる。
> 大規模な仕様変更になっても、少量の書き直しですむ。
CPAN モジュールのアダプタ書きまくれば Perl でもできるんじゃね?
>>817
> このスレの70%の人間。
算出根拠は?
0819813
2006/05/28(日) 02:13:49ID:???>CPAN モジュールのアダプタ書きまくれば Perl でもできるんじゃね?
できるかどうかなら、Cでもできる。
問題は自分でもわかっているじゃないか。
書きまくればじゃきつい。
>> このスレの70%の人間。
>算出根拠は?
タダの俺の主観。
スレ全部読んでカウントする価値があるとは思えん。
0820nobodyさん
2006/05/28(日) 02:17:24ID:???> できるかどうかなら、Cでもできる。
> 問題は自分でもわかっているじゃないか。
> 書きまくればじゃきつい。
Boofy なり Sledge なり CGI::Application なり Catalyst なり Jifty なりを
使えばいいんじゃないかなと。
もしかして、そういうフレームワークの存在を知らなかった?
0821nobodyさん
2006/05/28(日) 02:18:20ID:???> >算出根拠は?
>
> タダの俺の主観。
> スレ全部読んでカウントする価値があるとは思えん。
価値があると思えないのに、よく書き込みますね。w
0822813
2006/05/28(日) 02:24:21ID:???こんなことを説明しないといかんのかな。
どんな言語でもオブジェクト指向が流行りだ。
だが、なんでもオブジェクト指向にすれば楽になるなんてことはない。
VBとPerlのオブジェクト指向は似ている。
使っても効率大してあがらん。
それからフレームワークの話と、オブジェクト指向の話は全く別の話だ。
フレームワーク使えば効率あがるが、Javaのフレームワークは有名だが一切ふれてない。
0823813
2006/05/28(日) 02:29:10ID:???つまらんいいがかりはやめて、
「Perlはここが優れている。」
こういう話はできんのか?
俺はJava嫌いだが、このスレではJavaマンセーのようだろうな。
0825813
2006/05/28(日) 02:49:11ID:???>816
>>814
俺は>812ではないが言わせてもらう。
Javaは非常に楽なんだよ。
カプセルに閉じ込めたパーツのメソッドを継承して新しいクラスに利用できる。
大規模な仕様変更になっても、少量の書き直しですむ。
俺はJavaは嫌いだが、開発効率は全く違う。
以上が俺の発言。
この発言に対して、
>820
Boofy なり Sledge なり CGI::Application なり Catalyst なり Jifty なりを
使えばいいんじゃないかなと。
もしかして、そういうフレームワークの存在を知らなかった?
この発言。
論点をフレームワークにすり替えたのは誰だ?
0827nobodyさん
2006/05/28(日) 02:58:37ID:???> カプセルに閉じ込めたパーツのメソッドを継承して新しいクラスに利用できる。
> 大規模な仕様変更になっても、少量の書き直しですむ。
> 俺はJavaは嫌いだが、開発効率は全く違う。
そもそも、
- 議論しようとしているプロジェクトの規模の客観的な測定方法と数字
- 「大規模な仕様変更」とはどの程度の仕様変更か
- 「開発効率」の客観的な測定方法
を定義してもらわんと、だれも理解できないよね。
0828813
2006/05/28(日) 03:05:01ID:???いい加減、しつこい。
>そもそも、
>- 議論しようとしているプロジェクトの規模の客観的な測定方法と数字
>- 「大規模な仕様変更」とはどの程度の仕様変更か
>- 「開発効率」の客観的な測定方法
>
>を定義してもらわんと、だれも理解できないよね。
数字になるものとならんものがあるだろう。
お前これ定義できるのか?
0829813
2006/05/28(日) 03:06:45ID:???0830nobodyさん
2006/05/28(日) 03:08:15ID:???> 数字になるものとならんものがあるだろう。
> お前これ定義できるのか?
え?
定義なり説明なりしてもらわないと、藻前以外の人間が把握できないよね。
0831813
2006/05/28(日) 03:13:16ID:???>そもそも、
>- 議論しようとしているプロジェクトの規模の客観的な測定方法と数字
>- 「大規模な仕様変更」とはどの程度の仕様変更か
>- 「開発効率」の客観的な測定方法
>
>を定義してもらわんと、だれも理解できないよね。
これを業務でやると大変な額になるがお前のためにやるのか?
それ以前にすぐに話をそらすのはやめろ。
0832nobodyさん
2006/05/28(日) 03:37:41ID:???できないので、業務の場面では大変な額になるということにしたいのでしょうか?
畑違いの言語を持って来て議論をする場合には、議論に必要な資料を隠さずに
出して頂かないと、少なくともスレ違いになりますね。
> それ以前にすぐに話をそらすのはやめろ。
ということにしたいのですね? :)
0833813
2006/05/28(日) 03:47:28ID:???基本的にはその通りだ。
簡単に数値化できるような見積もりに工数は必要ない。
無理やり算出する場合は、工数がかかる。
>ということにしたいのですね? :)
こういう不快な発言は慎め。
0835nobodyさん
2006/05/28(日) 06:23:54ID:???無かったらスレ立てして議論したい奴があつまってそこですればいい
0836nobodyさん
2006/05/28(日) 11:41:32ID:???目的に合う言語を総合的に判断するには、他言語の知識も必要。
perlは万能と言えない訳だし。
それともここで言語統制でもしたいということにしたいのですね? :)
perlで開発効率を良くする手法とかって全く議論されないよね。
オブジェクト指向とか、フレームワーク使ってる香具師って皆無?
だから一人か少人数でがんばることに成ってかなりの負担に成るし、サイトが大規模になるとスケールせずに重いとか言われ続ける。
所詮スクリプト言語なんだし、やっつけ仕事向けの言語と言われればそれまでだが。
最大の武器つーか、本来はシェルスクリプトでperl非依存にすべきなのに、面倒という理由でperlでシステムのスクリプト書いてしまうから依存しちゃってるって事だろ。
だからperl5に簡単に移行できなかった反省も全くしてない。
逆にシステムに依存してるから、セキュリティの都合やOS更新で簡単にバージョン上げられて互換性のトラブルに巻き込まれることも有る。
N88-BASICが載ってるPCが有ったからと、N88-BASICで業務システム作っちゃって未だに移行できずに使い続けてるのと大差ない。
windowsやlinuxなんて優れた技術が出て来てるのにまったく取り入れること無く進化が止まったまま。
0837nobodyさん
2006/05/28(日) 14:35:16ID:???それにPerlで作られたツール類をシェルスクリプトで書けって、メチャクチャな話だと思うけど。
そんなスーパーなシェルマスターも中にはいるんだろうけど。
bashやzshを使うって言うなら、依存性うんぬんは成り立たないよ。Perlの方がよっぽどインストール率高いでしょう。
0838nobodyさん
2006/05/28(日) 15:50:49ID:3LeLXEpv> 逆にシステムに依存してるから、セキュリティの都合やOS更新で簡単にバージョン上げられて互換性のトラブルに巻き込まれることも有る。
例えば?
0840nobodyさん
2006/05/28(日) 18:42:39ID:Frl78uBn君が気に入らないのなら、君が使わなければいいだけではないか?
我々 Perl Mongers は Perl の利点も欠点も愛しているし、不満は
モジュールや Perl6 で解決しようと手を動かしている。
今の Perl に出来ないと判断したら、他の言語を使うとも厭わない。
繰り返す。気に入らないなら Perl や mod_perl を使うな。
そうすれば君もイライラしなくていいし、我々も君のくだらない書き込みで
ウンザリする必要もないよ。
0841nobodyさん
2006/05/28(日) 18:58:06ID:IBt2/VV1Java ってまだオープンソースじゃないよね。
ベンダ側に依存してる言語なんかうんこですよ。
> perlは万能と言えない訳だし。
あらゆる言語に共通するはなししですね。
> それともここで言語統制でもしたいということにしたいのですね? :)
意味不明ですね。
> perlで開発効率を良くする手法とかって全く議論されないよね。
> オブジェクト指向とか、フレームワーク使ってる香具師って皆無?
藻前が知らないだけだと思われ。恥を知れ。
0842nobodyさん
2006/05/28(日) 18:59:10ID:IBt2/VV1少人数だとかなりの負担になることにしたいようだけど、
大量の人間でデバッグをやっても効率なんか上がらない話がありますね。
> サイトが大規模になるとスケールせずに重いとか言われ続ける。
それはスケールできないような書き方をした場合じゃね?
> 所詮スクリプト言語なんだし、やっつけ仕事向けの言語と言われればそれまでだが。
何それ?
> 最大の武器つーか、本来はシェルスクリプトでperl非依存にすべきなのに、面倒という理由でperlでシステムのスクリプト書いてしまうから依存しちゃってるって事だろ。
何か知らないけど、すべての言語に言える話では?
> 逆にシステムに依存してるから、セキュリティの都合やOS更新で簡単にバージョン上げられて互換性のトラブルに巻き込まれることも有る。
/usr/local でも /opt でも好きなほうを使えば、ふつーにトラブルなんかおきない。
Java なんかだと、VM のソースコード読めなくて、トラブル時にまんどくさくね?
0843nobodyさん
2006/05/28(日) 19:00:17ID:IBt2/VV1それは、単純にその会社のお金の問題だよね?
> windowsやlinuxなんて優れた技術が出て来てるのにまったく取り入れること無く進化が止まったまま。
進化が止まっているというか、Java 以外のことを知らない化石になっているのは
藻前の頭の中の話じゃないの?
0844813
2006/05/28(日) 20:31:40ID:???>Perlでも普通にフレームワークとかオブジェクト指向の開発ってされてると思うけど。
そのオブジェクト指向絶対という考え方ががおかしい。
言語には向き不向きがある。
逆にフレームワークはどの言語でも楽になる。
>>841
>Java ってまだオープンソースじゃないよね。
>ベンダ側に依存してる言語なんかうんこですよ。
JavaはSunが書いた全クラスのソースコードが公開されている。
慎重に物を言え。
>藻前が知らないだけだと思われ。恥を知れ。
お前もな。
Javaも嫌いだが、このスレの排他的な態度はなんだ?
0845nobodyさん
2006/05/28(日) 20:40:11ID:IBt2/VV1そのフレームワーク絶対という考え方ががおかしい。
> JavaはSunが書いた全クラスのソースコードが公開されている。
クラスのソースコードが出てても、VM がクローズドだとかなしくない?
> 慎重に物を言え。
断る。w
> Javaも嫌いだが、このスレの排他的な態度はなんだ?
オマエモナー
0848nobodyさん
2006/05/28(日) 22:03:56ID:???> >>837
> >Perlでも普通にフレームワークとかオブジェクト指向の開発ってされてると思うけど。
> そのオブジェクト指向絶対という考え方ががおかしい。
> 言語には向き不向きがある。
> 逆にフレームワークはどの言語でも楽になる。
は?オブジェクト指向な開発もある、って言ってるだけなんだけど。
だいたいフレームワークが必ず必要って言うのが、意味がわからないんだけど。
0849nobodyさん
2006/05/28(日) 22:36:44ID:???パールで大規模システムって見ないね。なんで?
0850nobodyさん
2006/05/28(日) 22:50:01ID:???0851813
2006/05/29(月) 00:39:43ID:???「俺たちは、今の状態に十分満足している。
何の不足も感じていない。
余計な事は聞きたくもない。」
俺の意見はこれだけだ。
「それは、非常に危険なことなんだよ。」
0852nobodyさん
2006/05/29(月) 01:17:08ID:4drf/NIw危険とは、具体的には何なのかな?
Java を使わないことを危険とでもいいたいのかな?
0853nobodyさん
2006/05/29(月) 02:04:31ID:???で、その危険な状態のせいで具体的に何か君に迷惑がかかるかい?
> 「俺たちは、今の状態に十分満足している。
> 何の不足も感じていない。
> 余計な事は聞きたくもない。」
これはダウト。
気に入らないことがあったら、他の言語を使うだけだ。
0854nobodyさん
2006/05/29(月) 03:18:00ID:???Controllerなんて所詮ModelとViewの接着剤に過ぎないのだよ。
オブジェクト指向はあくまでも手段であって、目的になってしまっているやつは頭が弱いなあと思う。
Javaしかできないやつに是非言いたい。
ぎゃーぎゃー騒ぐ前に
Perl+CDBI(or DBIC)+TTでページ作ってみろ。C#でWindowsアプリ作ってみろ。
開発工数・テスト工数・保守工数・品質がJavaを遥かに上回っている。
雑誌等で煽られて洗脳されているようだから中々難しいだろうけど、
周りに流されずに自分の目で確かめな。ベンチマークも自分で取りな。
Javaを辞めろとは言わない。俺もJavaを完全に辞めたわけではない(仕事上)。
ただ、伝聞だけで判断するのは非常に危険だよ。自分で確かめることによって、
今までJavaの悪いところに目を瞑っていたり、嘘記事を信じてたりしたんだなあと
つくづく思うようになった。
まあどうするかはお前次第だ。だが今のままだとどこぞの宗教と変わらんよ。
0855nobodyさん
2006/05/29(月) 03:29:02ID:???http://pc8.2ch.net/test/read.cgi/tech/1146022352/863
0856nobodyさん
2006/05/29(月) 06:51:27ID:???丸投げばっかでコストパフォーマンスは最低だから
Javaマンセーしてると真っ先にクビにされそうで怖いんだよね。
0857nobodyさん
2006/05/29(月) 08:08:25ID:???ぶっちゃけパールって宗教だよね。
他の言語認めないつーか。
宗教戦争でもやらないと他の言語使おうという所まで来ない。
効率が悪かろうが、パールが使いたいという我が儘だけでパールで作成。
ミクシみたいに大規模になって困り果てる罠。ミクシ重いのは100%パールのせい。
0858nobodyさん
2006/05/29(月) 09:23:08ID:???0859nobodyさん
2006/05/29(月) 13:49:23ID:???こういうのを宗教と言う。
こっちはベンチ取ってからしゃべってんのに
Java厨はベンチ取らずに妄想でしゃべってる。
もうくだらなすぎて呆れる限り。
脳みそ腐ってんじゃないかと思う。
0860nobodyさん
2006/05/29(月) 16:52:34ID:???0863nobodyさん
2006/05/29(月) 20:14:14ID:???CGI VS PHP VS JAVA
http://pc8.2ch.net/test/read.cgi/php/1006006800/
0864nobodyさん
2006/05/29(月) 21:15:34ID:???Perlは糊言語の代表格。XSもそうだが、Perlだけで書く方が効率が良いときだけ書かれてる。
多言語イラネなんて思っているのはごく一部の厨だけ。
0865nobodyさん
2006/05/30(火) 02:33:59ID:???0866nobodyさん
2006/05/30(火) 04:02:12ID:???ttp://itpro.nikkeibp.co.jp/article/NEWS/20060330/233820/
mixiはMySQLのせいらしいよ
0867nobodyさん
2006/05/30(火) 05:47:04ID:???Java 派の人達応募できなくてカワイソス。w
0868nobodyさん
2006/05/30(火) 08:20:43ID:???ミクシもそうだけど、大規模サイトに成って来てパールで苦労してるサイトの一つでしょ。
パールじゃ人集まらないし、担当者も苦労しまくり。他人の作ったパールスクリプトなんてメンテしたくない。
0869nobodyさん
2006/05/30(火) 08:28:05ID:???0870nobodyさん
2006/05/30(火) 10:48:06ID:kutOl2Ky速度に関して言えばOracleは遅いよ。
使ったことないくせに知ったかするなよ。
恥ずかしいやつだな。
0871nobodyさん
2006/05/30(火) 11:07:27ID:???>Perlプログラムを動かすためのApacheモジュールであるmod_perlと
>同じサーバーにインストールしている(2GBのメモリーを積んだ39台のサーバー)。
2GBメモリー+LAMPであれば、個人レベル(高校生レベル)でも
可能だな。
0872nobodyさん
2006/05/30(火) 11:22:18ID:???0873nobodyさん
2006/05/30(火) 11:55:58ID:???>>868もそうだけど、頭でっかちで金も実力もないクセに声だけは大きいバカの一人でしょ。
「無料にしろ!」って喧しいくせに、企業に対しては「●●買えよ」と矛盾した要求を言う。
こういう>>868みたいなバカは、企業としては相手にしたくない。
0875nobodyさん
2006/05/30(火) 13:58:26ID:???0876nobodyさん
2006/05/30(火) 15:44:19ID:???単なる相性や用途の差じゃ。
その用途でより向いてる言語がある事は、perlがダメだという事の証明にはならないし、
その突っ込みはちょっと見当違いだと思われ。
0877nobodyさん
2006/05/30(火) 15:53:23ID:???なんかの記事で色々してるっぽいこと書いてたな。
>>875
負荷分散とかはかなりノウハウが出来てて参考になりそうだよな。
あれだけの規模をやりくりできてるのが凄い。
あまり評価してない人が多いけど、あれ以上に出来る人ってどの程度いるんだろw
もちろん開発や鯖にかかる金を考慮して。
0878nobodyさん
2006/05/30(火) 15:54:44ID:???0879nobodyさん
2006/05/30(火) 20:21:29ID:???> >>868
> 速度に関して言えばOracleは遅いよ。
微妙な表現だな。
MySQLに比べれば遅い。
実装が違いすぎる。
他のDBよりはむしろ速い。
DBの速度は、チューニングや使用環境にかなり依存するので、正確なことは言えんが。
使いにくいんだから、遅かったら一人勝ちはしてないよ。
0880nobodyさん
2006/05/30(火) 20:30:08ID:???MSは当然開発環境抜群だったが、敗北した。
MSはWin限定ということもあるが、それだけではないと思う。
PerlはOracleに習うべきかな。
0881nobodyさん
2006/05/30(火) 20:42:54ID:???0883nobodyさん
2006/05/30(火) 20:49:46ID:???個人的にはインストールはへたなOSよりはるかに嫌だ。
0884nobodyさん
2006/05/30(火) 20:56:14ID:???win上とUnix上で違うものをインストしとるのに。
0885nobodyさん
2006/05/30(火) 21:55:43ID:???パソコン使い始めて20年、これほどインストールが困難なソフトウェアはなかった。
0886nobodyさん
2006/05/30(火) 23:38:51ID:???最近lighttpdなどがでてきてるが、実績積むまではサーバ用途は厳しい。
多少使いにくくても、いいものが使いたければ俺を使え!
こんな強みがあるな。
mod_perlはこの辺を生かせばいいのかなと。
0887nobodyさん
2006/05/31(水) 11:57:34ID:???チューニングは専門知識無いとダメだけどな。
ボラクルは単体勝負では、機能が多すぎだから重くて遅いけど速くする方法はいくらでもある。
RACとか組めるしstarfireやsuperdomeとかでも動くし。
mysqlはスケールしない。だからミクシも重い。ミクシが負荷分散のノウハウあるとは思えない。重いしさ。
あれだけの規模のシステムをmod_perlでメンテって有り得ないし。
perlしか組めないアフォの典型サイトだと思う。
0888nobodyさん
2006/05/31(水) 14:01:29ID:???逆に何でどう作ったらどの程度のコストで軽く出来るのか知りたい。
0889nobodyさん
2006/05/31(水) 14:37:09ID:???コストは知らん。
つーかミクシってそんなに稼げない貧乏サイトなの?
0890nobodyさん
2006/05/31(水) 14:56:44ID:???オラクルの必要性はない。
0891nobodyさん
2006/05/31(水) 15:00:55ID:???最悪コンビだなw
それじゃまともなものできねーよ。
889は典型的な騙され君。自分で検証する癖を付けようね。
0892nobodyさん
2006/05/31(水) 20:21:58ID:???フリーソフトや、MSで苦労してくれ。
0893nobodyさん
2006/05/31(水) 20:54:52ID:???単価低くても利益が出てりゃ何でもいいよ。
0894nobodyさん
2006/05/31(水) 23:14:52ID:???だがサポートはフリーソフト。
0895nobodyさん
2006/05/31(水) 23:22:10ID:???> 最悪コンビだなw
> それじゃまともなものできねーよ。
> 889は典型的な騙され君。自分で検証する癖を付けようね。
どうやって検証するつもり?
言うは易いが行うは難しだ。
0896895
2006/05/31(水) 23:40:57ID:???0898nobodyさん
2006/05/31(水) 23:50:36ID:???俺は8からしかしらんが、あれでも簡単になってるの?
DebianやGentooがオモチャに見える俺はひょっとしてアフォ?
0900nobodyさん
2006/06/01(木) 23:01:19ID:???それは、一概には言えん。
MySQLはシンプル イズ ベスト。
Oracleは大は小を兼ねる。
現実に、こういう基本思想だとは思う。
が、mod_perlが捌けないのは既出。
0901nobodyさん
2006/06/01(木) 23:18:53ID:???> 同じスペックのマシンでの同時にさばける数が現在より激減しそうだな。
この表現じゃ、スペック高くてもスペック揃えて比較すればよくなる。
それじゃ、スケーラビリティ実証済みの>889が圧勝やんか。
0902nobodyさん
2006/06/02(金) 01:15:09ID:???てっきり黙って無料で使ってると思ってた。
perlも無料じゃないと使う香具師は居ないだけじゃね?
おまいらperlが商用なら月いくら払う?
0903nobodyさん
2006/06/02(金) 06:32:34ID:???ライセンスが必要なのは、配布時でしょ?
0904nobodyさん
2006/06/02(金) 07:51:08ID:???横からスマン。
javaってmod_perlと比較するとかなり遅くなかったっけ?
DB部分で足を引っ張ってるだけなら納得だが、
それだとmod_perlでも十分な気がするけど、やっぱりmixiで必要な機能を実装した場合、
mod_perlとjavaでは捌ける数はmod_perlが下になるものなんだろうか。
過負荷の時におかしくなる時があるとは聞いた事あるけど。
>>901
javaとperlだと、perlと同じ規模の処理数をこなすには、
より高いマシンスペックが必要って聞いたけどオレの勘違い?
javaは大規模で速度より堅実、確実さを求められた時の選択肢だと思ってた。
0905sage
2006/06/02(金) 08:38:54ID:???どっか別の場所で語れ
0906nobodyさん
2006/06/02(金) 10:35:03ID:???0907nobodyさん
2006/06/02(金) 11:27:09ID:???% ls -l /usr/bin/perl /usr/bin/java
lrwxr-xr-x 1 root wheel 57 26 Dec 2004 /usr/bin/java
-rwxr-xr-x 1 root wheel 19944 25 Jul 2005 /usr/bin/perl
perlは1セッション当たり20MBもメモリを食う。
1万セッションで、20GBだ。
0908nobodyさん
2006/06/02(金) 12:41:57ID:???0910nobodyさん
2006/06/02(金) 21:57:35ID:???sage をメール欄に入れることと、自治をすることと何か関係でも?
0912900
2006/06/03(土) 23:25:22ID:???> javaってmod_perlと比較するとかなり遅くなかったっけ?
> DB部分で足を引っ張ってるだけなら納得だが、
> それだとmod_perlでも十分な気がするけど、やっぱりmixiで必要な機能を実装した場合、
> mod_perlとjavaでは捌ける数はmod_perlが下になるものなんだろうか。
> 過負荷の時におかしくなる時があるとは聞いた事あるけど。
JavaはPerlよりも比較にならないほど速い?
http://homepage3.nifty.com/hippo2000/perltips/javaperl.htm
ベンチ厨に一言。
ここを読んでもらうとわかるが、単純なベンチは無意味。
Javaが得意なものはJava、mod_perlが得意なものはmod_perlがはやい。
更に動的コンパイルを使用した場合、閾値を超えたプログラムは
1.別スレッドを立ててコンパイル。
2.ネイティブコードをファイルにキャッシュ。
3.次回からはネイティブコードを実行。
そのため、サーバー用途(繰り返しが多い)では著しく速くなる。
後、同時に捌ける数というのは最大のセッション数という意味だと思うが、そうなら速度云々とは別問題。
> 過負荷の時におかしくなる時があるとは聞いた事あるけど。
こうならない限界が最大のセッション数。
この意味で使ったなら自分で答えを言っている。
同時に捌ける数が、単位時間に処理できる回数(同時という時点で単位時間は不成立。日本語的にはおかしい)という意味なら、単なる速度。
0913900
2006/06/03(土) 23:44:05ID:???0914900
2006/06/03(土) 23:50:24ID:???0915nobodyさん
2006/06/03(土) 23:56:47ID:???0916900
2006/06/03(土) 23:57:00ID:???言語は特徴を生かして使え。
ただ、このスレのJava攻撃はおかしい。
0917nobodyさん
2006/06/04(日) 00:02:07ID:???やりたけりゃ、Perl vs Java でも作って延々やっておけばよろしい。
0918900
2006/06/04(日) 00:06:13ID:???mod_perlスレの排他的雰囲気にはクレームをつけたくなる。
0919nobodyさん
2006/06/04(日) 00:12:16ID:???どこらへんが排他的なんだろう。
FUD しに来る Java 厨のほうが迷惑ですよ。
0920900
2006/06/04(日) 00:17:23ID:???> どこらへんが排他的なんだろう。
気がついてくれ。
> FUD しに来る Java 厨のほうが迷惑ですよ。
Javaむしろ嫌いだといったはずだが。
Java 厨は>913を引用はせんよ。
0921900
2006/06/04(日) 00:19:14ID:???× >913
○ http://homepage3.nifty.com/hippo2000/perltips/javaperl.htm
0924nobodyさん
2006/06/04(日) 00:29:08ID:???客観性のある話しようぜ。
0925nobodyさん
2006/06/04(日) 00:31:13ID:???0926nobodyさん
2006/06/04(日) 00:33:27ID:???0927926
2006/06/04(日) 00:36:13ID:???0928nobodyさん
2006/06/04(日) 00:41:58ID:???0929nobodyさん
2006/06/04(日) 00:43:40ID:???0930nobodyさん
2006/06/04(日) 00:45:43ID:???マンコにチンコを入れるとどうして気持ちいいかについて、客観的に議論する?
0931nobodyさん
2006/06/04(日) 00:47:59ID:???http://pc8.2ch.net/test/read.cgi/php/1141214874/
これも全くのびてない...
シモネタぐらいしかねえな。
0934nobodyさん
2006/06/04(日) 00:51:35ID:???0937nobodyさん
2006/06/04(日) 01:00:05ID:???0938nobodyさん
2006/06/04(日) 01:01:47ID:???0939nobodyさん
2006/06/04(日) 01:03:38ID:???0940nobodyさん
2006/06/04(日) 01:05:56ID:???0941nobodyさん
2006/06/04(日) 01:07:05ID:???0942nobodyさん
2006/06/04(日) 01:13:04ID:???0943nobodyさん
2006/06/04(日) 01:17:07ID:???0944nobodyさん
2006/06/04(日) 01:20:58ID:???マンコ狙いのコンパじゃあるまいし。
0945nobodyさん
2006/06/04(日) 01:25:48ID:???0946nobodyさん
2006/06/04(日) 04:30:21ID:???0947nobodyさん
2006/06/04(日) 04:39:30ID:???捏造ベンチマークはどこでもやってることだけどねぇ。
0949nobodyさん
2006/06/04(日) 05:52:09ID:???コンパイル→実行完了までの時間
$ time perl -e 'print "Hello\n"'
Hello
real 0m0.067s
user 0m0.030s
sys 0m0.040s
$ cat >> Hello.java
public class Hello{public static void main(String[] args){System.out.println("Hello");}}
^D
$ time javac Hello.java && java Hello
Hello
real 0m1.112s
user 0m0.010s
sys 0m0.030s
JavaはPerlより20倍遅い
$ time java Hello
Hello
real 0m0.332s
user 0m0.020s
sys 0m0.040s
コンパイル時間抜いても5倍遅い
以上、何も小細工を加えずに計測した客観的な検証データ。
0950nobodyさん
2006/06/04(日) 06:03:48ID:???あと一回しか計らないってのも何だかなあ。普通は十分なサンプル数を計算して平均なり標準偏差で示すべきでしょ。
一人だけインタビューして、これが国民の総意と報道するマスゴミみたいな報告しか出来ないの?
mod_perlでありがちなのは、perlが複数起動されてメモり喰いまくってアパチごとkillされてあぼーんでしょ。
そのへんのメモリ使用量や同時起動数管理の面でperlは不利と言うか、まともな枠組みが無い。
0953nobodyさん
2006/06/04(日) 10:28:51ID:???Java VS Perl
どっちも強い言語だからエンドレス。
0954nobodyさん
2006/06/04(日) 10:35:09ID:???漏れはSpeedyCGI派だが、メモリ食いまくってアパッチ激太りが解消するならmod_perlに戻りたい。
「設定ファイル」って普通にhttpd.confでおけ?
設定方法を詳しく。
0955954
2006/06/04(日) 10:47:57ID:???仕方ないのでSpeedyCGIに移行したよ。
マシンがロースペックでメモリも積めないので。
0956nobodyさん
2006/06/04(日) 11:09:24ID:???0957954
2006/06/04(日) 11:14:54ID:???結果は、mod_perlの仕様だった。
0958nobodyさん
2006/06/04(日) 11:28:48ID:???javacのコンパイル時間は無意味。
javacかけてないjavaソースは実行できない。
ベンチ厨逝ってよし。
Java VS Perlも他でやれ。
0959nobodyさん
2006/06/04(日) 11:30:13ID:???いいんでねーの? いくらチューニングしたところで普通のアクセスには
不要なperlまるごとapacheの全プロセスが抱くのは筋が悪いよ。
mod_perl抱いた奴とそうじゃないのを分けてごにょごにょとかもやりゃ
できるけどめんどくさいしね。
0960954
2006/06/04(日) 11:35:49ID:???やっぱ設定できることはできるんだ。
> mod_perl抱いた奴とそうじゃないのを分けてごにょごにょとかもやりゃ
> できるけどめんどくさいしね。
それともただのリバースプロキシ?
0962nobodyさん
2006/06/04(日) 11:50:30ID:???0964nobodyさん
2006/06/04(日) 14:24:10ID:???ejbみたいにアプリケーションサーバ別けられないし、負荷分散も厳しいでしょ。
0965954
2006/06/04(日) 14:51:32ID:???気持ちはよくわかるんだが、
> アプリケーションサーバ別けられないし、負荷分散も厳しいでしょ。
この点の話がリバースプロキシの話なんよ。
0966954
2006/06/04(日) 14:57:02ID:???>httpd.confでどう設定すべきか、mod_perl玄人のおまいらに解説願いたい。
同感。
>>956
> 検索も出来ないようなカスは死ね。
これしかレスがない。
0967nobodyさん
2006/06/04(日) 15:09:08ID:???> 以上、何も小細工を加えずに計測した客観的な検証データ。
おいおい、何だそれ。
PerlだけファイルのIOがないぞ。
0968nobodyさん
2006/06/04(日) 16:56:38ID:???そういう問題じゃなくて?
0971nobodyさん
2006/06/04(日) 17:11:01ID:???そんな制御しかできないなら、
>>950
> mod_perlでありがちなのは、perlが複数起動されてメモり喰いまくってアパチごとkillされてあぼーんでしょ。
> そのへんのメモリ使用量や同時起動数管理の面でperlは不利と言うか、まともな枠組みが無い。
これが正しいな。
0972nobodyさん
2006/06/04(日) 23:53:31ID:???ホリエモン関係の子飼といい、ミクシの作者といい、perlって本当に人的リソースに恵まれてないね。
0973nobodyさん
2006/06/05(月) 00:27:58ID:???0974nobodyさん
2006/06/05(月) 02:08:50ID:???不法滞在してたりして(w
0975nobodyさん
2006/06/05(月) 04:57:16ID:???0976nobodyさん
2006/06/05(月) 08:02:08ID:???0977nobodyさん
2006/06/05(月) 08:13:16ID:???0978nobodyさん
2006/06/05(月) 10:32:20ID:???在日ってことでいいじゃん。不法滞在で税金も払わず公営住宅に住んでて生活保護受けてるんだろ?
0979nobodyさん
2006/06/05(月) 20:01:45ID:???http://pc8.2ch.net/test/read.cgi/php/1149505269/
0980nobodyさん
NGNG0981nobodyさん
2006/06/05(月) 22:14:22ID:???0982nobodyさん
2006/06/05(月) 22:17:59ID:???アクセラレータとしてはイマイチというのが、大分前にでてからな。
0983nobodyさん
2006/06/05(月) 23:44:44ID:???0984nobodyさん
2006/06/06(火) 00:08:09ID:???話にもならん。
0985nobodyさん
2006/06/06(火) 00:11:33ID:???以上。
0986nobodyさん
2006/06/06(火) 00:26:58ID:???この辺で結論でてるだろ。
0987nobodyさん
2006/06/06(火) 02:25:48ID:???0988nobodyさん
2006/06/06(火) 06:37:02ID:???0989nobodyさん
2006/06/06(火) 15:51:29ID:???今すぐだ。
帰るまでに新しくポータルサイトが必要だからな。
0990nobodyさん
2006/06/06(火) 20:11:27ID:???0991nobodyさん
2006/06/06(火) 20:13:50ID:???perl廚ってレベル低いね。
0992nobodyさん
2006/06/07(水) 00:15:23ID:???今パスワードのメモ探してる所。
0993nobodyさん
2006/06/07(水) 01:42:59ID:???0994nobodyさん
2006/06/07(水) 01:49:02ID:???0995nobodyさん
2006/06/07(水) 13:39:11ID:CM6sRbzCして、あきらかにしたいんですが、、、
ModPerl::Registry を使って .cgiを動かしても、その.cgiファイル内からuseしたり使
っているモジュールは、別途PerlRequireで指定のスクリプト内でuseしてロードしな
ければならないのでしょうか?
現在実験している環境だと、PerlRequire経由でuseでロードしないモジュールは、
perl-statusの "Loaded Modules"には出てきません。僕の勝手な想像では、
「ModPerl::Registryが呼び出した.cgiがuseしているモジュール」は、適宜ロード
されて、perl-statusにも表示されるんじゃないかと予想していたんですが、それは
ちがうんでしょうかね?
当方の設定ミスなのか、仕様なのかがいまいちはっきり分らないので、聞いてみます。。。
0996nobodyさん
2006/06/07(水) 14:02:34ID:???次ヌレ
http://pc8.2ch.net/test/read.cgi/php/1149505269/
0997nobodyさん
NGNG0998nobodyさん
NGNG0999nobodyさん
NGNG1000nobodyさん
2006/06/13(火) 22:45:12ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。