mod_perlを使おう!
■ このスレッドは過去ログ倉庫に格納されています
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:???■ このスレッドは過去ログ倉庫に格納されています