MySQLテストでは、5000件のレコードを含むテーブルを読んで更新するHTTPリクエストを1つ実行した。MySQLとのやり取りには、標準PHPインタフェースとPerl DBIを使った。テストに使ったテーブルの構造は次のとおり。 +----------+----------+------+-----+--------+----------------+ |フィールド| タイプ | Null |キー | 既定値 | そのほかの特性 | +----------+----------+------+-----+--------+----------------+ | id | int(11) | | PRI | NULL | auto_increment | | junktext | char(30) | 可 | | NULL | | +----------+----------+------+
@ [perl] Apache2 + mod_perl2.0.1 + Sledge-1.11 今週頭からずっとインストールにてこずっていたのですが、昨日朝方までかけてなんとかHello world!を出すところまでたどり着きました。 環境はDebian sarge + Apache 2.0.54です。Apacheはdebからインストールしている状態です。perlとmod_perlとlibapreqとSledgeはここで野良ビルドしてインストールします。 まずはperlのインストールから。http://cpan.org/src/README.htmlよりstableである5.8.7をダウンロードして解凍します。 $ tar xvzf stable.tar.gz $ cd perl-5.8.7 $ sh Configure -Dusethreads -Duselargefiles \ -Dus
Soozy - mod_perl専用Webフレームワーク 自分が使ってるフレームワークをいきなり晒してしまうテスト。 perl5なコードを初めて書いた時に最初に作ったやつです。 最初はSledgeを使おうとも思ったんだけど、なんか色々とやってくれるのが疎ましくて Sledgeの肉をそぎ落として、自分が使う最小限なものだけを実装した感じになってます。 一部Sledgeからコピペした物が、そのまんま残ってます。 フレームワーク自体の拡張性はあまりない感じ。 tech.yappo.jp/download/Soozy.tar.gz ドキュメントも何もないのはひどすぎると思ったので BulkYAで実際に使っているコードも晒します。 BULKYA::Handlers BULKYA::Handlers::Search httpd.con <Location /app> SetHandler perl-s
てくにかるむ 「エラーをなくすことは非常に有益で時には新しい真実や事実を作り上げるよりも勝る」 ー チャールズ・ダーウィン WebBrowserコンポーネントを .NET Framework であれこれ料理したときのいろいろ。 » ActivePerl 本体は実行インストーラで何時でもインストールできるが、ppm や cpan で組み込む追加モジュールはオンライン構築が前提になっている。だが世間から断絶された秘匿ネットワークや、そもそもインターネットに接続するという概念のない PCやサーバに納品したり、機材リプレースで開発環境を再構築しなければならない場面では、USBメモリや DVD-Rからのオフラインインストールが出来なければ話にならない。そもそもバージョンが数世代古くなるとダウンロード元の ppmレポジトリが有料プラン専用に切り替えられて、いつもで気軽に再ダウンロードすることができなく
mod_perl とは? Apache モジュール内にラップされた完全な Perl インタプリタ のことです。通常 Perl で書かれたスクリプトを実行するには毎回 perl インタプリタを呼び出しコンパイル・実行されます。ところが mod_perl の場合は一度呼び出された後はコンパイルされた状態のまま apache 内で次のリクエストを待ち続けます。つまり perl スクリプトが apache の機能として実行されます。 一説には普通の perl スクリプト(cgi)と比較すると200倍速いとされています。他のメジャー言語である php などと比較しても速い実行結果があるようです。実際にphpやjavaとでベンチマークをとりテストした方もいるようです。 JavaはPerlよりも比較にならないほど速い? 巷では「perl は遅いから...」とよく言われてますが遅いという理由だけで C言語
mod_perl 環境下でやっちゃダメなものをいくつか。 exit システム関数 正確には CORE::exit ですけど、実行すると現在の Apache プロセス(nobody)が落っこちます。 当然 root の Apache は子プロセスを立ち上げなおすんで 余分なシステム負荷が掛かりますし、mod_perl のメリットである キャッシュ効果が得られない=普通のCGI実行より鈍足になるという、 なかなか致命的な結果になってしまいます(^^; これを避けるために、mod_perl 環境下では exit() 関数 が 定義されてるので、必要な場合には必ず丸括弧をつけませう。 ○ exit( 0 ); × exit 0; 同じことが、die システム関数 にも言えます。こっちは素直に 「use Carp」して「croak 関数」で代替したほうが安全だと思う。 #eval の中で CORE:
use と require の話、まだ引っ張るのかよって感じですがもうちょっとだけ。del.icio.us で typester 氏からコメントがありました。 requireだけでも、startup.pl のような使い方すればいいよね? んで、一瞬「そうか、startup.pl で全部 reuiqre すればいっしょなのか」と思ったんですがよく考えてみると、その場合 reuqire でロードされるのって結局 startup.pl に書いたファイルだけですよね。 この方法だと、XML::Atom みたいに中で色々使ってるモジュールとかは、その中の実装を考えて全部 require する必要が出てきます。ソースの require な部分を舐めて require するようなロジックを startup.pl に実装するってのも変な話だし。ということでやっぱり use だよなあと。 勘違いかも。 そう
ApacheでCGIプログラムを実行するためには、 ・CGIスクリプトの格納場所を設定しそこにCGI実行権を与える ・特定のファイル名拡張子をCGIスクリプトとして認識してもらうための設定を行う の2つの方法があります。 httpd.confをメモ帳等で開いて、次の行を探します。 ScriptAlias /cgi-bin/ "C:/Apache/cgi-bin/" <Directory "C:/Apache/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> ScriptAliasによって指定されたcgi-binディレクトリ(上記だと C:\Apache\cgi-bin )でCGIプログラムが実行できるように設定されています。つまり、デフォルトでは何もしなくてもこの C
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く