こちらで続けようと思います。 とりあえず、CentOS5、CentOS6の共生と cpanmでのImage::Magick の取り扱い、Imagerがいまいち美しい処理をしてくれないあたりが目下の目標です。
こちらで続けようと思います。 とりあえず、CentOS5、CentOS6の共生と cpanmでのImage::Magick の取り扱い、Imagerがいまいち美しい処理をしてくれないあたりが目下の目標です。
「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧
インストール $ sudo apt-get install libapache2-mod-perl2 で、mod_perl2はインストール完了。 設定 apache2.confとかがincludeしてくれる位置に、適当な設定ファイルを作っておくといい。 mods-enabledの中にperl.confとして作っておくと他のmodと似たような配置になって分かりやすい・・・かも。 その他配置場所の候補としてはconf.dやバーチャルホストの設定ファイルの中など。 今回はmods-enabledの中にperl.confとして作成してみました。 # プリロードモジュールの設定 PerlModule Apache::DBI CGI DBD::mysql # Registryモードでmod_perl2を動かす設定 SetHandler perl-script PerlHandler ModPerl::
http://memo.hirosiki.jp/article/33577109.html 「mod_perlで動いてる」なんて書いてたが、まっとうに動いてなかったよ岬くん。 if ( ( -r $rdffile ) && ( ( ( -M $rdffile ) * 24 * 60 ) < 15 ) ) { RedirectTo( $rdffile ); } -M演算子は、指定したファイルがperlプロセスが起動した時点から見てどのくらい前に修正されたかを返すので、mod_perlで使うとほぼ無意味な動作をする。 したがって、ここは(スクリプトがキレイでスマートかどうかはぼくが書くものなのでともかくとして) my( $m ) = ( stat( $rdffile ) )[9]; $m = time() - $m; if ( ( -r $rdffile ) && ( ( $m / 60 )
mod_perlでどのくらいメモリー使われてるかとか調べたかったのでApache2::Statusを使ってみた。 Shibuya.pmのLTにも含めようと思ったけど5分に押し込めるのは無理なのでここで公開。 テスト対象としてCGI::Applicationで package HelloWorld; use strict; use warnings; use base 'CGI::Application'; sub setup { my $self = shift; $self->start_mode('index'); $self->run_modes( ['index']); } sub index { "HelloWorld"; } 1; runスクリプトとして #!/usr/bin/perl use strict; use warnings; use lib './lib'; use
mod_perlを5年以上触ってて初めてこんな現象に出会いました。ほんとひどい罠です。 現象 妙なタイミングで500エラーとなる Apacheを再起動すると直る index.plをtouchすると500エラーとなる perl -cw でチェックしても、warningも何も出ない コード 今回問題となったindex.plはこんな感じです。どこがまずいかわかりますか? use strict; use warnings; use Apache2::RequestUtil (); use ModPerl::Util; sub main(){ my $r = Apache2::RequestUtil->request(); $r->content_type('text/plain'); print_hello($r); ModPerl::Util::exit(); } sub print_hello
mod_perl は Perl CGI の実行速度を向上させるためのモジュールです。 通常 Perl CGI は、クライアントから CGI が要求される度に Apache から読み込まれてコンパイル・実行されますが、mod_perl を使用すると一度読み込まれるとその内容をメモリ上に保持しておきます。 従って、次に同じ CGI が呼び出された際には再読み込みすることなく実行されることになり、非常に高速になります。 インストール mod_perl-1.29, Apache-1.3.37 の例です。 まず、The Apache/Perl Integration Projectからアーカイブを入手し、展開します。 mod_perl は DSO 対応は EXPERIMENTAL な状態なので static に組み込む必要があります。 従って、Apache も最初からビルドし直す必要があ
大量にアクセスがあってMaxClientを大きく設定したい場合、Apacheの1プロセスあたりのメモリを少なくするのが重要。当然アプリ側で大きなライブラリを読み込まずに画像の変換はGearmandにタスクとして投げたりとかの工夫するのも有効だが、fork元になるApacheの親プロセスと子プロセス間でできる限りCopy on Writeな共有メモリを増やすのも有効。 その辺の詳しい仕組み等の話はnaoyaさんがd:id:naoya:20080212:1202830671でしてるのでそこを参考に。linuxカーネルまわりの仕組みって楽しいよね。会社の案件ではFreeBSDサーバーも結構あるんだけどFreeBSDではどうなるのかは知らない。 で、社内にXenなテストサーバーがあるのでまっさらな環境で色々実験してみた。・・・過程を全部書こうとしたら長くなったので省略。地味にpsしたり/proc/
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ
と思ったら知ってることはすべて(しかもそれ以上)mod_perl のドキュメント(⇒mod_perl: Input and Output Filters)に網羅されていました。orz。 Perl に疎くてもフィルタモジュールを書く人なら目を通しておいて損はないです。つかこのレベルのドキュメントが httpd のドキュメントにも欲しかった。 ちなみにさらりと読んで「mod_perl だとレスポンスコンテンツ等にストリーム指向アクセスできるんか」とぬか喜びしたら行ストリーミングをしてくれるわけではなくて,ちょっとがっかり。どういうことかというと,Stream oriented Output Filters のくだりにも書いてありますが,read() や handler の呼び出しが行の途中でぶったぎられている可能性があるということです。だから自分でバッファリングしなきゃいけない。 例題として
Perlを高速に動かすためにはApache HTTPDにmod_perlを組み込むが、mod_perlを読み込んだApacheはメモリを大量に消費する。このため、本格的なサービスを行う場合にはバックエンドでmod_perl用の専用サーバを動作させるが、そこまで用意しなくてもmod_perlだけは分離したいという要求は多い。ここでは、1つのサーバ内でApacheを複数動作させ、mod_perlを分離する方法を以下に解説する。 設計 通常 (mod_perlなし) のApache (a) は *:80 で待ち受け。 Apache + mod_perl のApache (b) は 127.0.0.1:8000 で待ち受け。 共通する設定は別ファイルに書いておいて、それぞれの設定ファイルから Include する。 アクセスは一度 (a) で受け取って、特定のパスに対しては (b) に逆プロ
10分で、といいながらたぶん mod_perl と Apache2 をビルドするのに 10 分以上かかるという罠。まあいいや。以下のやり方で Linux、MacOSX どちらでもちゃんと動くと思われます。 まず、mod_perl 2.0 のインストール。DSO でもいいけど、ここでは Apache にスタティックに組み込みます。 インストールディレクトリは /usr/local/httpd_mp2 に。 MPM は prefork。perl を thread 有効でビルドしてるなら mpm=worker でもいいと思います。 $ wget http://perl.apache.org/dist/mod_perl-2.0-current.tar.gz $ wget http://www.apache.org/dist/httpd/httpd-2.0.55.tar.gz $ tar zxvf
まえがき デスクトップCGIフレームワークを用いたアプリケーションにおいては、同一のCGIを繰り返して起動したり、CGIからCGIを呼び出すようなスクリプトを書くことが多く、連続的、連鎖的にCGIが起動されます。その度に新たなプロセスを生成していては、パフォーマンス的には不利です。このような場合には、PerlのCGIにおいてはmod_perlを使うとよいはずです。今回は、WindowsのApacheでmod_perlを使う方法を取り上げます。 mod_perl導入前後で、第7回連載記事のスクリプトの動作が体感的に変化することを確かめてください。 ご質問などがあれば、jscripter9@gmail.com宛てにメールをいただいても結構です。ご質問に基づいて得られた内容につきましては、必要に応じて本連載で使わせていただく予定です。対象読者 Windows上のApache+Perl+MySQL
Cookbook長いので分割。 デプロイについてのレシピ。Webサーバーエンジンとアプリケーションの効率化も含む。 http://search.cpan.org/~jrockway/Catalyst-Manual-5.700701/lib/Catalyst/Manual/Cookbook.pod#Deployment mod_perl Deployment mod_perlは多くのアプリケーションに対しての最適解だけど利点と欠点を述べる。他の方法としてはFastCGIがある。 Pros Speed mod_perlはとても高速で、それぞれのApacheプロセスのメモリにアプリケーションをロードすることによって恩恵を受けられる。 Shared memory for multiple apps 同じサーバーで複数のCatalystアプリケーションをする必要がある場合、mo_perlは共通のモジ
mod_fastcgiとmod_fcgidは差がなくて、mod_perl/mod_speedycgiが一歩前に出てるという感じですね。worker動作(スレッドモデル)となると、対応しているのは mod_perl2 vs mod_fcgid だけ。mod_perl2 はいかんせん導入が面倒くさいので、手軽さでは mod_fcgid の方がよいのかもしれません。 本格的にパフォーマンスを求めたり、高負荷時のメモリ消費量の少なさを考えると mod_perl2 on worker MPM に優る選択肢はないのですが個人では必要ないでしょう。*2 ただ、どれも Apache にモジュールを組み込まないとならないので、お手軽に高速化したい場合はSpeedyCGI(ソースコード)をオススメします。パフォーマンスも(個人で使うには)十分ですし、Apacheからは完全にcgiとして見えるので(プロセスが完
■use lib は使えないので startup.pl にモジュールのディレクトリを絶対パスで記述しておくこと ■perl -w use strictでエラーが出ないスクリプトを書く事。 ■正規表現の'o'はダメ ■必ずPackageで修飾すること。 mainパッケージは使えない ■exit()がきかないらしい。。。がテストしたところ exit は有効みたい。(mod_perl2) ■カレントディレクトリがApacheディレクトリになる ■openしたら、スクリプト終了前までに必ずcloseする ■__END__ or __DATA__トークンは使えない ■ 変数の初期化を綺麗に行う必要がある my $scalar = ''; my @ary = (); my %hash=(); http://www.accessup.org/pj/6_B4C9CDFDBFCDA4B5A4F3/4/#20
mod_perl とは? Apache モジュール内にラップされた完全な Perl インタプリタ のことです。通常 Perl で書かれたスクリプトを実行するには毎回 perl インタプリタを呼び出しコンパイル・実行されます。ところが mod_perl の場合は一度呼び出された後はコンパイルされた状態のまま apache 内で次のリクエストを待ち続けます。つまり perl スクリプトが apache の機能として実行されます。 一説には普通の perl スクリプト(cgi)と比較すると200倍速いとされています。他のメジャー言語である php などと比較しても速い実行結果があるようです。実際にphpやjavaとでベンチマークをとりテストした方もいるようです。 JavaはPerlよりも比較にならないほど速い? 巷では「perl は遅いから...」とよく言われてますが遅いという理由だけで C言語
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く