mod_perlを使おう!
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん
01/11/07 17:42ID:+Gux2iOQ関連リンク等は>2
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/[email protected]/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も普及率低すぎるのはどーゆーことよ!?
■ このスレッドは過去ログ倉庫に格納されています